locked
Performance 2008 R2 no win 2003, deixa a desejar RRS feed

  • Pergunta

  • Olá pessoal tenho um banco em um servidor cloud e o mesmo banco em um servidor dedicado. Estava migrando do 2008 que esta no cloud (win 2008) para o 2008 R2 que esta no dedicado com win 2003, fazendo um teste simples, fiz um select numa tabela que tem 7890 registros, no cloud demora 4 seg, já no dedicado, apesar da máquina ser uma baita máquina xeon, demorou 18 seg. Ambas as máquinas possuem a mesma largura de banda e firewall. Teria o win 2008 mais performance nas consultas ao banco? ou é alguma confirguração que tenho que fazer no SQL 2008 R2 do dedicado?

    Fiquei realmente espantando com esta demora.

    Abs


    Se for útil marque como tal, se for a resposta, marque-a também. Procure ajudar a quem mais precisa
    • Movido Gustavo Maia Aguiar domingo, 15 de agosto de 2010 20:28 (De:SQL Server - Desenvolvimento Geral)
    domingo, 15 de agosto de 2010 03:58

Respostas

  •  

    Você deve rodar o comando:

    Update statistics nome_table with fullscan

    Esse link tem informações mais detalhadas.

    http://msdn.microsoft.com/en-us/library/aa260645(v=SQL.80).aspx


    Fabrício França Lima | MCP, MCTS, MCITP | Visite meu site: http://fabriciodba.spaces.live.com/ | Dicas de artigos SQL: Siga-me no twitter @fabriciodba.
    segunda-feira, 16 de agosto de 2010 01:37
  • Fala Ricardo, como a query que vc roda é a seguinte:

    SELECT * FROM SMS_CAMPANHA ORDER BY CAMPANHAID DESC

     Ele varre o índice clustered todo para encontar o resultado. Acredito que esse plano deva ser o mesmo nos 2 ambientes.

    Estão se esgotando meus possíveis motivos , outros possíveis seriam:

    Como é a concorrencia nos 2 ambientes no momento que roda a query?

    Os discos onde essas databases são armazenadas possuem a mesma velocidade? O tempDB dos dois ambientes fica em discos separados?

    Esse tempo de 3 e 18 segundos ocorre quando você executa a query na primeira vez ou depois de outras execuções da mesma query? Os dados podem estar em cache....

     

     

     

     

     

     


    Fabrício França Lima | MCP, MCTS, MCITP | Visite meu site: http://fabriciodba.spaces.live.com/ | Dicas de artigos SQL: Siga-me no twitter @fabriciodba.
    segunda-feira, 16 de agosto de 2010 16:58

