Série da semana: Nota fiscal eletrônica na prática

Veja mais

Otimização de consulta no banco

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?

Melhor tópico

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

Outros Tópicos

07/10/2016

João Antonio

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

20/10/2016

Calebe

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!
Responder Citar