Возможно ли создать некластеризованный индекс, который не является уникальным? Какая структура данных используется для реализации некластеризованных индексов.Кластерный и некластеризованный индекс
ответ
Предполагая, что вы говорите о SQL Server, тогда просто не указывайте UNIQUE
при создании индекса.
CREATE /*UNIQUE*/ NONCLUSTERED INDEX IX ON T(C)
Как UNIQUE
закомментирован выше этого не обеспечивает уникальность на C
колонки. Но на самом деле it will still be made unique behind the scenes, добавив (уникальный) указатель строки в некластеризованный индексный ключ.
Что касается структуры данных, то кластерные и некрупные индексы - это B+ trees.
Какая структура данных используется для хранения такого индекса? –
@ java_geek - B деревьев. См. Также [Структуры некластеризованных индексов] (http://technet.microsoft.com/en-gb/library/ms177484 (v = sql.105) .aspx) –
Как указано Мартином Смитом, индексы не обязательно должны быть логически, но на практике SQL Server добавляет 4-байтовый столбец «uniquifier», чтобы гарантировать физическую уникальность.
С точки зрения структурных различий, некластеризованные индексы включают указатели на кластеризованный индекс или указатель кучи (если вы не создали кластерный индекс).
Следует отметить, что в то время как они оба B-дерева, есть и другие отличия - некластерных индексы имеют свои листовые узлы 1 уровень выше, что может означать, чтение из некластеризованных индексов могут быть быстрее, чем чтение с кластерный индекс, обеспечивающий требуемые данные, доступен в листовых узлах (требуемые столбцы находятся в ключе индекса).
Вот кластерный индекс структура из Books Online:
http://technet.microsoft.com/en-us/library/ms177443(v=sql.105).aspx
Вот некластерные структуры индекса:
http://technet.microsoft.com/en-gb/library/ms177484(v=sql.105).aspx
Итак, чтение из «закрытого» некластеризованного индекса может быть более быстрым, так как каждый уровень берет на 1 страницу так, потому что у некластеризованного индекса меньше уровней для доступа к данным, тогда вы получите меньше логических чтений, которые, в свою очередь, будет означать меньшее количество чтения физического диска и меньше работы для ЦП.
Вы также должны учитывать, что прикрывающие индексы только с определенными столбцами, необходимыми для конкретного запроса, будут означать, что нужно будет читать меньше всего страниц, чтобы захватить все данные, что приводит к более высокой производительности, но также следует помнить, что чем больше индексов у вас есть, тем больше будет стоить ваша запись.
- 1. Кластерный и некластеризованный индекс
- 2. Кластерный и некластеризованный индекс большой вставкой данных
- 3. Кластерный и некластеризованный индекс - SQL Server и Oracle?
- 4. Имейте не кластерный индекс, но не кластерный индекс
- 5. Создает ли INDEX() кластерный или некластеризованный индекс в MySQL?
- 6. Кластерный/некластеризованный индекс в столбце уникального идентификатора в SQL Server
- 7. SQL Server: измените кластерный первичный индекс на некластеризованный
- 8. Некластеризованный индекс не работает
- 9. Кластерный против покрытия индекс
- 10. Создать кластерный/некластеризованный указатель в поле зрения
- 11. Какой некластеризованный индекс следует использовать?
- 12. SQL некластеризованный индекс
- 13. некластеризованный индекс на соединение
- 14. Некластеризованный индекс, включая столбцы
- 15. Первичный ключ и кластерный индекс
- 16. первичный ключ и кластерный индекс
- 17. Кандидат в некластеризованный индекс
- 18. некластеризованный индекс в столбце первичного ключа?
- 19. Что такое индекс и может некластеризованный индекс быть неединственным?
- 20. SQL Server - Разделенные таблицы и кластерный индекс?
- 21. Обновление, кластерный индекс ошибки
- 22. почему вместо кластеризованного индекса используется некластеризованный индекс
- 23. Какой индекс лучше не кластерный и кластерный в этом случае?
- 24. Некластеризованный индекс SQL Server 2008
- 25. Кластерный индекс - многочастный индекс и индекс вставки/удаления
- 26. Некластеризованный индекс в sql-сервере
- 27. Кластеризованные данные сортируют физически и некластеризованный индекс тоже?
- 28. Кластерный индекс SQL Server и некластерный индекс для того же столбца
- 29. Почему этот кластерный индекс имеет большую стоимость, чем тот же некластеризованный сервер sql
- 30. SQL Server кластерный индекс - порядок Индекс Вопрос
Пожалуйста, укажите информацию о РСУБД, о которой вы говорите. –