Навигация
|
T-SQL 2012: Индексы--Индекс является структурой на диске, которая связана с таблицей или представлением и ускоряет получение строк из таблицы или представления. Индекс содержит ключи, построенные из одного или нескольких столбцов в таблице или представлении. Эти ключи хранятся в виде структуры сбалансированного дерева, которая поддерживает быстрый поиск строк по их ключевым значениям в SQL Server. --Кластеризованные индексы сортируют и хранят строки данных в таблицах или представлениях на основе их ключевых значений. Этими значениями являются столбцы, включенные в определение индекса. Существует только один кластеризованный индекс для каждой таблицы, потому что строки данных могут быть отсортированы только в единственном порядке. --Некластеризованный индекс имеет точно такую же структуру, что и кластеризованный индекс, но с двумя важными отличиями: --Кластеризованные индексы обеспечивают более быстрое получение данных, чем некластеризованные. Обычно они оказываются быстрее и при обновлении, но не в том случае, когда много обновлений происходит в одном и том же месте в середине отношения. --По некоторым причинам кластеризованный индекс обычно выполняется быстрее, чем некластеризованный индекс. Когда система сканирует кластеризованный индекс, нет необходимости покидать структуру В-дерева(В-дерево представляет собой один из конкретных типов древовидного индекса.) для сканирования страниц данных, потому что такие страницы уже присутствуют на уровне листьев этого дерева. --Некластеризованный индекс также требует больше операций ввода/вывода, чем соответствующий кластеризованный индекс. --Некластеризованному индексу нужно читать страницы данных после просмотра В-дерева либо, если существует кластеризованный индекс для другого столбца (столбцов) таблицы, некластеризованному индексу нужно читать структуру В-дерева кластеризованного индекса. --Поэтому кластеризованный индекс будет выполняться значительно быстрее, чем сканирование таблицы, даже если его селективность довольно плохая (запрос возвращает много строк)
CREATE TABLE tsql.dbo.NCI --Создание кластеризованного индекса CREATE CLUSTERED INDEX IX_1 --Создание некластеризованного индекса для таблицы
WHILE @i > 0
SELECT ID, COUNT(*) AS C FROM tsql.dbo.NCI SELECT ID, T FROM tsql.dbo.NCI
--Удаление индексов IF EXISTS (SELECT name FROM sys.indexes Комментарии пользователей Эту новость ещё не комментировалиНаписать комментарий Анонимам нельзя оставоять комментарии, зарегистрируйтесь! |
Контакты для обмена ссылками между сайтами | Видео к статьям на Youtube |
![]() |
|||||
Мои друзья: | ![]() | ![]() | ![]() | Сообщество сисадминов | ![]() | ![]() |
|
© Snakeproject.ru создан в 2013 году.При копировании материала с сайта - оставьте ссылку. |