Usuário com melhor resposta
Performance 2008 R2 no win 2003, deixa a desejar

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.- Marcado como Resposta Ricardo D. Beck segunda-feira, 16 de agosto de 2010 12:21
- Não Marcado como Resposta Ricardo D. Beck segunda-feira, 16 de agosto de 2010 12:24
- Marcado como Resposta Junior Galvão - MVPMVP, Moderator segunda-feira, 30 de dezembro de 2019 22:02
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.- Marcado como Resposta Junior Galvão - MVPMVP, Moderator segunda-feira, 30 de dezembro de 2019 22:02
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 precisadomingo, 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.- Marcado como Resposta Ricardo D. Beck segunda-feira, 16 de agosto de 2010 12:21
- Não Marcado como Resposta Ricardo D. Beck segunda-feira, 16 de agosto de 2010 12:24
- Marcado como Resposta Junior Galvão - MVPMVP, Moderator segunda-feira, 30 de dezembro de 2019 22:02
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 precisasegunda-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 precisasegunda-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 precisasegunda-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 precisasegunda-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.- Marcado como Resposta Junior Galvão - MVPMVP, Moderator segunda-feira, 30 de dezembro de 2019 22:02
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 precisasegunda-feira, 16 de agosto de 2010 17:11