Todas as Respostas

  • Fala ricardo, você já atualizou as estatisticas das tabelas utilizadas pela sua query no 2008 R2?
    Fabrício França Lima | MCP, MCTS, MCITP | Visite meu site: http://fabriciodba.spaces.live.com/ | Dicas de artigos SQL: Siga-me no twitter @fabriciodba.
    domingo, 15 de agosto de 2010 15:15
  • Olá Fabricio,

    Só tem uma única tabela que faço a listagem, mas de qualquer forma onde faria isso? Reports > User Estatistics?

    Desculpe pela básica pergunta.

    Abs

     


    Se for útil marque como tal, se for a resposta, marque-a também. Procure ajudar a quem mais precisa
    domingo, 15 de agosto de 2010 23:39
  •  

    Você deve rodar o comando:

    Update statistics nome_table with fullscan

    Esse link tem informações mais detalhadas.

    http://msdn.microsoft.com/en-us/library/aa260645(v=SQL.80).aspx


    Fabrício França Lima | MCP, MCTS, MCITP | Visite meu site: http://fabriciodba.spaces.live.com/ | Dicas de artigos SQL: Siga-me no twitter @fabriciodba.
    segunda-feira, 16 de agosto de 2010 01:37
  • Olá Fabricio obrigado pela resposta, após rodar essa query o que eu faria agora?

    Abs


    Se for útil marque como tal, se for a resposta, marque-a também. Procure ajudar a quem mais precisa
    segunda-feira, 16 de agosto de 2010 12:21
  • Mesmo depois de atualizar as estatísticas a query que é rápida no 2008 continua lenta no 2008 R2?

     


    Fabrício França Lima | MCP, MCTS, MCITP | Visite meu site: http://fabriciodba.spaces.live.com/ | Dicas de artigos SQL: Siga-me no twitter @fabriciodba.
    segunda-feira, 16 de agosto de 2010 12:37
  • Olá Fabricio, sim continuou com os mesmos 18 segundos. Resumo do meu cenário:

    Cloud: Windows 2008, com Sql Server 2008 Standard, máquina com Core 2 Duo, 4 GB de memória. Tempo de consulta com 7984 registros: 18seg

    Dedicado: Windows 2003 R2, Sql Server 2008 R2 Enterprise, Intel Xeon-Lynnfield 3460-Quadcore [2.8GHz] Tempo de consulta com 7984 registros: 3seg

    Abs


    Se for útil marque como tal, se for a resposta, marque-a também. Procure ajudar a quem mais precisa
    segunda-feira, 16 de agosto de 2010 12:47
  • Acho que você trocou os tempos. 18seg é no segundo ambiente.

    Só para confirmar, a tabela possui os mesmos índices nos 2 ambientes?

    E qual a quantidade de memória do segundo amebiente?

     


    Fabrício França Lima | MCP, MCTS, MCITP | Visite meu site: http://fabriciodba.spaces.live.com/ | Dicas de artigos SQL: Siga-me no twitter @fabriciodba.
    segunda-feira, 16 de agosto de 2010 13:12
  • Opa, foi mesmo, troquei. 18 seg é no segundo ambiente.

    No segundo ambiente tem 6 GB Kingston Registrada. Eu peguei o banco do cloud e atachei no segundo ambiente.

    Abs


    Se for útil marque como tal, se for a resposta, marque-a também. Procure ajudar a quem mais precisa
    segunda-feira, 16 de agosto de 2010 13:35
  • blz...

    No Management Studio, tecle Ctrl + M para que seja gerado o execution plan da query após a execução.

    Será aberta uma nova aba com o execution plan.

    Faça isso nos 2 servidores para Comparar o execution plan dessa query e verifica se são os mesmos....

    Caso não seja, verifique no execution plan qual indice está sendo usado, ou se está ocorrendo algum table ou index Scan, em seguida post a query para a agente....

     


    Fabrício França Lima | MCP, MCTS, MCITP | Visite meu site: http://fabriciodba.spaces.live.com/ | Dicas de artigos SQL: Siga-me no twitter @fabriciodba.
    segunda-feira, 16 de agosto de 2010 14:02
  • Olá Fabricio, fiz o plano de execução no segundo ambiente, o primeiro ambiente neste momento esta inacessível, então vem o resultado em XML do segundo ambiente:

     

    <?xml version="1.0" encoding="utf-16"?>
    <ShowPlanXML xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" Version="1.1" Build="10.50.1600.1" xmlns="http://schemas.microsoft.com/sqlserver/2004/07/showplan">
     <BatchSequence>
      <Batch>
       <Statements>
        <StmtSimple StatementCompId="1" StatementEstRows="8417" StatementId="1" StatementOptmLevel="TRIVIAL" StatementSubTreeCost="0.183652" StatementText="SELECT * FROM SMS_CAMPANHA ORDER BY CAMPANHAID DESC" StatementType="SELECT" QueryHash="0x79CFB656BE4E549D" QueryPlanHash="0xD5B3FC3C4BAEB1F6">
         <StatementSetOptions ANSI_NULLS="true" ANSI_PADDING="true" ANSI_WARNINGS="true" ARITHABORT="true" CONCAT_NULL_YIELDS_NULL="true" NUMERIC_ROUNDABORT="false" QUOTED_IDENTIFIER="true" />
         <QueryPlan DegreeOfParallelism="1" CachedPlanSize="16" CompileTime="0" CompileCPU="0" CompileMemory="64">
          <RelOp AvgRowSize="211" EstimateCPU="0.0094157" EstimateIO="0.174236" EstimateRebinds="0" EstimateRewinds="0" EstimateRows="8417" LogicalOp="Clustered Index Scan" NodeId="0" Parallel="false" PhysicalOp="Clustered Index Scan" EstimatedTotalSubtreeCost="0.183652" TableCardinality="8417">
           <OutputList>
            <ColumnReference Database="[sms_conectta]" Schema="[dbo]" Table="[SMS_CAMPANHA]" Column="CLIENTEID" />
            <ColumnReference Database="[sms_conectta]" Schema="[dbo]" Table="[SMS_CAMPANHA]" Column="TITULO" />
            <ColumnReference Database="[sms_conectta]" Schema="[dbo]" Table="[SMS_CAMPANHA]" Column="TEXTO" />
            <ColumnReference Database="[sms_conectta]" Schema="[dbo]" Table="[SMS_CAMPANHA]" Column="CAMPANHAID" />
            <ColumnReference Database="[sms_conectta]" Schema="[dbo]" Table="[SMS_CAMPANHA]" Column="DATA" />
            <ColumnReference Database="[sms_conectta]" Schema="[dbo]" Table="[SMS_CAMPANHA]" Column="AUTORIZADO" />
            <ColumnReference Database="[sms_conectta]" Schema="[dbo]" Table="[SMS_CAMPANHA]" Column="STATUSCAMPANHA" />
            <ColumnReference Database="[sms_conectta]" Schema="[dbo]" Table="[SMS_CAMPANHA]" Column="QUANTIDADESMS" />
            <ColumnReference Database="[sms_conectta]" Schema="[dbo]" Table="[SMS_CAMPANHA]" Column="DATAENVIAR" />
           </OutputList>
           <RunTimeInformation>
            <RunTimeCountersPerThread Thread="0" ActualRows="8417" ActualEndOfScans="1" ActualExecutions="1" />
           </RunTimeInformation>
           <IndexScan Ordered="true" ScanDirection="BACKWARD" ForcedIndex="false" ForceSeek="false" NoExpandHint="false">
            <DefinedValues>
             <DefinedValue>
              <ColumnReference Database="[sms_conectta]" Schema="[dbo]" Table="[SMS_CAMPANHA]" Column="CLIENTEID" />
             </DefinedValue>
             <DefinedValue>
              <ColumnReference Database="[sms_conectta]" Schema="[dbo]" Table="[SMS_CAMPANHA]" Column="TITULO" />
             </DefinedValue>
             <DefinedValue>
              <ColumnReference Database="[sms_conectta]" Schema="[dbo]" Table="[SMS_CAMPANHA]" Column="TEXTO" />
             </DefinedValue>
             <DefinedValue>
              <ColumnReference Database="[sms_conectta]" Schema="[dbo]" Table="[SMS_CAMPANHA]" Column="CAMPANHAID" />
             </DefinedValue>
             <DefinedValue>
              <ColumnReference Database="[sms_conectta]" Schema="[dbo]" Table="[SMS_CAMPANHA]" Column="DATA" />
             </DefinedValue>
             <DefinedValue>
              <ColumnReference Database="[sms_conectta]" Schema="[dbo]" Table="[SMS_CAMPANHA]" Column="AUTORIZADO" />
             </DefinedValue>
             <DefinedValue>
              <ColumnReference Database="[sms_conectta]" Schema="[dbo]" Table="[SMS_CAMPANHA]" Column="STATUSCAMPANHA" />
             </DefinedValue>
             <DefinedValue>
              <ColumnReference Database="[sms_conectta]" Schema="[dbo]" Table="[SMS_CAMPANHA]" Column="QUANTIDADESMS" />
             </DefinedValue>
             <DefinedValue>
              <ColumnReference Database="[sms_conectta]" Schema="[dbo]" Table="[SMS_CAMPANHA]" Column="DATAENVIAR" />
             </DefinedValue>
            </DefinedValues>
            <Object Database="[sms_conectta]" Schema="[dbo]" Table="[SMS_CAMPANHA]" Index="[PK_SMS_Campanha]" IndexKind="Clustered" />
           </IndexScan>
          </RelOp>
         </QueryPlan>
        </StmtSimple>
       </Statements>
      </Batch>
     </BatchSequence>
    </ShowPlanXML>
    


    Se for útil marque como tal, se for a resposta, marque-a também. Procure ajudar a quem mais precisa
    segunda-feira, 16 de agosto de 2010 14:11
  • Fala Ricardo, como a query que vc roda é a seguinte:

    SELECT * FROM SMS_CAMPANHA ORDER BY CAMPANHAID DESC

     Ele varre o índice clustered todo para encontar o resultado. Acredito que esse plano deva ser o mesmo nos 2 ambientes.

    Estão se esgotando meus possíveis motivos , outros possíveis seriam:

    Como é a concorrencia nos 2 ambientes no momento que roda a query?

    Os discos onde essas databases são armazenadas possuem a mesma velocidade? O tempDB dos dois ambientes fica em discos separados?

    Esse tempo de 3 e 18 segundos ocorre quando você executa a query na primeira vez ou depois de outras execuções da mesma query? Os dados podem estar em cache....

     

     

     

     

     

     


    Fabrício França Lima | MCP, MCTS, MCITP | Visite meu site: http://fabriciodba.spaces.live.com/ | Dicas de artigos SQL: Siga-me no twitter @fabriciodba.
    segunda-feira, 16 de agosto de 2010 16:58
  • Olá Fabricio, os bancos estão em um disco com RAID 1, sata 2 raptor com 10.000 RPMs.

    Tanto na primeira como na segunda vez quando executo o tempo é o mesmo.

    Quanto a concorrência é bem pouca, passando algumas vezes sem ninguém on line no banco. Independente do horário o tempo sempre é o mesmo.

    A diferença é que no segundo ambiente tem 243 banco de dados, porém ativos apenas 4, pois estou fazendo uma migração de servidores e só esta apenas o banco instalado sem uso.

    Abs,

     


    Se for útil marque como tal, se for a resposta, marque-a também. Procure ajudar a quem mais precisa
    segunda-feira, 16 de agosto de 2010 17:11