2011-03-23 2 views
1

, когда мы создаем кластерный индекс CIX_FirstNames на колонке, скажем, FirstNames, то, что на самом деле происходит внутри в SQL Server?индексов в SQL Server, внутренней работе и структуре индексов

Я прочитал, что кластерные индексы создают копию данных.

так, делает SQL Server создает новый индекс таблицы, IndexTable, и копирует все FirstNames из таблицы в IndexTable, и когда ищется Firstname, то она выводит его из индексной таблицы?

Это фактическая работа кластеризованных индексов?

+1

Вы ** абсолютно необходимо * * для изучения этой замечательной статьи [Основы SQL Server] (http://www.simple-talk.com/sql/learn-sql-server/sql-server-index-basics/) - она ​​объясняет структуры индексов и показывает диаграммы для их визуализации. –

ответ

2

Это слишком большая тема, чтобы справиться здесь в быстрый ответ - вам нужно, чтобы получить себе:

Microsoft SQL Server 2008 Internals

enter image description here

, который охватывает все это в мельчайших подробностях.

Но только ненадолго: НЕТ! создание кластерного индекса NOT данные дублирования! С чего взял??

Что такое кластерный индекс, это изменение порядка данных (в соответствии с ключом), а узлы листового уровня кластеризованного индекса - это страницы данных, но они существуют только один раз.

Некоторые дополнительные ресурсы, представляющие интерес:

+0

- это копия данных, созданных при создании некластеризованного индекса? – sqlchild

+0

@marc_s: но сэр, в кластеризованных индексах, sql не нужно идти в таблицу, чтобы получить данные, получает ее из самого индекса, поэтому, если копия данных не находится в индексе, то как она отображается данные, не входящие в таблицу? – sqlchild

+0

, когда создается таблица и данные вставляются, данные содержатся на страницах данных, и, как вы сказали, узлы уровня листа CI являются страницами данных, так же как эти страницы данных содержат страницы, на которых вставлены данные.? – sqlchild

Смежные вопросы