Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
76-86.docx
Скачиваний:
4
Добавлен:
24.09.2019
Размер:
1.03 Mб
Скачать
  1. Некластеризованный индекс, заданный на неупорядоченной таблице.

Некластеризованные индексы, заданные на неупорядоченной таблице, во многом аналогичны кластеризованным индексам. Тем не менее между индексами этих двух типов наблюдаются некоторые заметные различия, описанные ниже.

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

Но из того, что при использовании некластеризованного индекса, заданного на неупорядоченной таблице, приходится, как было сказано выше, осуществлять "еще один шаг", не следует, что при его применении издержки увеличиваются лишь незначительно и что этот индекс обеспечивает почти такое же быстродействие, как кластеризованный индекс. Еще раз отметим, что данные, на которых определен кластеризованный индекс, имеют физическое расположение, соответствующее последовательности ключей в индексе. Это означает, что при выборке данных, относящихся к определенному диапазону, достаточно лишь найти строку, в которой начинаются требуемые данные, после чего со всей вероятностью остальные искомые строки будут обнаружены на той же странице (иными словами, для достижения следующей строки почти не требуется усилий, поскольку все нужные строки хранятся вместе). С другой стороны, при использовании неупорядоченной таблице данные не являются связанными друг с другом каким-то иным способом, кроме как через индекс. Какая-либо физическая сортировка данных не осуществляется. Это означает, что для чтения данных из неупорядоченной таблицы системе может потребоваться обращаться для выборки строк к любым участкам файла с данными. В действительности вполне возможно (и даже не подлежит сомнению), что в процессе работы для получения данных придет ея неоднократно считывать в разное время одну и ту же страницу, поскольку в СУБД SQL Server нельзя предугадать, что снова придется обращаться к какому-то участку файла, так как между данными отсутствует связь. С другой стороны, если применяется кластеризованный индекс. то система может определить, что данные хранятся в отсортированном порядке и поэтому получить сразу все необходимые данные в результате чтения одной страницы.

На рис. 8.5 показана такая же процедура поиска, которая выполнялась с помощью кластеризованного индекса (см. рис. 8.7), но на этот раз с использованием некластеризованного индекса, заданного на неупорядоченной таблице.

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]