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

Сейчас я создал некластеризованный индекс с включенными полями.
А с галкой уникальный, не могу понять нужно ли её поставить?

(ниже описание не совсем понимаю, может кто-то объяснить простыми словами)
Уникальный (Unique) – это индекс, который обеспечивает отсутствие повторяющихся (одинаковых) значений ключа индекса, гарантируя тем самым уникальность строк по данному ключу. Уникальными могут быть как кластеризованные, так и некластеризованные индексы. Если создавать уникальный индекс по нескольким столбцам, индекс гарантирует уникальность каждой комбинации значений в ключе. При создании ограничений PRIMARY KEY или UNIQUE SQL сервер автоматически создает уникальный индекс для ключевых столбцов. Уникальный индекс может быть создан только в том случае, если у таблицы на текущий момент отсутствуют дублирующие значения по ключевым столбцам;
...
Рейтинг: 0 / 0
Некластеризованный индекс уникальный
    #39850206
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
слово "уникальный" не понятно? единственный и неповторимый, так яснее?
...
Рейтинг: 0 / 0
Некластеризованный индекс уникальный
    #39850207
trew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konst_One,

не понятно зачем делать некластерный индекс уникальным.
...
Рейтинг: 0 / 0
Некластеризованный индекс уникальный
    #39850209
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
что у вас за таблица, покажите описание и какие там данные хранятся
...
Рейтинг: 0 / 0
Некластеризованный индекс уникальный
    #39850212
Minamoto
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
trew, даже как то теряешься - как ответить на такой вопрос участнику с 2,5 тысячами сообщений :)

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

Уникальность проверяется по набору ключевых полей - т.е. на включенные (INCLUDE) поля можно не смотреть.
...
Рейтинг: 0 / 0
Некластеризованный индекс уникальный
    #39850213
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
trewKonst_One,

не понятно зачем делать некластерный индекс уникальным.
если не понятно - не делайте. Констрейн на уникальност не даст хранить не уникальные значения полей индекса. Нужно или нет вопрос бизнес логики.
...
Рейтинг: 0 / 0
Некластеризованный индекс уникальный
    #39850214
Minamoto
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
trewKonst_One,

не понятно зачем делать некластерный индекс уникальным.Например, затем, что у вас может быть несколько наборов данных, которым необходимо обеспечить уникальность. Или если вы делаете кластерным суррогатный ключ, при этом требуется еще обеспечить уникальность. Множество причин.
...
Рейтинг: 0 / 0
Некластеризованный индекс уникальный
    #39850215
trew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konst_Oneчто у вас за таблица, покажите описание и какие там данные хранятся

1С таблица констант.
В одной таблице много констант хранятся. Обращений к таблице много, возникают блокировки.
Запросы выбирают все поля таблицы, а в индексах (двух) указано только часть полей.
Вот ms sql пробегает по индексу, а дальше бежит собирать остальные поля из таблицы (теряется время).
Я сделал некластерный индекс по полям поиска, и включил туда все остальные поля.
Теперь проблем нет с этой таблицей констант.

Только не понятно, нужно ли мне делать мой некластерный индекс уникальным (ставить галочку) ?
...
Рейтинг: 0 / 0
Некластеризованный индекс уникальный
    #39850217
Minamoto
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
trewТолько не понятно, нужно ли мне делать мой некластерный индекс уникальным (ставить галочку) ?
Если непонятно - скорее всего не надо.
...
Рейтинг: 0 / 0
Некластеризованный индекс уникальный
    #39850219
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Некластеризованный индекс уникальный
    #39850221
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
trewKonst_Oneчто у вас за таблица, покажите описание и какие там данные хранятся

1С таблица констант.
В одной таблице много констант хранятся. Обращений к таблице много, возникают блокировки.
Запросы выбирают все поля таблицы, а в индексах (двух) указано только часть полей.
Вот ms sql пробегает по индексу, а дальше бежит собирать остальные поля из таблицы (теряется время).
Я сделал некластерный индекс по полям поиска, и включил туда все остальные поля.
Теперь проблем нет с этой таблицей констант.

