Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Кластерный индекс и справочник  [new]
кириллk
Member

Откуда:
Сообщений: 1062
Добрый день!

Есть справочник 1 миллион записей. (достаточно часто удаляются и добавляются записи)
у справочника есть Id (bigint), на нем уникальный кластерный индекс

У меня есть 2 варианта удаления записи
1. ставить метку удаления
2. физически удалять

2 пункт меня смущает: не будет ли уникальный кластерный индекс работать хуже, если у него будет много удаленных значений?

спасибо
6 сен 16, 10:11    [19631615]     Ответить | Цитировать Сообщить модератору
 Re: Кластерный индекс и справочник  [new]
Mr. X
Guest
кириллk,

Не будет работать хуже. И регулярное обслуживание никто не отменял.
6 сен 16, 10:23    [19631673]     Ответить | Цитировать Сообщить модератору
 Re: Кластерный индекс и справочник  [new]
Mike_za
Member

Откуда: Москва
Сообщений: 1176
кириллk,
Будет.
Особенно, если вы читаете не по одному значению а много за раз, и у вас там будут сканы.
6 сен 16, 10:55    [19631854]     Ответить | Цитировать Сообщить модератору
 Re: Кластерный индекс и справочник  [new]
Mike_za
Member

Откуда: Москва
Сообщений: 1176
Сорри. Я отвечал на вариант: "маркировать"
6 сен 16, 10:56    [19631859]     Ответить | Цитировать Сообщить модератору
 Re: Кластерный индекс и справочник  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31980
кириллk
У меня есть 2 варианта удаления записи
1. ставить метку удаления
2. физически удалять

2 пункт меня смущает: не будет ли уникальный кластерный индекс работать хуже, если у него будет много удаленных значений?
Из вариантов 1 и 2 нужно выбирать, исходя из бизнес-требований.

А проблемы производительности можно решить, если будут.
Обращения к справочнику в join вообще слабо зависят от количества записей.
Ну а если нужно делать выборки-поиски-фильтрации по самому справочнику, то в крайнем случае сделаете фильтрованный индекс (для быстроты п. 1), или будете делать правильное обслуживание (для исключения проблем при выборе п. 2); в конце концов, полное перестроение таблицы с миллионом записей не представляет сложностей.
6 сен 16, 14:10    [19632879]     Ответить | Цитировать Сообщить модератору
 Re: Кластерный индекс и справочник  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8826
Из справочников в принципе ничего не может быть удалено во избежание потери целостности и историчности.
6 сен 16, 15:12    [19633222]     Ответить | Цитировать Сообщить модератору
 Re: Кластерный индекс и справочник  [new]
Dmitry V. Liseev
Member [заблокирован]

Откуда: Санкт-Петербург
Сообщений: 5489
кириллk
1. ставить метку удаления
Это как?
6 сен 16, 18:29    [19634291]     Ответить | Цитировать Сообщить модератору
 Re: Кластерный индекс и справочник  [new]
мигель1
Member

Откуда:
Сообщений: 3236
Dmitry V. Liseev
кириллk
1. ставить метку удаления
Это как?


По тригеру делать апдейт поля
а потом по условию нигде не выводить
6 сен 16, 18:31    [19634300]     Ответить | Цитировать Сообщить модератору
 Re: Кластерный индекс и справочник  [new]
Dmitry V. Liseev
Member [заблокирован]

Откуда: Санкт-Петербург
Сообщений: 5489
мигель1
а потом по условию нигде не выводить
Тогда нужен будет индекс по этому условию, чтобы он использовался во всех селектах с целью эмуляции удаления записи. А следовательно, непонятно, зачем нужен кластерный индекс.
6 сен 16, 18:43    [19634347]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить