Навигация
|
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 Комментарии пользователей Эту новость ещё не комментировалиНаписать комментарий Анонимам нельзя оставоять комментарии, зарегистрируйтесь! |
Контакты Группа ВК | Код обмена баннерами | Видео к IT статьям на YoutubeВидео на другие темы Смотреть | |||
Мои друзья: | © Snakeproject.ru создан в 2013 году.При копировании материала с сайта - оставьте ссылку.Весь материал на сайте носит ознакомительный характер,за его использование другими людьми, автор ответственности не несет. |
||||
Поддержать автора и проект
|