Индексы SQL Server - некластеризованный индекс на HEAP - PullRequest
2 голосов
/ 04 октября 2011

В нашей базе данных SQL есть таблица 221 ГБ, в основном дубликаты данных.

Команда создала НЕКЛАСТЕРНЫЙ индекс для HEAP.Действительно ли это помогает с точки зрения производительности?

Должны ли мы поместить столбец IDENTITY в таблицу, а затем создать индекс CLUSTERED И после этого мы можем создать NON кластеризованные индексы.

1 Ответ

4 голосов
/ 04 октября 2011

Зависит от

От схемы использования и структуры данных.

Покрывает ли некластеризованный индекс?

Изменяются ли когда-либо данные в таблице?

Таблица кучи с некластеризованным индексом (или индексами), которые покрывают, может превзойти кластеризованный индекс, где кластерный индекс является единственным «индексом» (кластерный индекс, очевидно, всегда покрывает, но может и не бытьоптимально для поиска)

Помните, что кластерный индекс не является индексом (в смысле поиска по ключу в месте, где хранятся данные), это вся таблица, организованная по выбору индекса.В реальном (некластеризованном) индексе в индекс включаются только ключи и включенные столбцы, и это означает, что (как правило) можно хранить больше строк на странице базы данных и меньше ненужных данных читать.

Большинствоу таблиц должен быть кластеризованный индекс, но выбор некластеризованных индексов - это то, откуда вы получаете большую производительность.

...