powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Где при создании индекса колонка будет занимать больше места? (INCLUDE или напрямую)
11 сообщений из 11, страница 1 из 1
Где при создании индекса колонка будет занимать больше места? (INCLUDE или напрямую)
    #39636958
ssms
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.


Хочу создать индекс, включающий 4 колонки таблицы.

Типы полей такие:

Код: sql
1.
2.
3.
4.
с1 int
с2 varchar(15)
с3 float
с4 int





Читаю мануалы:

column

Столбец или столбцы, на которых основан индекс



INCLUDE (column [ ,... n ] )

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



Но мало чего понял из этого...

Интересует с практической точки зрения как предпочтительнее сделать (занимаемое место, производительность и т.д.)

Код: sql
1.
CREATE NONCLUSTERED INDEX [index1] ON table1 (c1,c2,c3,c4)



или

Код: sql
1.
CREATE NONCLUSTERED INDEX [index1] ON table1 (c1) INCLUDE (c2,c3,c4)



?
...
Рейтинг: 0 / 0
Где при создании индекса колонка будет занимать больше места? (INCLUDE или напрямую)
    #39636965
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
С практической точкой зрения индексы делаются для каких-то запросов или ограничений.
...
Рейтинг: 0 / 0
Где при создании индекса колонка будет занимать больше места? (INCLUDE или напрямую)
    #39636969
ssms
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Гавриленко Сергей АлексеевичС практической точкой зрения индексы делаются для каких-то запросов или ограничений.

Запросы, используют в условиях выборки эти 4 поля.
Есть внешний ключ по полю c4, но отсутствует индекс.

Так же есть кластерный индекс по полю id. (оно отсутствует среди этих четырех полей)
...
Рейтинг: 0 / 0
Где при создании индекса колонка будет занимать больше места? (INCLUDE или напрямую)
    #39636971
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ssmsЗапросы, используют в условиях выборки эти 4 поля.
Одновременно?
...
Рейтинг: 0 / 0
Где при создании индекса колонка будет занимать больше места? (INCLUDE или напрямую)
    #39636977
ssms
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Гавриленко Сергей АлексеевичssmsЗапросы, используют в условиях выборки эти 4 поля.
Одновременно?

Разные запросы по 1-2 поля.
...
Рейтинг: 0 / 0
Где при создании индекса колонка будет занимать больше места? (INCLUDE или напрямую)
    #39636993
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ssmsГавриленко Сергей Алексеевичпропущено...

Одновременно?

Разные запросы по 1-2 поля.Индекс (c1,c2,c3,c4) может использоваться только если вы используете в запросе комбинации полей c1-c2-c3-c4, c1-c2-c3, c1-c2, c1. И то, "использование" должно быть вполне определенным. Как только у вас выпадает поле из цепочки ключей, все остальные, что правее, сразу выпадают из seek predicate.
...
Рейтинг: 0 / 0
Где при создании индекса колонка будет занимать больше места? (INCLUDE или напрямую)
    #39637153
ЛиП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Include используется дляя селекта этих полей. При поиски он бесполезен
...
Рейтинг: 0 / 0
Где при создании индекса колонка будет занимать больше места? (INCLUDE или напрямую)
    #39637271
ssms
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ЛиПInclude используется дляя селекта этих полей. При поиски он бесполезен

Я так и думал.
...
Рейтинг: 0 / 0
Где при создании индекса колонка будет занимать больше места? (INCLUDE или напрямую)
    #39637272
ssms
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Гавриленко Сергей Алексеевичssmsпропущено...


Разные запросы по 1-2 поля.Индекс (c1,c2,c3,c4) может использоваться только если вы используете в запросе комбинации полей c1-c2-c3-c4, c1-c2-c3, c1-c2, c1. И то, "использование" должно быть вполне определенным. Как только у вас выпадает поле из цепочки ключей, все остальные, что правее, сразу выпадают из seek predicate.

Получается если индекс (c1,c2,c3,c4), то выборка по c2 уже его не использует. Жалко (
...
Рейтинг: 0 / 0
Где при создании индекса колонка будет занимать больше места? (INCLUDE или напрямую)
    #39637292
Фотография Yasha123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛиПInclude используется дляя селекта этих полей. При поиски он бесполезен
это не так.
вам привести пример плана,
где выбран просмотр некластерного только потому,
что там есть инклуд, по которому в запросе условие поиска, и прочие поля, необходимые для запроса?
кластерный там не по полю поиска и весит гораздо больше некластерного,
в результате выбирается покрывающий некластерный,
хотя и в нем тоже поле поиска вовсе не ключевое
...
Рейтинг: 0 / 0
Где при создании индекса колонка будет занимать больше места? (INCLUDE или напрямую)
    #39637295
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ssms,

использовать может для просмотра, что, в конце концов, быстрее, чем просмотр кучи.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Где при создании индекса колонка будет занимать больше места? (INCLUDE или напрямую)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]