Dicas de otimização de consultas

Publicado em: 30/09/2007  |  SQL Server  |  Visualizações: 2.519  |  2 Comentário(s)
Quando vamos fazer uma simples consulta temos a mania de fazer a consulta com o símbolo de asterisco (*) isso e uma forma incorreta de se fazer uma consulta, pois quando se usa o símbolo “*” o SQL ignora todos os índices de uma tabela isso faz com que o bookmark trabalhe desnecessariamente (isso será explicado em uma próxima coluna). Quando for realizar  uma consulta especifique todos os campos da tabela mesmo que sejam muitos para que o sql utilize o otimizador de consultas. Quando se tem uma tabela com poucos registros isso não implica muito, mas quando se tem uma banco com um tamanho em GB a situação muda de figura.
Ex:
SELECT
ProductID, ProductName, SupplierID, CategoryID,
QuantityPerUnit,UnitPrice, UnitsInStock,
UnitsOnOrder, ReorderLevel, Discontinued
FROM products
A consulta acima traz todas as colunas da tabela produtos do banco de dados northwind, veja que a consulta foi especificada se usar o símbolo “*”.

Usando operadores de comparação

Quando se for usar operadores de comparação, evite usar NOT em condições de pesquisa. Eles podem diminuir a velocidade de recuperação de dados porque todos os registros em uma tabela são avaliados. Sempre use condições de pesquisa positivas ao invés de negativas. As condições de pesquisa negativas atrasam as consultas como NOT BETWEEN, NOT IN e IS NOT NULL
Ex:
SELECT
ProductId, ProductName, QuantityPerUnit, UnitPrice
FROM products
WHERE NOT ProductID  = 1

A consulta acima retorna as colunas ProductId, ProductName, QuantityPerUnit, UnitPrice exceto o registro com o ID = 1, como é mostrado abaixo.




Ordenando Registros
Use a cláusula ORDER BY para classificar os registros em um conjunto de resultados, lembre-se que as colunas incluídas na cláusula ORDER BY não precisam constar na lista de seleção.
Ex:
SELECT productid, productname, categoryid, unitprice
FROM products
ORDER BY categoryid, unitprice DESC

A consulta acima retorna algumas colunas da tabela PRODUCTS do banco de dados NORTHWIND ordenados por categoria e preço unitário.




A recuperação de dados pode ser mais lenta se você usar a cláusula ORDER BY porque o SQL Server precisará determinar e classificar o conjunto de resultados antes de retornar o primeiro registro.

Pessoal na próxima coluna, prepararei um super assunto de SQL e até a próxima
compartilhe
  Dica: Confira todo nosso conteúdo de SQL Server no site.
Links patrocinados
Últimos artigos do editor

Criando Tabelas E-Commerc.
Ola pessoal. Hoje vamos faz.
Criando um Banco de Dados.
Ola internautas, hoje escrev.
Usando Triggers
Esta coluna mostra com as tr.
Opinião do leitor:
2 Comentário(s)

 Zé Ruela comentou:

Que artigozinho mais sem vergonha e sem fundamento teórico. Vamos ocupar o espaço com assuntos mais específicos e fundamentados.

Publicado em: 09/10/2007 - 12:28

  Pablo Melo comentou:

Essas informação também são válidas para o MySQL? Estou quebrando a cabeça com algumas consultas que demoram para processar, no diHITT. Só ainda não descobrir como tirar o NOT.

Publicado em: 30/09/2007 - 21:55

Acesso restrito
Destaques
Peixe Grande 2008 Peixe Grande 2008
O Oficina da Net está este ano participando do Projeto Peixe Grande 2008 na categoria de Blog. Ajude-nos vote!
13º Encontro de Webdesgin 13º Encontro de Webdesgin
Cobertura do evento - 13º Encontro de Webdesgin na cidade de Porto Alegre
Galaxy 7 - O Smartphone da Asus Galaxy 7 - O Smartphone da Asus
Imagens e especulações sobre o Smartphone da empresa foram publicadas na internet
Links patrocinados
Autor
Artigos Relacionados
Novos Artigos
Notícias Relacionados
Assine nosso RSS

© 2005 - 2008 - Oficina da Net - v 3.0 - É proibida a reprodução parcial ou completa do conteúdo deste site sem autorização por escrito. Resolução adequada: 1024x768px.