Usuário com melhor resposta
Sql 2008 processador a 100%

Pergunta
-
Tenho o seguinte select a correr numa maquina virtual com 10GB de memoria 2 processador estando disponvivel para a maquina virtual com o sql 4 nucleos de processador. Ao correr a seguinte rotina: "select docnome,adoc,data from ml where dilno not in (select dilno from ol where plano=1)" O processador atinge os 100% bloqueando todo o sistema. A mesma rotina a correr num computador com 1 processador e 4 GB de memoria, estando a base de dados e o sql configurados da mesma maneira o processador em termos de performance nem se quer se mexe. Já recriei index e fiz update estatistics, coloquei nas opções da base de dados sql2008(100) e continua na mesma.
Fidalgoterça-feira, 30 de junho de 2009 14:37
Respostas
-
Boa Noite,
Esse teste só será válido se a base for exatamente a mesma com as mesmas quantidades de registros (pressupondo que os índices também já são os mesmos). Se isso não for verdadeiro o teste não é válido. Na hipótese dessas condições serem atendidas, só mesmo vendo o plano de execução para entender o que aconteceu.
De qualquer forma, sugiro abandonar o trágico NOT IN. Maiores detalhes em:
Piores práticas - Utilização do operador NOT IN
http://gustavomaiaaguiar.spaces.live.com/blog/cns!F4F5C630410B9865!280.entry
[ ]s,
Gustavo Maia Aguiar
http://gustavomaiaaguiar.spaces.live.com
O que é Cross Database Ownership Chaining ?
http://gustavomaiaaguiar.spaces.live.com/blog/cns!F4F5C630410B9865!620.entry
Classifique as respostas. O seu feedback é imprescindível- Sugerido como Resposta Gustavo Maia Aguiar quarta-feira, 1 de julho de 2009 01:09
- Marcado como Resposta Junior Galvão - MVPMVP, Moderator terça-feira, 5 de junho de 2018 12:34
quarta-feira, 1 de julho de 2009 01:07 -
Já percebi o problema, utilizei plano de execução e verifique que a query está a fazer loop e este lop deve-se ao facto de a instrução
"select dilno from ol where plano=1" está errado visto que o campo dino passou a chamar-se dilnoplano
Fidalgo- Marcado como Resposta Junior Galvão - MVPMVP, Moderator terça-feira, 5 de junho de 2018 12:34
quarta-feira, 1 de julho de 2009 08:47
Todas as Respostas
-
Ola Fidaldo,
Vc criou indices em quais colunas? e teste adicionando o hint WITH(NOLOCK) se possivel.
Att.
Marcelo Fernandes
MCP, MCDBA, MCSA, MCTS. Se útil, classifique!!!terça-feira, 30 de junho de 2009 14:41Moderador -
Já utilizei nolock e o problema é o mesmo
os index que utilizo são:
na tabela ml:
dilno ascending
origem ascending
mes ascending
Criei ainda este index
CREATE NONCLUSTERED INDEX [_dta_index_ml_7_1517586282__K3_4_5_6] ON [dbo].[ml]
(
[dilno] ASC
)
INCLUDE ( [docnome],
[adoc],
[data]) WITH (SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF) ON [PRIMARY]
na tabela ol:
olstamp
data
Fidalgoterça-feira, 30 de junho de 2009 16:10 -
Fidalgo,
Qual a volumetria das 2 tabelas?
e o plano de execução? apontao maior consumo onde?
Att.
Marcelo Fernandes
MCP, MCDBA, MCSA, MCTS. Se útil, classifique!!!terça-feira, 30 de junho de 2009 17:12Moderador -
Fidalgo,
Esta base de dados foi importada de alguma versão anterior do SQL Server?
Você já verificou como esta as configurações dos índices e estatísticas do sistema.
Pedro Antonio Galvão Junior - MVP - Windows Server System - SQL Server/Coordenador de Projetos/DBAterça-feira, 30 de junho de 2009 18:41Moderador -
Foi importada do sql server 2005, já procedi à reindexação e update estatistics e o problema continuou.
Fidalgoterça-feira, 30 de junho de 2009 21:38 -
Boa Noite,
Esse teste só será válido se a base for exatamente a mesma com as mesmas quantidades de registros (pressupondo que os índices também já são os mesmos). Se isso não for verdadeiro o teste não é válido. Na hipótese dessas condições serem atendidas, só mesmo vendo o plano de execução para entender o que aconteceu.
De qualquer forma, sugiro abandonar o trágico NOT IN. Maiores detalhes em:
Piores práticas - Utilização do operador NOT IN
http://gustavomaiaaguiar.spaces.live.com/blog/cns!F4F5C630410B9865!280.entry
[ ]s,
Gustavo Maia Aguiar
http://gustavomaiaaguiar.spaces.live.com
O que é Cross Database Ownership Chaining ?
http://gustavomaiaaguiar.spaces.live.com/blog/cns!F4F5C630410B9865!620.entry
Classifique as respostas. O seu feedback é imprescindível- Sugerido como Resposta Gustavo Maia Aguiar quarta-feira, 1 de julho de 2009 01:09
- Marcado como Resposta Junior Galvão - MVPMVP, Moderator terça-feira, 5 de junho de 2018 12:34
quarta-feira, 1 de julho de 2009 01:07 -
Já percebi o problema, utilizei plano de execução e verifique que a query está a fazer loop e este lop deve-se ao facto de a instrução
"select dilno from ol where plano=1" está errado visto que o campo dino passou a chamar-se dilnoplano
Fidalgo- Marcado como Resposta Junior Galvão - MVPMVP, Moderator terça-feira, 5 de junho de 2018 12:34
quarta-feira, 1 de julho de 2009 08:47