A execução de um SQL Server 2005 do banco de dados no nível de compatibilidade 80 ter um impacto negativo no desempenho?

StackOverflow https://stackoverflow.com/questions/7237

  •  08-06-2019
  •  | 
  •  

Pergunta

Nosso software deve ser capaz de executar no SQL Server 2000 e 2005.Para simplificar o desenvolvimento, estamos executando nossas SQL Server 2005 bancos de dados no nível de compatibilidade 80.No entanto, o desempenho do banco de dados parece mais lento no SQL server 2005 que no SQL 2000 em alguns casos (que não confirmaram esta usando benchmarks ainda).Gostaria de atualizar o nível de compatibilidade para 90 melhorar o desempenho no SQL 2005 servidores?

Foi útil?

Solução

Eu acho que eu li em algum lugar, que o SQL Server 2005 mecanismo de banco de dados deve ser de cerca de 30% mais rápido do que o SQL Server 2000 motor.Pode ser, que você tem que executar o seu banco de dados em modo de compatibilidade 90 para obter esses benefícios.

Mas eu tropecei em dois cenários, onde o desempenho pode cair drasticamente quando usando mssql 2005 comparado com o mssql 2000:

  1. Rastreamento De Parâmetro:Quando utilizar um procedimento armazenado, o sql server irá calcular exatamente um plano de execução, no momento, primeiro você chamar o procedimento.O plano de execução depende do parâmetro valores apresentados para a chamada.No nosso caso, os procedimentos que, normalmente, demorou cerca de 10 segundos são funcionando por horas, sob mssql 2005.Dê uma olhada aqui e aqui.

  2. Ao utilizar consultas distribuídas, mssql 2005, comporta-se diferente a respeito de pressupostos sobre a ordem de classificação no servidor remoto.O comportamento padrão é que o servidor de cópias de todo o remoto tabelas envolvidas na consulta ao local de tempdb e, em seguida, execute as associações localmente.Solução alternativa é usar OPENQUERY, onde você pode controlar exatamente quais conjunto de resultados, é transferida do servidor remoto.

Outras dicas

depois de movido, o DBs sobre a 2005 fez você

atualização de estatísticas, com análise completa?reconstruída os índices?

primeiro tente isso e, em seguida, verificar o desempenho novamente

Também um FYI, se você executar o nível de compatibilidade de 90, em seguida, algumas coisas não são mais suportadas como o velho estilo de associações externas (*= and =*)

Você está usando subseleções em suas consultas?

A partir da minha experiência, uma instrução SELECT com subselects que roda bem no SQL Server 2000 pode rastreamento no SQL Server 2005 (pode ser como 10x mais lento!).

Fazer uma experiência de re-escrever uma consulta para eliminar o subseleções e ver como suas alterações de desempenho.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top