Arquivos do Autor:

Evento de 10 anos do codificando .Net

Olá pessoal,

A comunidade comunidade Codificando .Net e SQL estará realizando no mês de junho/2013 seu evento em comemoração aos 10 anos de vida . A comunidade do Codificando .Net já é bastante conhecida no cenário brasileiro e para quem quiser saber mais sobre a mesma acesse o site da comunidade.

Estou vindo aqui para então divulgar que a submissão de palestras para o evento está aberta e para quem quiser compartilhar seus conhecimentos essa é uma ótima oportunidade. Não é preciso mencionar que o evento também é uma ótima oportunidade para o aprendizado e o networking, então abaixo deixo os maiores detalhes para os interessados.

Evento: 10 anos do Codificando .Net e SQL

Local: Unip – Tatuapé – São Paulo.

Data: 22/06/2013 08:00 até as 17:00

Link para submissão de palestras: Call 4 papers

Ainda não tenho muitos detalhes da inscrição, mas assim que possivel realizarei um update no post para a divulgação.

Abraços e nos vemos no dia 22 de junho,
Marcos Freccia

Connect Item para melhorias em mensagens de erro

Olá Pessoal,

Isso já estava me dando uma dor de cabeça grande e de uma vez por todas decidi abrir um connect de sugestão para o SQL Server. Não sei se muitos sofrem com esse mesmo problema e com isso peço a opinião de todos aqui é referente a mensagem de erro logada no errolog do SQL Server quando o serviço do SQL Engine é reiniciado ou justamente para de funcionar.

Atualmente a mensagem de erro logada é essa abaixo.

SQL Server is terminating in response to a ‘stop’ request from Service Control Manager. This is an informational message only. No user action is required.

Leia o resto deste post

Do me a favor! Não confie em Buffer Cache Hit Ratio

Olá pessoal,

Durante muito tempo houve e acredito que ainda há um equivoco sobre esse contador Buffer Cache Hit Ratio que está presente dentro da classe Buffer Manager. De acordo com o proprio Books Online a definição para esse contador é:

Percentage of pages found in the buffer cache without having to read from disk. The ratio is the total number of cache hits divided by the total number of cache lookups since an instance of SQL Server was started. After a long period of time, the ratio moves very little. Because reading from the cache is much less expensive than reading from disk, you want this ratio to be high. Generally, you can increase the buffer cache hit ratio by increasing the amount of memory available to SQL Server.

O que poucos sabem e por isso eu aconselho a ler este artigo do Jonathan Kehayias(Twitter|Blog) sobre Buffer Cache Hit Ratio é que o Buffer Cache Hit Ratio será um dos últimos a responder sobre uma pressão de memória, devido ao mecanismo read-ahead que então mantem o buffer cache populado com as paginas necessárias e com isso esse contador não varia seu valor.

Se você estiver procurando por pressão de memória, eu aconselho você a acompanhar os seguintes contadores:

  • Buffer Manager: Page Life Expectancy
  • Buffer Manager: Checkpoint pages/sec
  • Buffer Manager: Page reads/sec
  • Buffer Manager: Readahead pages/sec
  • Buffer Manager: Lazy Writes/sec

Com esses contadores você pode ter uma melhor visão se o SQL Server está precisando de mais memória ou não. Só para todos terem uma ideia de como esse contador Buffer Cache Hit Ratio mascara o problema, vejam só a imagem abaixo.

image

O contador do Buffer Cache Hit Ratio sempre em 100%, porém o Life Page Expectancy com um valor muito baixo, e o contador Page reads/sec muito alto. Isso com certeza me diz algumas coisas no ambiente, mas se estivesse olhando apenas para o Buffer Cache Hit Ratio, acharia que tudo estivesse normal.

Espero que tenham gostado e por hoje é isso.

Abraços,
Marcos Freccia

The script ‘u_tables.sql’ encountered error 25641

Olá pessoal,

Passei por esse problema ontem ao aplicar Service Pack em SQL Server 2012, onde após a instalação do SP varios scripts não conseguiam ser executados no SQL Server mostrando a seguinte mensagem de erro.

Script level upgrade for database ‘master’ failed because upgrade step ‘u_tables.sql’ encountered error 25641, state 0, severity 16. This is a serious error condition which might interfere with regular operation and the database will be taken offline. If the error happened during upgrade of the ‘master’ database, it will prevent the entire SQL Server instance from starting. Examine the previous errorlog entries for errors, take the appropriate corrective actions and re-start the database so that the script upgrade steps run to completion.

 

Leia o resto deste post

E o Virtual PASS PT volta a ativa

Olá pessoal,

