powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Имеет ли смысл использовать GUIDE в качестве кластерного индекса?
12 сообщений из 12, страница 1 из 1
Имеет ли смысл использовать GUIDE в качестве кластерного индекса?
    #36086917
xdx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть поле с типом данных "uniqueidentifieer" (GUIDE)
Оно ключевое, соответсвенно, по нему автоматически был создал кластерный уникальный индекс.

А имеет ли смысл делать это поле кластерным?
Мне кажется сортировка индекса по этому полю бессмысленна, зачем тогда "напрягать сервер" ?
Но по нему очень часто идет обращение.

В тоже время есть поле "дата создания" - по нему сортировка хотя бы имеет смысл.
В общем каламбурно, но примерно тогда суть такая, если это конечно возможно:
1. Поле GUIDE слелать ключевым (уникальным), но не кластерным
2. По полю "дата создания" сделать кластерный индекс.

Будет ли данный подход оптимальным? Ну или хотя бы правильным? :-)
...
Рейтинг: 0 / 0
Имеет ли смысл использовать GUIDE в качестве кластерного индекса?
    #36087030
Senya_L
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xdxИмеет ли смысл использовать GUIDE в качестве кластерного индекса? Нет.
Мое мнение подкрепляется этим тынцом. Подпишусь :) А подобного рода топиков было немало, это просто один нашел.
...
Рейтинг: 0 / 0
Имеет ли смысл использовать GUIDE в качестве кластерного индекса?
    #36087124
Фотография Сергей Васкецов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xdx1. Поле GUIDE слелать ключевым (уникальным), но не кластерным
2. По полю "дата создания" сделать кластерный индекс.
А первичный ключ?
...
Рейтинг: 0 / 0
Имеет ли смысл использовать GUIDE в качестве кластерного индекса?
    #36087319
Senya_L
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей Васкецовxdx1. Поле GUIDE слелать ключевым (уникальным), но не кластерным
2. По полю "дата создания" сделать кластерный индекс.
А первичный ключ?Я как-то высказывался в ветке MSSQL по этому поводу. ИМХО, первичные ключи не следует делать кластеризованными. Если на таблицу много ссылок, трудно потом переделать его в некластерный. Я обычно делаю так: создаю индекс некластерным, а потом создаю индекс с названием IX_clst. Если среди столбцов нет более подходящих кандидатов, то этот индекс "вешаю" на столбце PK.
...
Рейтинг: 0 / 0
Имеет ли смысл использовать GUIDE в качестве кластерного индекса?
    #36087334
Фотография ChA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Насколько я понял, речь об MS SQL.
xdxЕсть поле с типом данных "uniqueidentifieer" (GUIDE)
Оно ключевое, соответсвенно, по нему автоматически был создал кластерный уникальный индекс.
Создавайте ключ с указанием NONCLUSTERED.

xdxА имеет ли смысл делать это поле кластерным?
Мне кажется сортировка индекса по этому полю бессмысленна, зачем тогда "напрягать сервер" ?
Но по нему очень часто идет обращение.Если нет более подходящего кандидата, что маловероятно, то на здоровье.
1. Будете избавлены от bookmark lookup при поиске по этому полю. Чисто теоретически будете избавлены от так называемого "hot spot", хотя вряд ли вы с ним встретитесь в принципе, с учётом задаваемых вопросов. В то же время, начиная с версии 2005, новые значения GUID могут быть не только случайными, но и последовательными - NEWSEQUENTIALID().
2. В пределах страницы никакой явной сортировки не выполняется. Порядок записей определяется во внутреннем массиве смещений страницы данных.
3. В целом же, особого смысла в кластеризации по суррогатным значениям, нет. Смысл кластеризации прежде всего в хранение подобного рядом, а на это впрямую влияет характер типовых запросов к данной таблице.

