set 02

SQL Saturday #325 – São Paulo

Depois das sessões que apresentei no 24h de PASS e no Virtual PASS com o tema “Entendendo as Melhores Práticas de Transaction Log” tive a honra de ter esta sessão aprovada no SQL Saturday #325 – São Paulo.

Quem já assistiu terá a oportunidade de rever e aproveitar as novidades. Pra quem ainda não assistiu, vamos falar sobre o funcionamento do Transaction Log, possibilitando que você entenda e defina as “Melhores Práticas” que se aplicam aos ambientes que você gerencia. Veremos como funciona o mecanismo Write Ahead Logging no SQL Server, Checkpoint, VLFs, Fragmentação, TLog Cheio, Shrink e o novo recurso do SQL Server 2014, o Delayed Durability.

Gostei bastante da organização do evento, são 5 sessões simultâneas, muitos temas de diversas trilhas diferentes com muitos feras entre MVPs e MCMs.

Veja mais detalhes do evento neste link.

Espero ver todos por lá!

Desvendando Registros Fantasmas

Titulo: Desvendando Registros Fantasmas

Descrição: Vamos simular o comportamento de uma tabela com a ocorrência de registros fantasmas, como este problema aparece, o que afeta nas nossas consultas e como é possível acabar com esta falha.

Link de Inscrição: https://attendee.gotowebinar.com/register/3694445189642253569

Palestrante: Durval Ramos

Bio: Com mais de 20 anos de experiência profissional no desenvolvimento de soluções utilizando SQL Server, Durval é autor de diversos artigos sobre o assunto no TechNet Wiki e também sobre tendências para profissionais de informática e usuários em diversos sites de Tecnologia. Moderador de Fóruns MSDN \ TechNet relacionados à SQL Server, também é membro do Conselho Internacional TechNet Wiki e vencedor do prêmio TechNet Guru de março/2014 na categoria “Transact-SQL”. Hoje atua como gerente de TI – BPM e possui como uma de suas principais certificações o MCSE: Data Platform – SQL Server 2012

maio 19

Operações de IO e SSD Cards

Muito se fala sobre as placas SSD que prometem mais de 290.000 IOPS e latências de microsegundos, utilizando o barramento PCI Express 2.0 4x, por exemplo, resolvendo o problema de IO.

No dia 29 de Maio das 9:30 as 13:30 teremos um evento no Microsoft Technology Center de São Paulo, realizado pela Fusion-io que é um dos fabricantes de placas SSD juntamente com a HP, para mostrar como o novo recurso do SQL Server 2014 chamado Buffer Pool Extension pode tirar proveito das baixas latências e alta capacidade de IOPS das placas fabricadas pela Fusion-io, além de muitas outras coisas.

O evento é restrito mas o SQL Dicas! vai sortear um convite. Portanto, se você quiser participar, basta se cadastrar nas Dicas da Semana do SQL Dicas! e enviar um email para sqldicas@outlook.com com o assunto FUSIONIO colocando no corpo do email seu nome e telefone de contato.

Não perca, participe!

 

SQL Saturday #248

O SQL Saturday é um evento de treinamento para profissionais de SQL Server e aqueles que querem aprender sobre SQL Server.

Este evento será em 26/04/2014 na Rua Marechal Floriano Peixoto, 626 – Centro – Porto Alegre – RS.

A entrada é gratuita mas é cobrada uma taxa de R$ 18,00 de almoço.

Não perca tempo, avise seus amigos e registre-se pois os lugares são limitados.

Link para o registro:  http://www.sqlsaturday.com/284/eventhome.aspx

 

abr 21

SQLSaturday #284 – Porto Alegre

Esta semana teremos um dos maiores eventos de SQL Server no Brasil, o SQL Saturday #284, em Porto Alegre. Se você acompanha o calendário de eventos do SQL Dicas! já deve ter reparado que lá tem todas as informações sobre o evento.

Para quem não conhece, o SQL Saturday é um evento onde os participantes podem contar com apresentações de profissionais que são referência no Brasil, especialistas, MVPs, PFEs e outras equipes da Microsoft, entre outros gigantes da tecnologia e consultores. São 3 apresentações simultâneas em salas diferentes, durante todo o dia, com conteúdo desde iniciantes até profissionais da área.

