Quando gerar Index

30/06/2011

0

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.
Ureis

Ureis

Responder

Posts

30/06/2011

Wilson Junior

Coloque aqui a estrutura das suas tabelas e o SQL que está sendo demorado para poder lhe ajudar.

Aguardo retorno.
Responder

30/06/2011

Ureis


Coloque aqui a estrutura das suas tabelas e o SQL que está sendo demorado para poder lhe ajudar.

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.
Responder

30/06/2011

Alex Lekao

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
Responder

30/06/2011

Wilson Junior

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.
Responder

30/06/2011

Ureis


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
 

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.
Responder

30/06/2011

Wilson Junior

Responder

30/06/2011

Alex Lekao

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  
Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar