http://blogs.technet.com/lyudmila_fokina/archive/2006/09/07/454514.aspx
Людмила Фокина
Чтобы построить индекс необходимо сначала отсортировать heap. Таким образом, процесс построения индекса будет выглядеть следующим образом: сканирование «кучи», сортировка (если возможно – в оперативной памяти*) и собственно построение дерева индекса на основании результатов сортировки. Эти промежуточные результаты требуют дополнительного места (либо в памяти, либо на диске). SQL Server, тем не менее, освобождает каждый экстент структуры, используемой для хранения этих промежуточный результатов, как только все данные из него будут добавлены в дерево индекса. Таким образом, общий объем дискового пространства (в случае, если сортировка в памяти невозможна), необходимого для построения индекса уменьшается с 3х («куча» + сортировочная стрктура + дерево индекса) до 2,2х (приблизительно).
*SQL Server не гарантирует сортировку в памяти. Решение о том производить ли сортировку в памяти принимается на основе размера выделенной для создания индекса оперативной памяти, количества и размера строк.
Сортировка в оперативной памяти повышает производительность процесса построения индекса, но не является обязательной. SQL Server всегда может сбросить результаты промежуточной сортировки на диск. SQL Server всегда будет стараться выделить достаточно памяти для сортировки в памяти, но при построении больших индексов, маловероятно, что удасться обойтись без сбрасывания данных на диск. По умолчанию, SQL Server использует пользовательскую базу данных (базу данных, содержащую индексируемую таблицу) для сбрасывания промежуточных результатов сортировки; в случае, если при создании индекса указана опция sort_in_tempdb, для этих целей будет использована база данных tempdb.
Каждая структура, хранящая данные промежуточной сортировки (в случае параллельного построения индекса может понадобиться несколько таких структур одновременно) требует как минимум 40 страниц памяти и, если этот объем памяти не может быть предоставлен, операция завершится возвращением сообщения об ошибке.
Последним шагом при построении индекса является создание статистики
Комментариев нет:
Отправить комментарий