Resumidamente é o típico evento que não se perde pois não acontece com muita frequência. Além de obter conhecimento técnico de primeira gratuitamente, você conhece gente de vários lugares do Brasil, faz um networking com profissionais de diversas empresas diferentes, que podem fazer coisas que você faz de formas diferentes ou até mesmo coisas que você ainda não faz.

Se você quer ter uma idéia de como é um evento destes, veja a cobertura do SQL Saturday #245, que aconteceu no Rio de Janeiro em 2013.

Este ano está cheio de novidades, veja no blog do Marcos Freccia, Chapter Leader do PASS que está organizando o evento, possibilidade de compra de camisetas, brindes para quem chegar cedo, tickets de almoço com preço bem popular, desconto em hotel e uma agenda de sessões com grandes nomes e excelentes temas.

Como todas as sessões são excelentes, sugiro que você verifique e defina quais sessões vai assistir, pra não ficar vacilando no período de troca de salas e pegar sua próxima sessão começada. No site do PASS tem uma ferramenta pra te ajudar a imprimir uma lista, assim você pode anotar quais são as salas de cada sessão que você vai assistir e já verificar como chegar nelas.

Pra quem é de fora de Porto Alegre, principalmente se for de São Paulo, compartilho o investimento:

Passagens: 

R$ 375,00 em vôo direto

Hospedagem:

R$ 108,00 solteiro ou R$ 142,00 casal no Royal Palace Hotel que fica na rua do evento (bem na frente pra falar a verdade) para não depender de taxi nem se atrasar.

Alimentação:

Costumo gastar R$ 25,00 em um bom almoço mas os organizadores fecharam um convênio com almoço a R$ 15,00.

Taxi

Já peguei ônibus com informações das pessoas da região e além de admirar a educação do povo de Porto Alegre economizei algum dinheiro. De taxi deve dar uns R$ 50,oo no total.

Conclusão

Por um investimento de R$ 550,00 você vai até Porto Alegre, tem a oportunidade de conhecer pessoalmente vários feras, aprende muito com sessões técnicas que você não encontra em qualquer treinamento por aí, fica antenado sobre as novidades dos lançamentos e conversa com vários outros participantes.

 

Espero encontrar todos vocês por lá!

 

Clique aqui para fazer a inscrição!

Transaction Log – Melhores Práticas

Resumo

Nesta sessão serão abordados os principais conceitos e o funcionamento do Transaction Log, para que seja possível ter um melhor entendimento sobre as melhores práticas abordadas. Falaremos sobre Write Ahead Logging, Recovery, Log Cache, Checkpoint, TempDB, VLFs, Fragmentação, como funciona o Shrink, motivos para encher o TLog, troubleshooting e melhores práticas.

 

Session Level: Intermediate

 

Luiz Mercante   

Speaker photoLuiz Mercante (@sqldicas) é analista sênior na Alog Data Centers do Brasil – Equinix, MCTS em Windows, MTA em Databases, MCITP em SQL Server, autor do SQL Dicas! com mais de 100 contribuições e moderador do Fórum Microsoft Technet – SQL Server Infra Geral.

Contact URLhttp://sqldicas.com.br/

 

Link de inscrição: https://attendee.gotowebinar.com/register/2019974740760099841

mar 30

Transaction Log – Melhores Práticas

Está chegando mais um evento gratuito, online, da comunidade técnica, desta vez pelo VIRTUAL PASS PT sobre o funcionamento e as melhores práticas do Transaction Log. Não percam!

 

Resumo

Nesta sessão serão abordados os principais conceitos e o funcionamento do Transaction Log, para que seja possível ter um melhor entendimento sobre as melhores práticas abordadas. Falaremos sobre Write Ahead Logging, Recovery, Log Cache, Checkpoint, TempDB, VLFs, Fragmentação, como funciona o Shrink, motivos para encher o TLog, troubleshooting e melhores práticas.

 

Session Level: Intermediate

 

Luiz Mercante   

Speaker photoLuiz Mercante (@sqldicas) é analista sênior na Alog Data Centers do Brasil – Equinix, MCTS em Windows, MTA em Databases, MCITP em SQL Server, autor do SQL Dicas! com mais de 100 contribuições e moderador do Fórum Microsoft Technet – SQL Server Infra Geral.

Contact URLhttp://sqldicas.com.br/

 

Link de inscrição: https://attendee.gotowebinar.com/register/2019974740760099841

DBA vs. Hacker

Você sabe como proteger seus servidores e instâncias de ataques?

