Quando gerar Index
Bom dia a todos
Estou aprendendo SQL Server e estou com alguns problemas no meu serviço.Tem um select com alguns JOINS e a consulta demora em média 00:00:45s para mostrar 49 registros.Como sei quando e onde devo gerar index?Alguém pode me ajudar?
obrigado.
Estou aprendendo SQL Server e estou com alguns problemas no meu serviço.Tem um select com alguns JOINS e a consulta demora em média 00:00:45s para mostrar 49 registros.Como sei quando e onde devo gerar index?Alguém pode me ajudar?
obrigado.
Ureis
Curtidas 0
Respostas
Wilson Junior
30/06/2011
Coloque aqui a estrutura das suas tabelas e o SQL que está sendo demorado para poder lhe ajudar.
Aguardo retorno.
Aguardo retorno.
GOSTEI 0
Ureis
30/06/2011
Coloque aqui a estrutura das suas tabelas e o SQL que está sendo demorado para poder lhe ajudar.
Aguardo retorno.
Aguardo retorno.
SELECT I.DescAgrupRemessa, I.CdPrd, PR.DescPrd, SUM(I.Qtd) AS Qtd, CAST('N' AS CHAR(1)) AS Faturar FROM It_Doc I with(nolock) JOIN Document D with(nolock) ON(I.NrContrDoc = D.NrContrDoc) JOIN Produto PR with(nolock) ON(I.CdPrd = PR.CdPrd) JOIN PedDocs PD with(nolock) ON(D.NrContrDoc = PD.NrContrDoc) JOIN PedSai P with(nolock) ON(PD.NrContrPed = P.NrContrPed) JOIN TbSitPed SP with(nolock) ON(P.CdSit = SP.CdSitPed) WHERE D.TpDoc = '0' AND (D.Cancelado = 'N' OR D.Cancelado IS NULL) AND I.NrContrDocGerado IS NULL AND I.DtPrevRemessa <= '2011-06-01' AND I.DescAgrupRemessa IS NOT NULL AND SP.OpSit = '01' GROUP BY I.DescAgrupRemessa, I.CdPrd, PR.DescPrd ORDER BY I.DescAgrupRemessa, PR.DescPrd
Eu precisava aprender a olhar e saber onde esta o problema e onde devo gerar o index.Se você poder me dar dicas de como fazer, ou onde aprender, como apostilas, sites e etc...
Obrigado.
GOSTEI 0
Alex Lekao
30/06/2011
Ola Uelington, boa tarde!!!
Voce pode pegar o seu script e no SSMS(SQL Server Management Studio) e onde vc faz as digitacoes dos scripts, selecionar o seu script e escolher a opcao Exibir Plano de Execucao Estimado.
Nessa tela o proprio SQL Server ira indicar para vc um ponto onde podera criar indice e o tipo de indice a ser adotado.
Tambem ira apresentar quanto custa cada ponto da sua select para a execucao total.
Tambem sou novato no SQL e portando talvez possa ter utilizado alguns termos nao costumeiros entao, qualquer coisa eh so avisar.
Espero ter podido ajudar.
Abraco.
Alex - Lekao
GOSTEI 0
Wilson Junior
30/06/2011
O que pode lhe ajudar é utilizar "LEFT JOIN" ou "INNER JOIN", o LEFT você utiliza para FK's que podem ser nulas e o INNER você utiliza para as FK's que não são nulas (NOT NULL).
Espero ter colaborado.
Espero ter colaborado.
GOSTEI 0
Ureis
30/06/2011
Ola Uelington, boa tarde!!!
Voce pode pegar o seu script e no SSMS(SQL Server Management Studio) e onde vc faz as digitacoes dos scripts, selecionar o seu script e escolher a opcao Exibir Plano de Execucao Estimado.
Nessa tela o proprio SQL Server ira indicar para vc um ponto onde podera criar indice e o tipo de indice a ser adotado.
Tambem ira apresentar quanto custa cada ponto da sua select para a execucao total.
Tambem sou novato no SQL e portando talvez possa ter utilizado alguns termos nao costumeiros entao, qualquer coisa eh so avisar.
Espero ter podido ajudar.
Abraco.
Alex - Lekao
Voce pode pegar o seu script e no SSMS(SQL Server Management Studio) e onde vc faz as digitacoes dos scripts, selecionar o seu script e escolher a opcao Exibir Plano de Execucao Estimado.
Nessa tela o proprio SQL Server ira indicar para vc um ponto onde podera criar indice e o tipo de indice a ser adotado.
Tambem ira apresentar quanto custa cada ponto da sua select para a execucao total.
Tambem sou novato no SQL e portando talvez possa ter utilizado alguns termos nao costumeiros entao, qualquer coisa eh so avisar.
Espero ter podido ajudar.
Abraco.
Alex - Lekao
Boa tarde,
Eu já tentei utilizar a opção de Exibir Plano de Execução Estimado. Mas como sou novo, não consigo entender muito bem.Se você tiver alguma video, ou qualquer outra coisa que me ajuda entender sobre esta opção, agradeço.
obrigado.
GOSTEI 0
Wilson Junior
30/06/2011
De uma olhada neste link https://www.devmedia.com.br/post-2488-Tuning-Plano-de-Execucao-Parte-2.html
Espero ter colaborado.
Espero ter colaborado.
GOSTEI 0
Alex Lekao
30/06/2011
Ola Uelinton, boa tarde!!!
Verifica se estes links da microsoft ajudam neste ponto do plano de execucao.
http://msdn.microsoft.com/pt-br/library/ms178071.aspx
http://msdn.microsoft.com/pt-br/library/ms191227.aspx (este tera um link para o anterior).
http://technet.microsoft.com/pt-br/library/ms191194(SQL.100).aspx
Sao alguns pontos onde tenho verificado algumas coisas quando tenho duvida.
tem sido bastante util.
Abraco.
Alex - Lekao
GOSTEI 0