[MEU 50º LIVRO]: BANCOS DE DADOS E ACESS - CURSO COMPLETO - DO BÁSICO AO VBA - 1602 páginas

Páginas: 1602 | Autor: Júlio Battisti | 40% de Desconto e 70h de Vídeo Aulas de Bônus

Você está em: PrincipalArtigosSQL Server 2005 › Capítulo 04 : 11
Quer receber novidades e e-books gratuitos?
›››
« Lição anterior Curso Completo de SQL Server 2005 - Júlio Battisti Δ Página principal Curso Completo de SQL Server 2005 - Júlio Battisti ¤ Capítulos Curso Completo de SQL Server 2005 - Júlio Battisti Próxima lição »
SQL Server 2005 - CURSO COMPLETO
Autor: Júlio Battisti
Lição 059 - Capítulo 04 - CLUSTERED INDEX

Um Clustered Index ordena os dados de acordo com os valores do campo onde o índice foi definido. Os dados são armazenados na própria tabela. Neste caso, o índice está alterando a ordem em que os registros são armazenados na própria tabela, ao invés de uma ordem aleatória (utilizado no caso de não termos índices), os registros são armazenados em uma ordem definida pelo índice. Este tipo de índice é bastante eficiente para agilizar operações de localização de registros. Somente podemos ter um Clustered Index por tabela, pois só poderemos armazenar os dados em ordem de um determinado critério (não tem como armazenar o mesmo conjunto de dados em duas ou mais ordens diferentes. Por isso que só podemos ter um Clustered Index, por tabela). Observe que embora o índice melhore o desempenho das consultas, existe um pequeno “overhead” para operações de atualização, inserção e exclusão de registros, pois estas operações podem fazer com que a ordem dos registros seja alterada, e que estes tenham que ser reposicionados para manter a ordem definida pelo índice.

Os índices no SQL Server 2005 são organizados em uma estrutura semelhante a uma árvore de cabeça para cima, as chamadas B-trees. Os dados são divididos em páginas (na verdade o SQL Server 2005 armazena os dados de uma tabela divididos em páginas de 8 KB). Cada página de um Clustered Index possui um cabeçalho que identifica a página mais as linhas do índice (Index Rows). Cada linha do índice contém um valor-chave e um ponteiro para outra página do índice ou para um registro de dados. Cada página do índice é chamada de nó – Index Node. O primeiro nó da árvore é chamado de nó raiz – Root Node. O último nível ou camada de nós é chamado de nós folhas – Leaf Nodes. Entre o nó raiz e o último nível, podemos ter diversos níveis intermediários. As páginas de cada nível são ligadas em forma de uma lista duplamente encadeada. As páginas com dados são as páginas ou nós folhas (Leaf Nodes).

Na Figura 4.18, retirada do Books OnLine, temos uma ilustração da estrutura de um Clustered Index.

Curso Completo de SQL Server 2005 - Júlio Battisti
Figura 4.18 A estrutura em forma de B-tree de um Clustered Index.

Os dados encontram-se nas chamadas Leaf Pages, as demais páginas do índice (também conhecidas como Non-Leaf Pages) contêm informações que facilitam a localização dos dados contidos nas Leaf Pages.

Para entender o funcionamento de um Clustered Index, vamos observar como um determinado registro é localizado, utilizando a estrutura de um Clustered Index. Considere o exemplo da Figura 4.19.

Curso Completo de SQL Server 2005 - Júlio Battisti
Figura 4.19 Acessando dados com um Clustered Index.

Vamos supor que você queira localizar o registro para o cliente Raul. O SQL Server 2005 fará o seguinte:

  • Ao receber a pesquisa, o SQL Server detecta a existência de um índice na coluna nome e que a utilização deste índice auxiliará no processo de pesquisa. Então, utiliza um mecanismo interno para preparar um “Plano de Execução” para uma determinada consulta (esta decisão sobre a utilização ou não do índice e se esse uso irá melhorar o desempenho da consulta é tomado internamente, pelo mecanismo de banco de dados do SQL Server 2005). Este plano procura determinar qual a maneira mais rápida de executar a consulta. Neste caso, o SQL Server 2005 determina que a melhor maneira é através da utilização do índice.
  • Nas páginas do índice (Non-Leaf Pages), a pesquisa inicia na página root (125). O valor procurado Raul vem depois do último valor desta página, que é Marcos. Com isso a pesquisa prossegue para a página “apontada pela página 125”, que no caso é a página 127.
  • A pesquisa continua na página de índice 127. Nesta página, o valor Raul está na faixa entre Marcos e Silvano. Agora a pesquisa é deslocada para a página de dados em que o primeiro registro começa com Marcos (página 60), conforme indicado pelas flechas da Figura 4.19.
  • Agora a pesquisa já alcançou o nível dos dados (Leaf Pages) e está na página que contém o registro procurado. A página 60 será percorrida seqüencialmente, até localizar o registro para o usuário Raul. Observe que o número de operações de leitura foi bastante reduzido com a utilização do índice, em comparação à situação em que tivéssemos que fazer uma varredura de todos os registros da tabela, até encontrar o registro procurado (o que teria que ser feito, caso não existisse o índice).

Este exemplo ilustra o quanto os índices podem melhorar o desempenho das consultas. Como regra geral devemos criar Clustered Indexes em colunas que são freqüentemente utilizadas como critério para pesquisas. Por exemplo a coluna NomeCliente de uma tabela de Clientes ou campo NúmeroDoPedido da tabela Pedidos e assim por diante.

