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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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


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


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