none
otimização RRS feed

  • 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
    quarta-feira, 22 de abril de 2009 12:34

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
    quarta-feira, 22 de abril de 2009 15:17

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)
    quarta-feira, 22 de abril de 2009 14:28
  • 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
    quarta-feira, 22 de abril de 2009 14:44
  • 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
    quarta-feira, 22 de abril de 2009 15:17
  • 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
    quarta-feira, 22 de abril de 2009 16:41
  • 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
    segunda-feira, 27 de abril de 2009 12:43
  • Bom dia
    Muito obrigado pelas informações.
    vou verificar esses links que me passou
    novamente obrigado pela atenção.
    Analista de Suporte MCP W2K
    segunda-feira, 27 de abril de 2009 14:24