Desde o começo do ano o Virtual PASS PT ainda não tinha dado as caras com sua programação mensal de sempre, claro que isso acontece por alguns motivos, e eles podem ser muito bons. Acredito que aqui todos saibam, mas o Virtual PASS PT até meados de Abril/2013 era liderado pelo MVP Felipe Ferreira(Twitter|Blog) em parceria com o PASS Regional Mentor Laerte Junior(Twitter|Blog). Mas porque até meados de Abril/2013? Porque a partir de Maio/2013 o cargo de Chapter Leader do Virtual PASS PT estará sobre minha responsabilidade. Isso muda alguma coisa para todos que ja acompanhavam o Virtual PASS? É claro que não, espero fazer um trabalho tão bom quanto do Felipe Ferreira e continuar conquistando cada vez mais espaço no cenario mundial de SQL Server para o Brasil.

Como todos ja sabem vamos começar a temporada 2013 com webcasts mensais como o Virtual PASS ja vinha fazendo e vamos é claro tentar programar coisas novas para grupo, para que cada vez tenhamos mais pessoas interessadas em participar.

Outro ponto muito interessante que quero reforçar aqui é: Você tem vontade de realizar um webcast para o Virtual PASS PT? Mande um e-mail para marcosfreccia@virtualpass.com.br com o assunto que você gostaria de falar, assim podemos entrar em contato com você para encontrar a melhor data.

Sendo assim, fica aqui meu convite para que todos possam participar dos encontros mensais e que muitos assuntos legais estarão por vir.

Abraços,
Marcos Freccia

[Script] Obtendo tamanho das bases de dados detalhadamente

Olá pessoal,

Mais uma vez aqui compartilhando scripts com vocês. Dessa vez o script que vou passar é para vocês pegarem o tamanho de suas bases de dados, porem com algumas outras informações como: Tamanho total, espaço utilizado, espaço disponivel e disco de localização dos arquivos (mdf e ldf). Vale lembrar que esse script apenas pega o tamanho do arquivo .mdf e .ndf, caso você desejar pegar a informação também para o arquivo .ldf, você precisa retirar a clausula “WHERE   df.type = 0”. Abaixo segue o script, espero que todos gostem. Leia o resto deste post

Clean-up the Database

Olá Pessoal,

Alguém aqui já precisou realizar a limpeza de um banco de dados, não precisava exclui-lo e cria-lo novamente? Recentemente precisei realizar esse procedimento em alguns servidores e para não perder tempo criei um script que faz a limpeza dos objetos do banco de dados. Nesse primeiro esboço do script ele já realiza o drop das constraints primeiro para não dar erro e também tudo precisa estar no schema dbo. Futuramente pretendo melhorar o script para realizar o drop independente do schema a qual o objeto pertence. Espero que gostem. Leia o resto deste post

[01/30] Um mês de DMV’s & DMF’s; sys.dm_os_sys_info

Olá pessoal,

Inicio hoje uma serie sobre DMV’s e DMF’s, mostrando um pouquinho desse poderoso recurso presente no SQL Server. O intuito desses posts não é mostrar consultas altamente elaboradas, mas sim, mostrar recursos que podem facilitar seu dia-a-dia e que você não conhecia. Quem sabe você encontre aqui scripts parecidos com alguns já vistos pela internet a fora, mas lembre-se que nada aqui foi copiado.

Vale lembrar também que vou fazer 30 posts sobre o assunto e não necessariamente dia após dia.

Para começar com a nossa primeira DMV então vamos de: sys.dm_os_sys_info. Através dessa DMV podemos pegar algumas informação bastante importantes que são a data de inicialização do serviço do SQL Server e também alguns dados como Memoria target do SQL Server e também memoria sendo utilizada naquele momento. Leia o resto deste post

E quando você nao tem Policy Based Management

Olá Pessoal,

O post de hoje é algo bem simples, mas que pode ser bastante pratico no dia-a-dia. Todos aqui sabemos que o Policy Based Management foi criado a partir do SQL Server 2008 para suprir uma grande necessidade de automatização que precisamos na vida de um DBA. Mas o que vocês devem se perguntar é quando não temos essa ferramenta para nos ajudar, o que devemos fazer para ter a mesma facilidade?

Leia o resto deste post

Identificando auto update statistics utilizando fn_dblog

Olá pessoal,

Recentemente estava realizando alguns estudos sobre estatisticas no SQL Server e encontrei uma forma de verificar quando o SQL Server realizou a atualização das estatisticas. Neste método que encontrei o SQL Server estava apenas registrando quando uma atualização automatica acontecia ou quando o comando UPDATE STATISTICS TableName é executado. Sabemos que existe também outros comandos para atualizar as estatisticas, porem esses não são registrados no transaction log, acredito que vale mais estudos para entender o comportamento. Para demonstrar então como esse evento é registrado vamos as demonstrações abaixo utilizando a função fn_dblog. Leia o resto deste post