Lembro a todos que as dicas aqui são para quem já conhece a estrutura de queries SQL, para quem não conhece sugiro estudar um pouco primeiro para que então possa entender melhor o que será colocado aqui.
Alguns de vocês já devem ter ouvido que o Oracle lê as tabelas das queries de baixo para cima, mas o que isso quer dizer? Quer dizer que a ordem em que você coloca as tabelas no FROM da query, influencia na performance que ela te dá. Você deve colocar primeiro as que tem menos filtros e por último as que tem mais, sei que não é fácil de entender só assim então dou um exemplo:
Temos as seguintes tabelas:
PRODUTO, PEDIDO, PEDIDO_PRODUTO
Se você quiser montar um select que traga todos os dados de um determinado pedido, o filtro mais forte que você tem é da tabela pedido, então você deve coloca-la por último. Em seguida é a tabela que relaciona o Pedido com o Produto, então ela fica em penúltimo e depois o produto (é a sequencia lógica de encadeamento). Então a query ficaria melhor se o from dela fosse assim:
SELECT * FROM PRODUTO, PEDIDO_PRODUTO, PEDIDO
Com essa pequena e rápida dica, em alguns casos, já melhora muito a performance de algumas queries.
Outras dicas importantes são:
- Evitar usar OR na clausula WHERE
- Não usar funções nos valores ou campos de primary key, pois assim eles não usaram seus indices
Espero que com essas poucas e rápidas dicas vocês tenham ganhos em seus trabalhos.
Popularity: 3% [?]
RSS Feed
Twitter
July 19th, 2010
Meison Almeida
Posted in 



