SQL Server Performance

SQL Server – Index Scan vs Index Seek

Index Scan VS Index Seek

Saiba as diferenças entre Index Scan (Table Scan) e o Index Seek.

Índice Scan retorna todos as linhas na tabela. Index Seek retorna as linhas seletivas de uma tabela.

Índice Scan:

Índice scan faz uma leitura de cada linha da tabela, esteja essas linhas no filtro de uma query ou não, o custo disso é proporcional a quantidade de linhas na tabela. Em alguns casos o scan é mais eficiente se a tabela é pequena ou se a maioria das linhas se qualificam com o filtro incluído na query.

Índice Seek:

Índice Seek vai de encontro apenas com as linhas e páginas que se qualificam com essas linhas (resultado). O custo é proporcional de acordo com a quantidade de linhas e páginas qualificadas ao invés de ler todas as linhas da tabela. Índices Seeks geralmente são preferidos por sua alta capacidade de seleção nas querys. O que pode funcionar bem quando você está selecionando de 10 a 15% de linhas de uma tabela.

Em geral, o otimizador de consultas sempre tenta usar um Index Seek, o que significa que o otimizador encontrou um índice útil para recuperar o conjunto de registros. Mas se ele não é capaz de fazer isso porque não há nenhum índice ou não índices úteis na tabela, em seguida, o SQL Server vai verificar todos os registros que satisfazem a condição da consulta.

Agora se você está se perguntando: Ok, mas qual é o melhor? Depende de certos fatores como tamanho da tabela, gama de dados (em %) na tabela que você busca. E lembre-se, atualize as estatísticas da sua tabela.

SQL Server – Index Scan vs Index Seek
The following two tabs change content below.

Wesley Mota

DBA SQL Server
Profissional graduado em Banco de Dados e Sistemas de Informação com mais de 7 anos de experiência em empresas de software. Certificado MCSA Microsoft SQL Server possui intensa vivência em administração de banco de dados, Tunning, Performance SQL Server, levantamento de melhorias e monitoramento de banco de dados e servidores SQL Server. Consultoria SQL Server em diversos clientes no Brasil e ao redor do mundo. Escritor no blog dbasqlserverbr.com.br/blog. Onde compartilha conhecimento, experiências e dicas de performance para DBAs SQL Server. Conhecimentos em Oracle e ambientes de alta disponibilidade. Desenvolvimento de softwares web e mobile.Gerenciamento de equipe e projetos.

Latest posts by Wesley Mota (see all)