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

Откуда:
Сообщений: 194
Всем привет,

Такой вопрос, какие плюси и минуси кластерного и не кластеного Primary Key на больших таблицах?

Кластерний:
+ занимает меньше места так как он встроений в дание
+ нет допольнительного лукапа с индекса на даные

Не кластерный
- занимает дополнительное место на диску
- дополнительний лукап с индекса на даные

Кто может пополнить список или поправте меня если я не прав.
23 окт 12, 12:40    [13361697]     Ответить | Цитировать Сообщить модератору
 Re: Кластеный vs не кластерный Primary Key на больших таблицах  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37069
Речь об плюсах и минусах индексов лучше вести в контексте запросов, которыми вы будете работать с этими данными.
23 окт 12, 12:43    [13361723]     Ответить | Цитировать Сообщить модератору
 Re: Кластеный vs не кластерный Primary Key на больших таблицах  [new]
NEKOS
Member

Откуда:
Сообщений: 194
Хорошо, ето таблица истории по объектам. Один объек может иметь историю за определенный период времени, и количество строк истории на один объек может быть разной (от 100 до ~10000).
Таблица только пополняется, ничего не удаляется и не меняется. В таблице около 500 милионов даных.

P.S. сечас думаем разбить ету таблицу на партиции.
23 окт 12, 12:53    [13361880]     Ответить | Цитировать Сообщить модератору
 Re: Кластеный vs не кластерный Primary Key на больших таблицах  [new]
NEKOS
Member

Откуда:
Сообщений: 194
Гавриленко Сергей Алексеевич
Речь об плюсах и минусах индексов лучше вести в контексте запросов, которыми вы будете работать с этими данными.


С выше наведенными даними есть какието предложения?
23 окт 12, 19:56    [13365110]     Ответить | Цитировать Сообщить модератору
 Re: Кластеный vs не кластерный Primary Key на больших таблицах  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37069
NEKOS
С выше наведенными даними есть какието предложения?

Вы структуру-то не показали.

Что касается сабжа in general, то, имхо, то смысла делать вместо кластерного ключа кучу и некластерный индекс нет вообще.

NEKOS
В таблице около 500 милионов даных.

P.S. сечас думаем разбить ету таблицу на партиции.
А какие проблемы у вас с этой таблицей?
23 окт 12, 20:14    [13365193]     Ответить | Цитировать Сообщить модератору
 Re: Кластеный vs не кластерный Primary Key на больших таблицах  [new]
NEKOS
Member

Откуда:
Сообщений: 194
Гавриленко Сергей Алексеевич
А какие проблемы у вас с этой таблицей?


проблеми следуещее:
- их есть две, одна HISTORY другая HISTORY_ARCH.
- каждие виходние некоторая история переносится в HISTORY_ARCH, но не последовательно по датам а виборочно по конкретним обектам
- rebuild indexes занимает 15 часов
- перенос даних тоже долго длитса
- при всех операциях, лог файл растет к 100 гигам за ночь
- каждий год добавсяетсь около 90 милионов записей
- на таблице есь около 8 индексов

структура таблици такова
Id
Object1_ID
Object2_ID
Object3_ID
Object4_ID
Obgect5_ID
FIX_COLUMN_ID
23 окт 12, 23:22    [13365685]     Ответить | Цитировать Сообщить модератору
 Re: Кластеный vs не кластерный Primary Key на больших таблицах  [new]
NEKOS
Member

Откуда:
Сообщений: 194
сори, привичка с ентером зажимать Cntrl :)

структура таблици такова
Id
Object1_ID
Object2_ID
Object3_ID
Object4_ID
Obgect5_ID
FIX_COLUMN_ID
COMP_Column_ID
Table_ID
old_value
new_value
datetime
user
23 окт 12, 23:25    [13365694]     Ответить | Цитировать Сообщить модератору
 Re: Кластеный vs не кластерный Primary Key на больших таблицах  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
NEKOS,