Только не понятно, нужно ли мне делать мой некластерный индекс уникальным (ставить галочку) ?

если все записи по этому индексу уникальны, то делайте, если могут быть повторы по вашей бизнес-задаче, то не делайте
...
Рейтинг: 0 / 0
Некластеризованный индекс уникальный
    #39850225
trew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konst_One,
за ссылку спасибо. только там про уникальность не увидел.

У меня был в плане запроса Key Lookup.
А после создания некластерного индекса с включенными полями, всё выбирается из индекса.

Зачем эта галочка (уникальный) у некластерного индекса?
...
Рейтинг: 0 / 0
Некластеризованный индекс уникальный
    #39850228
trew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konst_Onetrewпропущено...


1С таблица констант.
В одной таблице много констант хранятся. Обращений к таблице много, возникают блокировки.
Запросы выбирают все поля таблицы, а в индексах (двух) указано только часть полей.
Вот ms sql пробегает по индексу, а дальше бежит собирать остальные поля из таблицы (теряется время).
Я сделал некластерный индекс по полям поиска, и включил туда все остальные поля.
Теперь проблем нет с этой таблицей констант.

Только не понятно, нужно ли мне делать мой некластерный индекс уникальным (ставить галочку) ?

если все записи по этому индексу уникальны, то делайте, если могут быть повторы по вашей бизнес-задаче, то не делайте
Ура, кажется я понял.
Создаю индекс по трем полям. Если такие сочетания(три поля) могут повторятся - ставим галочку уникальный.

А если всегда ставить галочку уникальный у некластерного индекса, что плохо получится?
...
Рейтинг: 0 / 0
Некластеризованный индекс уникальный
    #39850231
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если нужно обеспечить уникальность, а кластерного уникального нет в таблице
...
Рейтинг: 0 / 0
Некластеризованный индекс уникальный
    #39850235
trew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо всем за участие и помощь!
...
Рейтинг: 0 / 0
Некластеризованный индекс уникальный
    #39850244
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
trew,

уникальный индекс имеет смысл ключа. В таблице может быть определено несколько ключей. Откройте для себя реляционные механизмы, на которых базируется математика SQL Server.
...
Рейтинг: 0 / 0
Некластеризованный индекс уникальный
    #39850308
Фотография StarikNavy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
trewУра, кажется я понял.
Создаю индекс по трем полям. Если такие сочетания(три поля) могут повторятся - ставим галочку уникальный.
А если всегда ставить галочку уникальный у некластерного индекса, что плохо получится?
неправильно поняли. нужность "уникальности" не количеством полей определяется, не хорошестью/плохостью . а бизнес логикой. например нельзя чтобы пользователь создал две одинаковые позиции номенклатуры. чтобы не говородить проверки в коде, ставим уникальность по имени
...
Рейтинг: 0 / 0
Некластеризованный индекс уникальный
    #39850709
PizzaPizza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
trewЗачем эта галочка (уникальный) у некластерного индекса?

Уникальный = максимально селективный = самый быстрый и поэтому предпочитаемый оптимизатором вариант индекса. Хорошо делать все индексы уникальными, если вы можете себе это позволить согласно бизнес-логики.
...
Рейтинг: 0 / 0
Некластеризованный индекс уникальный
    #39851374
Фотография Mind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владислав Колосовtrew,

уникальный индекс имеет смысл ключа. В таблице может быть определено несколько ключей. Откройте для себя реляционные механизмы, на которых базируется математика SQL Server.Товарищ явно школу прогулял. Сразу за практику. Сейчас он еще спросит что такое ключ.
...
Рейтинг: 0 / 0
Некластеризованный индекс уникальный
    #39851375
Фотография Mind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
trewKonst_Oneпропущено...


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


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