Ao criarmos Clustered Indexes (aprenderemos a criá-los mais adiante neste capítulo), devemos considerar os seguintes fatos:

  1. Conforme descrito anteriormente, cada tabela pode conter apenas um Clustered Index.
  2. A ordem física das linhas da tabela (Leaf Nodes) e das linhas do índice (Non-Leaf Nodes) é a mesma. Caso queiramos utilizar um Clustered Index e um Nonclustered Index na mesma tabela, devemos criar o Clustered Index primeiro, uma vez que esta modifica a ordem dos registros na tabela.
  3. Os valores da chave em um Clustered Index devem ser únicos. Isto é possível com a utilização da palavra UNIQUE na criação do índice, conforme veremos mais adiante. Se não utilizarmos a palavra UNIQUE, o SQL Server adicionará um identificador interno o qual será único para cada chave do índice. Este identificador interno é de 8 bytes e é somente para uso do SQL Server, não podendo seus valores serem acessados pelo usuário através de um comando SELECT, por exemplo.
  4. De uma maneira geral, o espaço em disco ocupado por um Clustered Index é cerca de 5% do tamanho da tabela. Este percentual varia, dependendo do tamanho da coluna que está sendo indexada.
  5. Durante o processo de criação do índice o SQL Server ocupa, temporariamente, espaço em disco. A criação de um Clustered Index requer cerca de 1,2 vezes o tamanho da tabela que está sendo indexada. Este espaço é liberado após a criação do índice. Caso o seu Banco de Dados não permita o crescimento automático dos arquivos que o compõem e não exista este espaço disponível, o índice não poderá ser criado.
« Lição anterior Curso Completo de SQL Server 2005 - Júlio Battisti Δ Página principal Curso Completo de SQL Server 2005 - Júlio Battisti ¤ Capítulos Curso Completo de SQL Server 2005 - Júlio Battisti Próxima lição »

Best Sellers de Excel do Julio Battisti

Todos com Vídeo Aulas, E-books e Planilhas de Bônus!

Aprenda com Júlio Battisti:
Excel 2010 Básico em 140 Lições - Através de Exemplos Práticos - Passo a Passo

 Aprenda com Júlio Battisti: Excel 2010 Básico em 140 Lições - Através de Exemplos Práticos

 

Autor: Júlio Battisti | Páginas: 540 | Editora: Instituto Alpha

 

[Livro]: Aprenda com Júlio Battisti: Excel 2010 Básico em 140 Lições - Através de Exemplos Práticos

Aprenda com Júlio Battisti: Excel 2010 Avançado, Análise de Dados, Tabelas Dinâmicas, Funções Avançadas, Macros e Programação VBA - Passo a Passo

Livro: Aprenda com Júlio Battisti: Excel 2010 Avançado, Análise de Dados, Tabelas Dinâmicas, Funções Avançadas, Macros e Programação VBA - Passo a Passo

 

Autor: Júlio Battisti | Páginas: 952 | Editora: Instituto Alpha

 

Livro: Aprenda com Júlio Battisti: Excel 2010 Avançado, Análise de Dados, Tabelas Dinâmicas, Funções Avançadas, Macros e Programação VBA - Passo a Passo

Aprenda com Júlio Battisti: Macros e Programação VBA no Excel 2010 Através de Exemplos Práticos e Úteis - Passo a Passo

 

[LIVRO]: Aprenda com Júlio Battisti: Macros e Programação VBA no Excel 2010 Através de Exemplos Práticos e Úteis - Passo a Passo

 

Autor: Júlio Battisti | Páginas: 1124 | Editora: Instituto Alpha

 

[LIVRO]: Aprenda com Júlio Battisti: Macros e Programação VBA no Excel 2010 Através de Exemplos Práticos e Úteis - Passo a Passo

Aprenda com Júlio Battisti: Excel 2010 - Curso Completo - Do Básico ao Avançado, Incluindo Macros e Programação VBA - Através de Exemplos Práticos

 

[A BÍBLIA DO EXCEL]: Aprenda com Júlio Battisti: Excel 2010 - Curso Completo - Do Básico ao Avançado, Incluindo Macros e Programação VBA - Através de Exemplos Práticos Passo a Passo

 

Autor: Júlio Battisti | Páginas: 1338 | Editora: Instituto Alpha

 

[A BÍBLIA DO EXCEL]: Aprenda com Júlio Battisti: Excel 2010 - Curso Completo - Do Básico ao Avançado, Incluindo Macros e Programação VBA - Através de Exemplos Práticos Passo a Passo

Todos os livros com dezenas de horas de vídeo aulas de bônus, preço especial (alguns com 50% de desconto). Aproveite. São poucas unidades de cada livro e por tempo limitado.

Dúvidas?

Utilize a área de comentários a seguir.

Me ajude a divulgar este conteúdo gratuito!

Use a área de comentários a seguir, diga o que achou desta lição, o que está achando do curso.
Compartilhe no Facebook, no Google+, Twitter e Pinterest.

Indique para seus amigos. Quanto mais comentários forem feitos, mais lições serão publicadas.

Quer receber novidades e e-books gratuitos?
›››

Novidades e E-books grátis

Fique por dentro das novidades, lançamento de livros, cursos, e-books e vídeo-aulas, e receba ofertas de e-books e vídeo-aulas gratuitas para download.



Institucional

  • Quem somos
  • Garantia de Entrega
  • Formas de Pagamento
  • Contato
  • O Autor
  • Endereço

  • Júlio Battisti Livros e Cursos Ltda
  • CNPJ: 08.916.484/0001-25
  • Rua Vereador Ivo Cláudio Weigel, 537 Universitário
  • Santa Cruz do Sul/RS
  • CEP 96816-208
  • Todos os direitos reservados, Júlio Battisti 2001-2017 ®

    [LIVRO]: MACROS E PROGRAMAÇÃO VBA NO EXCEL 2010 - PASSO-A-PASSO

    APRENDA COM JULIO BATTISTI - 1124 PÁGINAS: CLIQUE AQUI