Os heaps são considerados uma estrutura de índice ou são estritamente uma estrutura de tabela sem índice?


Respostas:


9

Do MSDN - Organização de tabelas e índices :

"As tabelas do SQL Server usam um dos dois métodos para organizar suas páginas de dados em uma partição:

  • Tabelas em cluster são tabelas que possuem um índice em cluster.

As linhas de dados são armazenadas em ordem com base na chave de índice em cluster. O índice em cluster é implementado como uma estrutura de índice em árvore B que suporta recuperação rápida das linhas, com base em seus valores de chave de índice em cluster. As páginas em cada nível do índice, incluindo as páginas de dados no nível da folha, são vinculadas em uma lista duplamente vinculada. No entanto, a navegação de um nível para outro é realizada usando valores-chave.

  • Heaps são tabelas que não possuem índice em cluster.

As linhas de dados não são armazenadas em nenhuma ordem específica e não há uma ordem específica para a sequência das páginas de dados. As páginas de dados não estão vinculadas em uma lista vinculada ".

Heaps - Otimização do SQL Server :

"Uma tabela de heap, por definição, é uma tabela que não possui índices agrupados. Páginas diferentes da tabela baseada em heap ocupam diferentes áreas não contíguas em um disco e não são vinculadas de nenhuma maneira".

Ao contrário de - Clustered Index Structures : "No SQL Server, os índices são organizados como árvores B. Cada página em uma árvore B de índice é chamada de nó de índice. O nó superior da árvore B é chamado de nó raiz. O nível inferior dos nós no índice é chamado de nós folha. Quaisquer níveis de índice entre a raiz e os nós folha são coletivamente conhecidos como níveis intermediários.Em um índice em cluster, os nós folha contêm as páginas de dados da tabela subjacente . nós de nível intermediário contêm páginas de índice que mantêm linhas de índice.Cada linha de índice contém um valor-chave e um ponteiro para uma página de nível intermediário na árvore B ou uma linha de dados no nível da folha do índice. o índice está vinculado em uma lista duplamente vinculada ".

Outras referências:


10

Um índice implica que há ordem de dados para as linhas. Dado que um heap não é criado com nenhum pedido e também não mantém um pedido, é apenas um método de armazenamento de dados da tabela.

Existem alguns exemplos (digamos, dm_db_index_physical_stats ) em que especificar um heap, você deve inserir um ID de índice igual a 0. Embora isso pareça contradizer o que acabei de dizer, acho que esse é apenas um valor mágico para simplificar a API e seus uso; nada mais.


4

Estrutura da tabela sem um índice em cluster.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.