Seguem algumas dicas e coisas novas ou não tão usuais que aprendi no primeiro dia do 24h PASS, são mais direcionadas aos DBAs, mas também serve aos desenvolvedores e curiosos

  • Para mim sempre foi uma verdade que o VARCHAR(MAX) era igual ao TEXT, porém eu estava enganado e o varchar(MAX) fica na linha de dados, e não são apenas ponteiros para informações que estão em outro lugar, então ao se utilizar em um campo como [observação], que vc muitas vezes nem vai utilizar nas consultas ele gera alto IO.

Solução e mais informações: “In-Row Datahttp://msdn.microsoft.com/en-us/library/ms189087(v=sql.105).aspx

  • FILLFACTOR mesmo em OLTP não existe o padrão de colocar 80%

Pagesplits vão ocorrer e isso é normal, e para consultas seu sistema vai ficar muito mais lerdo

Considere um sistema de 50GB, que cresça 500MB por semana, os 20% do FILLFACTOR representam 10GB de espaço perdido que consomem IO / memória etc

Se você faz o rebuild semanal, para que está deixando 10GB livres toda semana.

  •  REBUILD de índices. Considere um índice grande, ex tabela de pedidos, porém os dados inseridos / alterados só ocorrem nos últimos 2 meses, mas vc tem 5 anos de pedidos

Se vc for fazer a lógica de fazer rebuild dos índices com fragmentação de 30% você nunca vai rebuildar este índice porque a média de fragmentação será baixissima. Então repense suas lógicas de rebuild

Links uteis

Um modo de você saber se seu índices está parcialmente fragmentado é usar FILTERED INDEX http://msdn.microsoft.com/en-us/library/cc280372.aspx

  • INSERTs em tabelas com IDENTITY podem ser acabar sofrendo em performance, pois como ele sempre insere na última página, esta página pode acabar ficando bem concorrido

Tem um whitepaper bem legal sobre isso:

Diagnosing and Resolving Latch Contention on SQL Serverhttp://www.microsoft.com/en-us/download/details.aspx?id=26665

Anúncios