Escolar Documentos
Profissional Documentos
Cultura Documentos
Everson Choma
30/04/2018
Agenda
• Criando consultas performáticas
• Plano de execução
• Indexes
• Procedures/Functions/Triggers
• Ordem de execução:
• FROM -> WHERE -> GROUP BY -> HAVING -> SELECT -> DISTINCT
-> ORDER BY
• Considerações rápidas:
• EXISTS em vez de IN e NOT EXISTS em vez de NOT IN
• Faça ligação entre colunas que possuam mesmo tipo de dados, evitando conversões
(CONVERT, CAST, etc)
• Ao criar um index com mais de uma coluna, devemos seguir uma pequena regra para
decidir qual será a ordem das colunas no index:
• Colunas mais utilizadas em consultas.
• Próximas vezes:
• cached – execução
• Funções
• Cuidar com utilizar funções em loops, WHEREs
• Em um loop, para cada execução, irá ser chamada a função e será
agregado o consumo de recurso para execução da função. Se
possível, incluir o trecho da função dentro da própria procedure
que chama a execução.
• Triggers
• São disparadas em cada execução, determinadas pela definição
da trigger: BEFORE UPDATE, BEFORE INSERT, AFTER...
• Em um caso de tabela que recebe inserts frequentes, uma trigger
BEFORE INSERT será disparada a todo momento. Em um banco de
dados de grande número de usuários, isso pode ser um problema,
mesmo que a trigger apenas faça um UPDATE de uma coluna de
uma tabela de status de mercadoria de “N” para “S”, por exemplo.
www.becomex.com.br
Joinville | São Paulo | Campinas | Porto Alegre | Rio de Janeiro | Brasília
Obrigado!
Everson.choma@becomex.com.br
www.becomex.com.br
Joinville | São Paulo | Campinas | Porto Alegre | Rio de Janeiro | Brasília