O MVP Luan Moreno e o desenvolvedor Lenon Leite prepararam uma sessão incrível que mostrará diversas formas de acesso ao SQL Server e como cada uma pode ser prevenida. É mais um evento do Chapter do PASS de DF, liderado pelo MVP Luciano Moreira.

Este evento não será gravado, portanto quem não for vai perder.

 

Data e Hora

19/02/2014 – das 17:30 as 20:00.

 

Palestrantes:

Luan Moreno é CEO e Fundador da Empresa One Way Solution, trabalha com diversos clientes provendo Arquitetura de dados, Tuning, Alta Disponibilidade, Segurança, Melhores Práticas e Treinamentos. Possui as certificações MCSE Data Platform, MCT. No ano de 2013 recebeu o título de Microsoft MVP SQL Server.

O Lenon Leite é Desenvolvedor Web há mais de 7 anos, trabalhando com linguagens como PHP, Python e Ruby, é Tecnólogo em Segurança de Sistema de Informação, Especialista em CMS’s como WordPress e Joomla, além de frameworks como ZendFramework e Synfony. Atuando no momento como Desenvolvedor Web pela Hepta-Novintec e Consultor da One Way Solution além de membro do grupo hacker ASHACK.

 

Descrição:

Nessa sessão iremos apresentar alguns dos tipos de ataques possíveis no SQL Server e como evitá-los. Iremos visualizar esses ataques de duas perspectivas: Na visão do DBA aonde ele terá que se defender do ataque, e na visão do Hacker que irá mostrar as diversas possibilidades de acesso ao Servidor de Banco de Dados, quem irá vencer? Descubra nessa sessão com duração de 02:30 Hs.”

 

Inscrições:

Quer participar? Então mande um e-mail para o grupo SQLServerDF (https://groups.google.com/forum/#!forum/sqlserverdf) confirmando sua presença, pois a capacidade do auditório é limitada, portanto será atendido por ordem de recebimento dos e-mails!

 

Local

Auditório da Microsoft – Edifício Corporate Financial Center, sala 302 – Brasília, CEP 70712-900

Os endereços de Brasília são um tanto incomuns, no site da Microsoft está o endereço do prédio que fica na Rua SCN, Quadra 02, Bloco A.

 

Eu já comprei as passagens, nos vemos por lá!

 

 

 

fev 10

DBA vs. Hacker

Você sabe como proteger seus servidores e instâncias de ataques?

O MVP Luan Moreno e o desenvolvedor Lenon Leite prepararam uma sessão incrível que mostrará diversas formas de acesso ao SQL Server e como cada uma pode ser prevenida. É mais um evento do Chapter do PASS de DF, liderado pelo MVP Luciano Moreira.

Este evento não será gravado, portanto quem não for vai perder.

 

Data e Hora

19/02/2014 – das 17:30 as 20:00.

 

Palestrantes:

Luan Moreno é CEO e Fundador da Empresa One Way Solution, trabalha com diversos clientes provendo Arquitetura de dados, Tuning, Alta Disponibilidade, Segurança, Melhores Práticas e Treinamentos. Possui as certificações MCSE Data Platform, MCT. No ano de 2013 recebeu o título de Microsoft MVP SQL Server.

O Lenon Leite é Desenvolvedor Web há mais de 7 anos, trabalhando com linguagens como PHP, Python e Ruby, é Tecnólogo em Segurança de Sistema de Informação, Especialista em CMS’s como WordPress e Joomla, além de frameworks como ZendFramework e Synfony. Atuando no momento como Desenvolvedor Web pela Hepta-Novintec e Consultor da One Way Solution além de membro do grupo hacker ASHACK.

 

Descrição:

Nessa sessão iremos apresentar alguns dos tipos de ataques possíveis no SQL Server e como evitá-los. Iremos visualizar esses ataques de duas perspectivas: Na visão do DBA aonde ele terá que se defender do ataque, e na visão do Hacker que irá mostrar as diversas possibilidades de acesso ao Servidor de Banco de Dados, quem irá vencer? Descubra nessa sessão com duração de 02:30 Hs.”

 

Inscrições:

Quer participar? Então mande um e-mail para o grupo SQLServerDF (https://groups.google.com/forum/#!forum/sqlserverdf) confirmando sua presença, pois a capacidade do auditório é limitada, portanto será atendido por ordem de recebimento dos e-mails!

 

Local

Auditório da Microsoft – Edifício Corporate Financial Center, sala 302 – Brasília, CEP 70712-900

Os endereços de Brasília são um tanto incomuns, no site da Microsoft está o endereço do prédio que fica na Rua SCN, Quadra 02, Bloco A.

 

Eu já comprei as passagens, nos vemos por lá!

 

 

 

jan 01

Resultado 2013

2013 foi um ano sensacional para o SQL Dicas e queremos compartilhar com você que nos acompanha o resultado de tanto trabalho e dedicação.

Neste ano o SQL Dicas ficou mais bonito, a base de artigos e scripts úteis cresceu, a newsletter enviada para os assinantes das dicas semanais ficou ainda mais funcional e organizada. Teve sorteio de treinamento de Powershell, uma sessão muito legal de Transaction Log no evento 24HoP do PASS e a cobertura do SQL Saturday no Rio de Janeiro.

Fechamos o ano com:

32.000 visitantes únicos
70.000 visitas
214.000 páginas visitadas
104 posts, entre artigos, scripts úteis e eventos
172 assinantes das dicas semanais
60 usuários cadastrados
1.600 cliques em buscas do Google por mês
120 respostas úteis no Fórum Microsoft Technet SQL Server

Este ano preciso agradecer, além de todos os leitores do SQL Dicas que nos acompanham diariamente, votam, participam e comentam, toda a comunidade técnica, o PASS, a Alog Data Centers do Brasil, a equipe e liderança da Gerência de Hosting, o pessoal do Virtual PASS BR que publicam nossos artigos, os MVPs que contribuem fazendo acontecer diversos eventos gratuitos e de excelente nível técnico, todos os professores do curso de Gestão de TI da UNIP e toda minha família pelo apoio.

Um muito obrigado especial vai para minha querida esposa Fernanda, que além de trabalhar e estudar muito cuida de mim e de nossa casa nos mínimos detalhes, permitindo que eu dedique mais tempo em vários projetos simultâneos, sem desanimar nos momentos difíceis.

O SQL Dicas deseja a todos um excelente 2014, repleto de realizações , força, determinação, saúde e amor.

Muito obrigado,

Luiz Mercante

out 30

Perfmon e SQL Server

O Perfmon do Windows possui muitos contadores de SQL, hoje veremos alguns que ajudam muito em troubleshooting de performance.

Ao fazer uma análise de lentidão é muito importante termos dados armazenados para podermos identificar com maior clareza o que realmente está acontecendo. Portanto, sugiro utilizar sempre o Performance Monitor do Windows para armazenarmos estes dados continuamente. Assim, quando houver um problema de lentidão, será possível comparar estes dados com os dados anteriores ao problema.

Além dos contadores básicos do Windows, podemos adicionar contadores do SQL que com certeza irão nos ajudar muito. Vamos entendê-los:

Page Life Expectancy

Com este indicador podemos observar quanto tempo as páginas ficam em buffer de memória. Um baixo valor, significa que a página teve que ser substituída por outra página utilizada recentemente, ou seja, não havia espaço na memória suficiente para armazenar ambas. Desta forma, podemos concluir que baixos valores indicam gargalo de memória ou memória insuficiente para o SQL Server. É muito comum vermos recomendações de valores como 300 segundos mas vejo muitos ambientes com valores bem acima disso sofrendo pressão interna de memória. O interessante é ver a curva no gráfico do momento que o SQL Server troca as páginas gravando em disco e trazendo outras, indicando que em um determinado momento do dia uma grande quantidade de páginas foi requisitada.

Buffer cache hit ratio

Significa quantas vezes o SQL precisou de uma informação e já tinha pronta em sua memória, ou seja, não foi necessário buscar em disco. Valores em torno de 95% são ideais para a maioria dos ambientes mas pode variar de acordo com as particularidades do seu ambiente. Quanto maior, melhor. Geralmente encontramos este valor em 100% ou 99,998% mas depende do seu ambiente.

Batch Requests/sec

Quantos comandos são executados por segundo. Dentro de uma query podemos ter vários comandos (select, insert, update, alter database, etc.) e este importante contador mostra quantos destes comandos estão sendo executados por segundo. Aqui é importante você saber a quantidade quando o ambiente está normal, quando está sob pressão mas respondendo bem e quando apresenta lentidão. Imagine que seu servidor pode ficar lento por atingir o máximo de sua capacidade ou pode estar lento sem ter atingido o máximo da capacidade. Lembre-se que uma batch pode realizar várias transações.

Page Splits/sec

Tendo em vista que os dados são armazenados em blocos chamados páginas, quando estas estão fragmentadas o número de salto entre as páginas para conseguir uma informação aumenta consideravelmente. Consequentemente serão necessárias mais operações de I/O, ou seja, um número menor é sinal de que temos as páginas cheias de dados ou que os dados
solicitados estão dentro da mesma página. Como exemplo, se dermos um select em uma tabela e os registros estiverem dentro da mesma página, iremos saltar 0 vezes. Se os registros estiverem metade em uma página e metade em outra, iremos saltar 1 vez.

Compilations/sec

Mostra quantas compilações foram executadas por segundo. O SQL quando recebe uma query faz um trabalho de conversão para um plano de execução chamado de “Execution Plan”. Este execution plan mostra quais tabelas verificar, se fará um scan em toda a tabela ou se usará um índice, como vai acessar o dado, etc. Aqui o valor depende pois muitas compilações é sinal de que o cache de execution plans não está sendo eficiente, porém, um servidor com um ótimo hardware é capaz de fazer mais compilações por segundo que um servidor com poucos recursos de hardware.

Lazy Writer/sec

O Lazy Writer é o mecanismo responsável por remover páginas não utilizadas do Data Cache do SQL para dar lugar a novas páginas solicitadas, quando há algum tipo de pressão de memória. Suponhamos que seu SQL já atingiu seu Max Server Memory e você executou uma query solicitando registros que não estão no Data Cache. O Lazy Writer faz uma varredura no Data Cache utilizando um algorítimo LRU-K, procurando por páginas cuja pontuação de utilização chegou a 0. As páginas são então removidas e as demais páginas não utilizadas mas que ainda não estão com 0 são ajustadas tendo sua pontuação reduzida, até que em outra operação do Lazy Writer acabam também chegando a zero e em seguida removidas. Portanto, é importante monitorar este contador para saber se a quantidade de Lazy Writer por segundo aumentou, diminuiu ou até mesmo durante uma operação específica ou momentos de pico. Geralmente encontro este valor zerado (pois é coletado uma vez por segundo) e somente onde há uma pressão de memória que é possível vermos algum valor.

SQLServer:Databases – Transactions/sec

Quantas transações por segundo estão sendo realizadas na instância ou base (pode ser coletado por base). É uma forma de medir a demanda e serve como base para você saber se a TempDB está sendo bem utilizada. Pegue o valor total e compare com o valor de transações por segundo na base TempDB, assim, você saberá se 5%, 30% ou 70% das transações são executadas em TempDB.

SQLServer:Databases – Active Transactions

Este contador permite que você saiba quantas transações estão ativas no momento da coleta. Muito útil pra levantar momentos de grandes e demoradas transações ou saber quando a atividade é mais intensa na TempDB, por exemplo, ou quando temos várias bases no mesmo servidor e precisamos saber quais são mais utilizadas. É comum em ambientes rápidos vermos várias transações por segundo mas 0 transações ativas.

SQLServer:Databases – Data File(s) Size(KB)

Permite visualizar o tamanho do datafile de cada database. Se uma database possui mais de um arquivo de dados, é exibida a soma do tamanho de cada arquivo. Tem sua utilidade, se você armazenar um histórico disso pode registrar em um gráfico o crescimento do arquivo durante um determinado período.

SQLServer:Databases – Log File(s) Size(KB)

Exibe o tamanho do arquivo de Transaction Log de cada base. Se uma database possui mais de um arquivo de Transaction Log, é exibida a soma do tamanho de cada arquivo. Tem sua utilidade, se você armazenar um histórico disso pode registrar em um gráfico o crescimento do arquivo durante um determinado período.

SQLServer:Databases – Log File(s) Used Size(KB)

Funciona da mesma forma, exibe quantos KB estão sendo utilizados do arquivo de Transaction Log. Não é tão útil, ver em porcentagem é bem melhor.

SQLServer:Databases – Percent Log Used

Mais eficiente, mostra em porcentagem a utilização do Transaction Log de cada base. É possível evidenciar quando temos muitos checkpoints em bases com Recovery Model em SIMPLE e arquivo de Transaction Log muito pequeno, lembrando que toda vez que o arquivo de Transaction Log atinge 70% de sua capacidade, o checkpoint é feito possibilitando truncá-lo e evitando seu crescimento.

SQLServer:Databases – Log Flushes/sec

Quantas vezes o cache do Transaction Log descarregou seus dados em disco, por ter atingido seu tamanho máximo (60KB), por ter sido feito um commit da transação ou se houve um rollback. Contador extremamente importante, permite ver qual limite foi atingido.

SQLServer:Databases – Log Bytes Flushed/sec

Quantos bytes estão sendo gravados no Transaction Log a cada segundo. Divida a quantidade de Bytes pela quantidade de Log Flushes e você verá o tamanho de cada Log Flush. Quando pequenos é sinal de muitos commits e muito grandes (~60KB que é o tamanho máximo) você pode estar atingindo o limite de outstanding I/Os se a latência do disco for baixa, o disco for dedicado àquele Transaction Log e a fila de disco bate picos de 32 (Current Disk Queue Lenght).

Este artigo explica bem os limites de Outstanding I/Os:
http://blogs.msdn.com/b/sqlcat/archive/2013/09/10/diagnosing-transaction-log-performance-issues-and-limits-of-the-log-manager.aspx

SQLServer:Databases – Log Growths

Excelente maneira de ver quantas vezes o arquivo de Transaction Log de cada base precisou crescer desde que a instância do SQL Server foi iniciada pela última vez. Útil para evidenciar quando você recomenda um arquivo de Transaction Log com tamanho inicial maior ou melhores configurações de auto-growth e o cliente se mostra resistente.

SQLServer:Databases – Log Shrinks

Mostra quantas vezes foi feito Shrink no Transaction Log de cada base desde que a instância foi iniciada.Se o Transaction Log está crescendo, um dos motivos é que alguém ou alguma rotina pode estar fazendo Shrink do arquivo.

SQLServer Locks

Adicione todos os contadores desta categoria. Locks são bloqueios realizados pelo próprio SQL Server para garantir a consistência dos dados durante as transações. Por exemplo, ao alterar um registro, todos devem aguardar que a alteração seja concluída até que possam consultá-lo ou alterá-lo novamente. Com este contador você poderá verificar quantas vezes por segundo e qual o tipo de bloqueio que está sendo mais solicitado. O SQL Server pode bloquear um registro, uma página de dados, uma extent, uma tabela, uma base, um range de páginas de índices, além de outros itens.

SQLServer:Locks – Requests/sec

Permite ver por tipo de objeto e a quantidade de locks solicitados por segundo. É interessante fazer este comparativo por objeto como database, extent, página, key (uma linha em um índice), metadados, RID, etc.

SQLServer:Locks – Timeouts/sec

Este contador cruzando com o Locks Requests/sec permite saber quantos dos locks requisitados apresentam timeout e em que período do dia se você estiver coletando estes dados. É só quando roda o relatório do chefe ou é uma constante?

SQLServer:Locks – Number of Deadlocks/sec

Possibilita visualizar a quantidade de deadlocks por segundo. Não queremos e não costumamos ter deadlocks mas coletando este dado durante um período é possível saber quando eles ocorrem, com que frequência, se são muitos ou poucos, se coincide com algum evento, etc.

SQL Server Wait Statistics

O SQL Server trabalha com threads que executam transações. São milhares de threads entrando e saindo dos cores do seu processador, executando suas transações. Só que em alguns momentos, um recurso ou uma condição podem não estar disponíveis e portanto as threads que dependem destes recursos ou condições ficam aguardando. O SQL é capaz de identificar o motivo e o tempo em que cada thread fica aguardando, registrando estas informações em DMVs e nos contadores do Perfmon. Adicione todos os objetos deste contador e veja que você pode obter informações sobre esperas por Lock (preciso bloquear algum objeto para alterá-lo mas não posso pois já está bloqueado por outra thread), Log Write (preciso escrever no Log mas tem thread na fila), Network IO (devolvi os dados para a aplicação mas ela ainda não os consumiu), Page Latch (vou bloquear uma página que já está em memória), Page Latch IO (vou bloquear uma página que ainda não está em memória). Você pode cosultar detalhes sobre bloqueios neste link da Microsoft e pode obter mais informações sobre waits neste outro link do Paul Randal. 

 

Além disso, você deve consultar os contadores de hardware para cruzar as informações.

 

Memory Available MBytes

Quantos MB estão disponíveis no seu servidor.

Page Faults/sec

Quantas vezes seu servidor precisou de um dado que não estava em memória, e foi necessário buscá-lo em disco ou em outro dispositivo.

Processor Privileged Time %

A maioria do tempo, cerca de 99%, o processador trabalha em modo de usuário (processor time). Quando o processador trabalha em modo kernel, o processador utiliza tempo privilegiado. Este contador pode identificar por exemplo, que o antivírus ou algum outro software está atuando. Vemos este contador geralmente beirando 1% a 3%.

Paging File % Usage

Queremos ver sempre em zero mas é muito difícil. Significa quanto do que você configurou como memória virtual está sendo utilizado de fato. Quanto menos, melhor pois os processos não sabem que os dados que estão em memória virtual estão em disco, não são capazes de diferenciar onde fisicamente estão estes dados. É muito importante sabermos se está ocorrendo paginação da memória em disco e quanto está sendo paginado. Se você tem um pagefile de 16GB onde 50% está sendo utilizado, por exemplo, significa que 8GB que poderiam estar na sua memória física estão em disco. Aliado a outros indicadores, serve para evidenciar pressão externa de memória ou o benefício obtido com o “Lock Pages in Memory”.

PhysicalDisk – Avg. Disk sec/Read e Write

É o tempo em milisegundos de latência do disco para operações de leitura ou de escrita. Informação importantíssima para saber se o disco está respondendo a contento ou se está lento. Para leitura gostamos de vê-lo abaixo de 10ms e para escrita 0ms se tivermos uma storage com cache ou algo em torno de 5ms para outras soluções. É comum vermos ambientes com latência alta ou picos e é importante sabermos que o SQL Server utiliza esta informação durante o Checkpoint para fazer suas requisições de I/O.

PhysicalDisk – Avg. Disk Bytes/Read e Write

A média da quantidade de Bytes lidos e escritos é importante cruzando com outros contadores. Fila de disco sem aumento na quantidade de Bytes significa aumento de operações de I/O pequenas, o que pode ser utilizado para fortalecer uma teoria que possibilita foco mais assertivo na análise, apesar de não ser uma informação conclusiva.

PhysicalDisk – Disk Reads/sec e Writes/sec

Mostra quantas operações de I/O estão sendo feitas de leitura e escrita. Também não é uma informação conclusiva mas permite observarmos se estamos atingindo o consumo de IOPS de um disco, por exemplo. Combinando com o Avg. Disk Bytes, podemos saber se são operações de I/O grandes ou pequenas.

PhysicalDisk – Disk Transfers/sec

Este é o contador utilizado para medir IOPS (quantidade de operações de IO por segundo) no Windows. Seu disco ou arranjo de discos em RAID possuem uma capacidade de IOPS que devemos acompanhar e relacionar com o próximo contador da lista. Existe também o Avg Disk Transfers/sec que já exibe uma média da quantidade de IOPS.

PhysicalDisk – Avg Disk Queue Length

É o tamanho da fila de requisições de disco, na média. O contador Current Disk Queue Length mostra no momento da coleta como estava a fila de requisições de disco mas varia tanto que serve mais para identificar picos. Para identificar um gargalo mesmo o AVG é melhor pois já exibe uma média. Esta média é ideal menor que 1 mas depende do ambiente e do tempo de resposta que é esperado.

% Disk Time

É um contador parecido com o % CPU Time mas especificamente do disco. Quanto tempo o disco fica ocupado recebendo e entregando requisições.

Com estes contadores você já consegue montar um baseline bacana, ir monitorando enquanto está tudo bem para que quando houver um problema você poder comparar os resultados e pelo menos se nortear por onde deve começar a analisar. Obviamente não substituem uma análise nos registros das DMVs do SQL Server mas já serve para guardar um histórico interessante. Ao alterar configurações, procure verificar os dados do Perfmon para identificar as alterações no comportamento. Com um baseline como este, por exemplo, pude perceber um aumento na utilização da TempDB e de IO quando mudei a base para utilizar Read Commited Snapshot Isolation, ou quando ativei o Lock Pages in Memory e percebi que o pagefile estava sendo bem menos utilizado.

 

Veja mais sobre Locks, Waits e Latches:

 

 

Se quiser contribuir, comente!

 

.

out 10

24 horas de PASS – Português

 

Este evento já terminou, se você quiser assistir aos vídeos das sessões gravadas clique aqui.

Chegou um dos eventos mais esperados do ano, o 24 horas de PASS completamente em português!

Durante os dias 13 e 14 de Novembro de 2013 a partir das 11:00 (horário de Brasília) / 13:00 (horário de Portugal) teremos 24 sessões de SQL Server gratuitas.

São mais de 20 especialistas em SQL Server do Brasil e de Portugal, com apresentações técnicas de DEV, BI, DBA e Azure.

Cadastre-se aqui para este grande evento e veja neste outro link todas as sessões e apresentadores que estarão distribuindo conhecimento gratuitamente.

Este ano tem uma novidade, terá uma sessão minha sobre Transaction Log que você não pode perder. Nos encontramos por lá!

Quem tiver alguma dúvida pode entrar em contato através do email 24hop_portuguese@sqlpass.org.

 

out 07

Sorteio de Treinamento – Powershell

Você gostaria de ganhar um treinamento de Powershell com o Laerte Junior, um dos caras mais feras no assunto do mundo totalmente gratuito?

É um excelente treinamento online (eu já fiz), utilizando as plataformas Livemeeting ou Lync para apresentação, onde o aluno ainda recebe um servidor no Azure para fazer exercícios em real time, além de poder tirar dúvidas direto com o grande Laerte através do seu microfone, no conforto da sua casa ou empresa, sem trânsito, custos de deslocamento, atrasos, etc.

Veja aqui os depoimentos de quem já fez o treinamento, vários feras do SQL Server recomendam.

Para participar do sorteio é bem simples, envie um email com seus dados de contato (Nome, Email e Telefone) para contato@aprendapowershell.com.br com o assunto SORTEIO e automaticamente você estará participando.

O sorteio será realizado para a próxima turma de sábados, de 26/10 a 16/11, das 8:00 as 12:00 (clique aqui para ver o resultado).

Neste outro link você confere o conteúdo do curso, valores e turmas.

Não perca esta oportunidade, mesmo quem não for sorteado, recomendo de mão cheia este treinamento.

 

—————————————–
—————————————–

Pessoal, é hoje das 20:30 as 21:30. Eu (Laerte) e o amigo Alexandro Prado vamos falar um pouco de como automatizar todo o processo de criação de uma nova Hyper-V VM com W2012 Core e SQL Server 2012 core, desde a criação do unattended installation até a junção dela no domínio, usando PowerShell 3.0 Workflows. Link para inscrição -> https://powershell.eventday.com/

set 30

Tamanho e utilização dos arquivos

Saber o tamanho dos arquivos de dados e TLog bem como o quanto do espaço alocado já foi utilizado é necessário em praticamente todas as análises ou documentações, portanto vamos ver um script que faz isso muito bem, mostrando detalhadamente todas as informações relacionadas a tamanho, localização e espaço utilizado de cada arquivo:

SELECT
CAST(sysfiles.size/128.0 AS int) AS FileSizeMB,
sysfiles.name AS LogicalFileName, sysfiles.filename AS PhysicalFileName,
CONVERT(sysname,DatabasePropertyEx(‘TempDB’,’Status’)) AS Status,
CONVERT(sysname,DatabasePropertyEx(‘TempDB’,’Updateability’)) AS Updateability,
CONVERT(sysname,DatabasePropertyEx(‘TempDB’,’Recovery’)) AS RecoveryMode,
CAST(sysfiles.size/128.0 – CAST(FILEPROPERTY(sysfiles.name,  + ” +
       ‘SpaceUsed’ + ” + ” ) AS int)/128.0 AS int) AS FreeSpaceMB,
CAST(100 * (CAST (((sysfiles.size/128.0 -CAST(FILEPROPERTY(sysfiles.name,
 + ” + ‘SpaceUsed’ + ” + ” ) AS int)/128.0)/(sysfiles.size/128.0))
AS decimal(4,2))) AS varchar(8)) + ” + ” + ‘%’ + ” + ” AS ‘FreeSpace%’
FROM dbo.sysfiles

 

Veja a saída já convertendo o tamanho para MB:

 

Sempre gosto de citar o autor e a referência do script mas faz algum tempo que uso e pesquisando novamente não o encontrei. Se alguém souber e puder fazer a gentileza de informar, por favor, comente!

Posts mais antigos «

» Posts mais novos