експеремнт критерий истины- все остальное только теоретический изыскания....
вам в сторону партиционироания при таких размераз смотреть надо
23 окт 12, 23:37    [13365734]     Ответить | Цитировать Сообщить модератору
 Re: Кластеный vs не кластерный Primary Key на больших таблицах  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37069
NEKOS
- rebuild indexes занимает 15 часов
Тут секционирование помочь может, но есть одно но. Нет онлайнового ребилда секций.
NEKOS
- при всех операциях, лог файл растет к 100 гигам за ночь
Это при каких-таких "всех"? Вы каждую ночь, что ли, вашу таблицу ребилдите? O_o
NEKOS
- каждий год добавсяетсь около 90 милионов записей
Ниочем объемы. Честно.
NEKOS
- на таблице есь около 8 индексов
Пффф... А они точно нужны?
24 окт 12, 02:49    [13366025]     Ответить | Цитировать Сообщить модератору
 Re: Кластеный vs не кластерный Primary Key на больших таблицах  [new]
aleks2
Guest
NEKOS
Хорошо, ето таблица истории по объектам. Один объек может иметь историю за определенный период времени, и количество строк истории на один объек может быть разной (от 100 до ~10000).
Таблица только пополняется, ничего не удаляется и не меняется. В таблице около 500 милионов даных.

P.S. сечас думаем разбить ету таблицу на партиции.


1. Что делает кот, когда делать нечего?
2. Вот не надо уподобляться.
3. Прикрутите к вашим таблицам кластерный индекс, так, чтобы добавление записей шло в хвост или гриву этого индекса.
4. Забудьте про ребилд индексов. И вспоминайте о нем раз в год.
5. Выполняйте перенос не "гопом", а "по-объектно" или "кусками" закрывая транзакцию посля каждого куска.
6. Нафега вам восемь индексов на таблице-архиве?
7. Нафега вам, ваще, восемь индексов?
24 окт 12, 06:24    [13366074]     Ответить | Цитировать Сообщить модератору
 Re: Кластеный vs не кластерный Primary Key на больших таблицах  [new]
aWlad
Member

Откуда: Москва
Сообщений: 42
aleks2,

вот уж точно: архив, только пополняемый "в хвост", записей не запредельно, легко секционируемый по времени - нафига 8 индексов?? одного CLUST PK "за глаза".
25 окт 12, 17:47    [13376118]     Ответить | Цитировать Сообщить модератору
 Re: Кластеный vs не кластерный Primary Key на больших таблицах  [new]
sphinx_mv
Member [заблокирован]

Откуда:
Сообщений: 1672
aWlad
aleks2,

вот уж точно: архив, только пополняемый "в хвост", записей не запредельно, легко секционируемый по времени - нафига 8 индексов?? одного CLUST PK "за глаза".

Практическое наблюдение-1.
Добавление "в хвост" дает эффект только на монотонно нарастающих значениях полей, входящих в индекс.

Практическое наблюдение-2.
С учетом иногда (а иногда и очень не иногда) возникающей необходимостью получения архивных данных по некоторому объекту за определенный период времени на озвученных объемах данных (500 млн записей) без соотвествующих индексов будет тихий страх и ужас. Скромненько просмативаются составные индексы, ключи которых монотонно нарастают в очень редких случаях.

Практическое наблюдение-3
Составной кластерный индекс на таблице с произвольным порядком заполнения на активных вставках очень быстро вызывает раздувание используемого дискового пространства - и места жалко далеко не в первую (хоть и не в последнюю) очередь...
26 окт 12, 10:49    [13378741]     Ответить | Цитировать Сообщить модератору
 Re: Кластеный vs не кластерный Primary Key на больших таблицах  [new]
Владимир Затуливетер
Member

Откуда:
Сообщений: 427
NEKOS,

Покажите запросы которые вы делаете к этой большой таблице.
Желательно все которые есть (надеюсь их не мульен :).
И укажите насколько часто каждый из этих запросов выполняется.
26 окт 12, 11:02    [13378829]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить