Otimização de consulta no banco

SQL Server

04/10/2016

Olá pessoal, estou com uma dúvida aqui, que estou precisando de ajuda para resolver. Acredito que em breve precisarei otimizar consultas no sql server, pois o banco contém muitos registros e me preocupo em acontecer lentidões excessivas nas consultas dos usuários. Segue um exemplo.


    SELECT * FROM USUARIOS U JOIN PERFIL P ON  U.ID_USUARIO = P.ID_USUARIO


Tem como otimizar esse select?
Calebe Menezes

Calebe Menezes

Curtidas 0

Melhor post

Luiz Santos

Luiz Santos

04/10/2016

Bom dia Calebe.
Primeiro passo para otimizar é tirar esse * (asterisco) dai.
Depois verificar a quantidade de registro de cada uma dessas tabelas.
Ver a real necessidade desse JOIN.
Por ultimo ver se tem a necessidade de criar um índice. (tem prós e contras)

No menu do SQL você tem uma opção chamada "Display Estimated Execution Plan".
Essa funcionalidade vai te ajudar a encontrar o gargalo na sua query.
Lembrando que quanto menor o Cost / Custo, melhor.

Grande abraço
GOSTEI 2

Mais Respostas

João Françozo

João Françozo

04/10/2016

Bom dia,

Para melhorar a sua query, primeiramente faz o que a Calebe falou, só que ao invés de rodar a Display Estimated Execution Plan, roda já INCLUDE ACTUAL EXECUTION (Ctrl + M).

A diferença das opções é que o Display Estimated Execution Plan é apenas estimativa, vai se basear nas suas estatística, caso ela estiver desatualizada não pode ser real o resultado, já o Actual é preciso rodar a query.

Para otimizar seu ambiente tem vários fatores segue alguns.

1 - Configuração da memoria da instancia;
2 - Configuração do Banco de dados;
3 - Configuração das bases padrões;
4 - Analise de Index;
5 - Query ruins;
6 - Sempre atualizar as estatística;
7 etc....
GOSTEI 0
Calebe Menezes

Calebe Menezes

04/10/2016

Opaaa ajudaram muito essas otimizações que vocês citaram. Deu um pequena diferença, mas notável.

Não sei se tem como otimizar mais, mas já ajudou bastante!
GOSTEI 0
POSTAR