Usuário com melhor resposta
otimização

Pergunta
-
Bom dia
Pessoal eu não sou DBA
uso pouco somente o manager do SQL, sei como atachar uma database, backup, essas coisas simples.
porem estou precisando dar um Otimizada no meu banco aqui na empresa, tentar melhorar o desempenho.
o que posso fazer para conseguir um ganho de desempenho no SQL, a instalação dele está default.
posso habilitar algumas opções, o que fazer, se tiverem alguns links uteis, de desempenho e otimização ficaria grato.
desde já agradeço a atenção
Analista de Suporte MCP W2K
Respostas
-
Olá Ghustavo,
Inicialmente você pode no próprio windows 2003, usando a ferramenta Performance ter uma idéia sobre o estresse do seu servidor.
Nesta ferramente você econtrará 3 contadores:
-% Processor time: Não deve estar acima de 75% (na média), podem ocorrer picos rápidos o que é perfeitamente normal. Se estiver constantemente acima de 80%, pode siginificar que seu disco está com I/O acima do recomendado ou está com uma quantidade baixa de memória ou ainda que seu processador não está dando conta do processo, neste caso você pode adicionar um novo processador (atente para o tipo de licença do seu SQL)
-AVG. Disk: Se estiver constantemente acima de 80% pode significar principalmente falta de memória (ou pode ser uma consequencia do item acima).
-Pages/Sec: Se estiver constantemente acima de 75% pode siginificar uma utilização muito alta de memória, neste caso recomendo:
1-Checar a utilização do TempDB, se a utilização do TempDB estiver muito alta você terá um I/O alto e um processamento alto, uma forma de amenisar isto seria a criação de mais um datafile para o TempDB, a Microsoft recomenda 1 datafile por Core de processador, ou seja se vc tiver um QuadCore o ideal seria ter 4 datafiles para o TempDB.
Talves as formulas abaixo te ajudem um pouco:
Calculo de I/O de discos:
Tomando como base o padrão do mercado de 300 IOPS (I/O por segundos) e de acordo com a indicação da Microsoft de que o I/O não deve ultrapassar 80% do IOPS do disco.
Raid1: [reads + (2*writes)] / 2 = IOPS (Neste caso um IOPS acima de 255 siginifica que você não deve usar Raid1 (veja calculo para Raid10)
Raid5: [reads + (4*writes)] / QtdeDeDiscos = IOPS (Neste caso um IOPS acima de 255 siginifica que você deve adicionar mais discos ao seu Raid5.
Ou
Raid5: [reads + (4*writes)] / 255 = Qtde de discos que você precisa no seu Raid5
Raid10: [read + (2*writes)] / QtdeDeDiscos = IOPS (Neste caso um IOPS acima de 255 siginifica que você deve adicionar mais discos ao seu Raid10.
A capacidade de I/O dos seus discos você encontra no site do fabricante, basta pegar o modelo e checar, como disse no começo o padrão é 300 IOPS.
Importante não use Raid5 para LogFiles, use Raid1 ou Raid10.
Espero ter ajudado, se alguém achar algum erro por favor me corrijam.
Att
Ricardo Muramatsu- Marcado como Resposta Junior Galvão - MVPMVP, Moderator sábado, 13 de junho de 2015 03:34
Todas as Respostas
-
Se for possivel você informar a edição e versão do SQL Server e do Sistema Operacional e também a configuração do servidor, o pessoal terá mais facilidade para indicar os passos básicos.
Alex Rosa -- Sharing my knowledge at www.keep-learning.com (Articles and FORUM) -
Windows 2003 64bits
Intel 2160 1.8GHZ
4GB RAM
SQL 2005
Microsoft SQL Server Management Studio 9.00.3042.00
Microsoft Analysis Services Client Tools 2005.090.3042.00
Microsoft Data Access Components (MDAC) 2000.086.3959.00 (srv03_sp2_rtm.070216-1710)
Microsoft MSXML 2.6 3.0 6.0
Microsoft Internet Explorer 6.0.3790.3959
Microsoft .NET Framework 2.0.50727.3082
Operating System 5.2.3790
espero ajudar mais ainda
Analista de Suporte MCP W2K -
Olá Ghustavo,
Inicialmente você pode no próprio windows 2003, usando a ferramenta Performance ter uma idéia sobre o estresse do seu servidor.
Nesta ferramente você econtrará 3 contadores:
-% Processor time: Não deve estar acima de 75% (na média), podem ocorrer picos rápidos o que é perfeitamente normal. Se estiver constantemente acima de 80%, pode siginificar que seu disco está com I/O acima do recomendado ou está com uma quantidade baixa de memória ou ainda que seu processador não está dando conta do processo, neste caso você pode adicionar um novo processador (atente para o tipo de licença do seu SQL)
-AVG. Disk: Se estiver constantemente acima de 80% pode significar principalmente falta de memória (ou pode ser uma consequencia do item acima).
-Pages/Sec: Se estiver constantemente acima de 75% pode siginificar uma utilização muito alta de memória, neste caso recomendo:
1-Checar a utilização do TempDB, se a utilização do TempDB estiver muito alta você terá um I/O alto e um processamento alto, uma forma de amenisar isto seria a criação de mais um datafile para o TempDB, a Microsoft recomenda 1 datafile por Core de processador, ou seja se vc tiver um QuadCore o ideal seria ter 4 datafiles para o TempDB.
Talves as formulas abaixo te ajudem um pouco:
Calculo de I/O de discos:
Tomando como base o padrão do mercado de 300 IOPS (I/O por segundos) e de acordo com a indicação da Microsoft de que o I/O não deve ultrapassar 80% do IOPS do disco.
Raid1: [reads + (2*writes)] / 2 = IOPS (Neste caso um IOPS acima de 255 siginifica que você não deve usar Raid1 (veja calculo para Raid10)
Raid5: [reads + (4*writes)] / QtdeDeDiscos = IOPS (Neste caso um IOPS acima de 255 siginifica que você deve adicionar mais discos ao seu Raid5.
Ou
Raid5: [reads + (4*writes)] / 255 = Qtde de discos que você precisa no seu Raid5
Raid10: [read + (2*writes)] / QtdeDeDiscos = IOPS (Neste caso um IOPS acima de 255 siginifica que você deve adicionar mais discos ao seu Raid10.
A capacidade de I/O dos seus discos você encontra no site do fabricante, basta pegar o modelo e checar, como disse no começo o padrão é 300 IOPS.
Importante não use Raid5 para LogFiles, use Raid1 ou Raid10.
Espero ter ajudado, se alguém achar algum erro por favor me corrijam.
Att
Ricardo Muramatsu- Marcado como Resposta Junior Galvão - MVPMVP, Moderator sábado, 13 de junho de 2015 03:34
-
Boa tarde Ricardo.
quanto a questão do server ele esta bem, os consumos de recursos estão normais, dentro dos limites.
so queria saber como otimizar mais o SQL.
como deixar ele mais redondo entende, a instalação dele foi feita default, creio que se voce colocar um server com o dobro de processamento, com o dobro de memória não terei um grande rendimento da maquina.
teria mesmo que fazer algumas "otimizações".
Analista de Suporte MCP W2K -
Bom Dia,
Não há uma receita de bolo para "omitizar", pois, cada cenário requer uma atenção diferente (é muito diferente otimizar um DW, de um ERP, etc). O que funciona muito bem para um pode ser muito danoso para outro. Vale a pena lembrar também que o SQL Server não age sozinho. Focar na aplicação também pode ser muito eficaz. Alguns links úteis:
SQL Server Performance
http://www.sql-server-performance.com
Troubleshooting Performance Problems in SQL Server 2005
http://download.microsoft.com/download/1/3/4/134644fd-05ad-4ee8-8b5a-0aed1c18a31e/TShootPerfProbs.doc
Tuning Microsoft SQL Server 2005 Performance
http://www.hds.com/assets/pdf/tuning-microsoft-sql-server-2005-performance-wp.pdf
Advanced Querying and Query Tuning in SQL Server 2000 and 2005
http://www.mcdbabrasil.com.br/modules.php?name=News&file=article&sid=287
[ ]s,
Gustavo Maia Aguiar
http://gustavomaiaaguiar.spaces.live.com
Piores Práticas - Uso do COUNT(*)
http://gustavomaiaaguiar.spaces.live.com/blog/cns!F4F5C630410B9865!538.entry
Classifique as respostas. O seu feedback é imprescindível -