TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

Elaborar Um Arquivo De Texto Contendo As Consultas SQL Para Realizar Algumas Consultas Para O Sistema SIG. As Consultas são Baseadas Nas Tabelas Do Banco De Dados Ilustrados Junto à Descrição Do Desafio Na Figura 1.

Pesquisas Acadêmicas: Elaborar Um Arquivo De Texto Contendo As Consultas SQL Para Realizar Algumas Consultas Para O Sistema SIG. As Consultas são Baseadas Nas Tabelas Do Banco De Dados Ilustrados Junto à Descrição Do Desafio Na Figura 1.. Pesquise 860.000+ trabalhos acadêmicos

Por:   •  29/3/2014  •  694 Palavras (3 Páginas)  •  704 Visualizações

Página 1 de 3

O SQL agora realizou uma busca (note o uso do operador “Seek”) diretamente no índice criado (CarrierTrackingNumber) e não mais precisou escanear a tabela inteira. Isso significa uma melhoria significativa na performance da consulta, caso a tabela tenha, por exemplo, milhões de registros.

Note que abaixo do primeiro operador temos uma outra operação realizada pelo SQL Server, o “Key Lookup”. O que é isto? No exemplo do índice remissivo do livro de história, quando procuramos pelo nome de “Getúlio Vargas” achamos no índice apenas o número da página em que a informação se encontra. Para obtermos mais informações sobre o 14º presidente do Brasil precisamos abrir na página informada. É exatamente o que o “Key Lookup” faz. Ele usa o ponteiro presente no índice não clusterizado para buscar as colunas “UnitPrice” e “OrderQty”. Quando a tabela possui um índice Clusterizado, este ponteiro referencia a chave da tabela e por este motivo a presença do índice clusterizado é importante para a performance das consultas.

Podemos evitar esta operação extra usando um tipo de índice especial chamado “included columns”. Com ele é possível que se inclua diretamente no índice todas informações retornadas pela consulta e com isso o SQL Server não precisa usar o ponteiro para “buscar” estes registros na tabela. Isso torna a consulta muito mais eficiente. Falaremos deste tipo de índice no futuro.

Melhores práticas para criação de índices:

• Mantenha o índice mais enxuto possível. Índices com muitas colunas são mais “pesados” para o SQL conseguir retornar os dados e manter o índice atualizado. Não esqueça que toda operação INSERT, UPDATE e DELETE aplicada na tabela deverá ser replicada a todos os índices que contenham as colunas afetadas.

• Tente criar o índice usando colunas com alta seletividade. Por exemplo, considere a seguinte consulta:

1

2

3

4

5

6

7

8

9 select

NationalIDNumber,

Title,

BirthDate,

HireDate

from

HumanResources.Employee

where

Gender = 'M'

Este SELECT retorna todos os registros da tabela “Employee” (empregados) que sejam homens (Gender=”M”). O resultado, segundo o execution plan é um table scan. Aí você pensa: “tranqüilo, vou criar um índice aí!” Ok, vamos criá-lo:

1 create nonclustered index IDX_Gender on HumanResources.Employee(gender)

Ao rodarmos a consulta novamente verificamos que ele simplesmente ignorou o novo índice. Devido a baixa seletividade da coluna, que provavelmente é de 1/2 dos registros, o SQL achou que será melhor escanear logo a tabela inteira.

• Crie um índice clusterizado (clustered index) em todas as tabelas que tenha muitos registros. Escolha com cuidado a(s) coluna(s) que farão parte do índice.

...

Baixar como (para membros premium)  txt (4.7 Kb)  
Continuar por mais 2 páginas »
Disponível apenas no TrabalhosGratuitos.com