xdxпримерно тогда суть такая, если это конечно возможно:
1. Поле GUIDE слелать ключевым (уникальным), но не кластерным
2. По полю "дата создания" сделать кластерный индекс.
Будет ли данный подход оптимальным? Ну или хотя бы правильным? :-)Возможно. Хотя чисто для "сферического коня в вакууме" лучше, возможно, так
(GUID) - PRIMARY KEY NONCLUSTERED
("дата создания", GUID) - UNIQUE CLUSTERED
Кластерный индекс всегда уникален, если вы сами этого явно не указываете, то к неуникальному значению автоматически будет генерироваться некое дополнение, гарантирующее уникальность для каждой записи. Таким образом, кластерный индекс лучше создавать явно уникальным. Поля кластерного индекса в некластерном индексе используются только один раз, т.е., в указанный выше PRIMARY KEY будет добавлено только значение "дата создания", поле GUID не будет дублироваться. В случае, если бы в кластерный индекс был включено только поле "дата создания", то в PK было бы включено три сущности: GUID, "дата создания" и "unique tail", дополняющий кластерный индекс до уникальности.
...
Рейтинг: 0 / 0
Имеет ли смысл использовать GUIDE в качестве кластерного индекса?
    #36087341
ln_123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
xdx,
Насколько я помню при сильной конкуренции (т.е. идут интенсивны вставки данных в разных сессиях) за таблицу создание кластерного индекса по guid будет выгодно т.к. позволит снизить конкуренцию за блок
...
Рейтинг: 0 / 0
Имеет ли смысл использовать GUIDE в качестве кластерного индекса?
    #36088164
xdx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ChAВозможно. Хотя чисто для "сферического коня в вакууме" лучше, возможно, так
(GUID) - PRIMARY KEY NONCLUSTERED
("дата создания", GUID) - UNIQUE CLUSTERED


Спасибо. Интересно.
А получится ли потом по индексу ("дата создания", GUID) настроить секционирование?
Или секционирование легко построится по полю "дата создания" ?

Тут ни каких проблем не возникнет?
...
Рейтинг: 0 / 0
Имеет ли смысл использовать GUIDE в качестве кластерного индекса?
    #36088203
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор("дата создания", GUID) - UNIQUE CLUSTERED
Я бы такой кластерный индекс делал только под растрелом
...
Рейтинг: 0 / 0
Имеет ли смысл использовать GUIDE в качестве кластерного индекса?
    #36088459
Фотография Сергей Васкецов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVaавтор("дата создания", GUID) - UNIQUE CLUSTERED
Я бы такой кластерный индекс делал только под растрелом
+1. Написано же " для "сферического коня в вакууме" ".
...
Рейтинг: 0 / 0
Имеет ли смысл использовать GUIDE в качестве кластерного индекса?
    #36088490
Фотография ChA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xdxА получится ли потом по индексу ("дата создания", GUID) настроить секционирование?
Или секционирование легко построится по полю "дата создания" ?

Тут ни каких проблем не возникнет?Так всё в BOL описано. В случае секционирования есть определённые требования. Вот одно из них, самое критичноеавторPartitioning columns must be a part of the primary key of the tableТ.е., надо будет сделать ("дата создания", GUID) - PRIMARY KEY CLUSTERED. И тогда (GUID) может сделать просто UNIQUE, этого достаточно, чтобы организовать по нему ссылочную целостность(FOREIGN KEY), если понадобится.
...
Рейтинг: 0 / 0
Имеет ли смысл использовать GUIDE в качестве кластерного индекса?
    #36088881
xdx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо.
Что-то это поле GUIDE мне нравится все меньши и меньше.
...
Рейтинг: 0 / 0
Имеет ли смысл использовать GUIDE в качестве кластерного индекса?
    #36088927
Фотография ChA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xdxЧто-то это поле GUIDE мне нравится все меньши и меньше.А зачем эмоциональная оценка ? У GUID достаточно чёткая область использования, когда без особых усилий нужно получить "уникальный" суррогатный ключ , обладающий определёнными свойствами. В остальных случаях, его применимость не очень оправдана, IMHO.
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Имеет ли смысл использовать GUIDE в качестве кластерного индекса?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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