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

Откуда:
Сообщений: 1064
... если всё равно подразумевается использование одного файла для хранения (гм... это, правда, думаю, возможно изменить) и одного раздела на рейде 0+1 (это точно не перепрыгнуть).

Задача вкратце такая:
Имеется некое оборудование (пока - в количестве ~100 клиентов, будет рост, но не более чем до 500), которое довольно интенсивно записывает данные на SQL сервер. Шлёт некие xml-ли, которые на сервере парсятся и раскладывается по табличкам.
Около 2 млн. записей в день. Всё это складируется в некую основную табличку (там есть еще с десяток таблиц, связанных с основной 1-ко многим, но они существенно разрежены, и сильно меньше). Раз в день устаревшие записи (которым больше недели) хоронятся в архивной базе, та же, которая используется - живая, ее данные довольно интенсивно используются на чтение (тоже несколько десятков клиентов читают, в т.ч. и те, которые пишут). Устоявшийся объем этой главной таблички - 15-20 млн записей, и гигабайт около 20 объемом. На таблице имеется с десяток индексов, и, к сожалению, избавиться от них нельзя.
Само железо, на котором всё живет, довольно хилое (решение фактически встраиваемое).

Вопрос:
Даст ли чего нибудь в смысле увеличения производительности при вставке данных (при этом не радикально влияя на скорость чтения), если секционировать таблицу по ID оборудования, и, соответственно все индексы, где ID имеется - тоже секционировать?
(А там, где не имеется - добавить и тоже порезать).

Соображение следующее: оборудование всё равно пишет свои данные, и большей частью свои же и читает, но разные агрегаты это делают сильно неравномерно. Жду, что количество локов упадет.

В общем, "дохтур, у меня это...". С точки зрения сфероконных рассуждений даст чего-нибудь? Или я неправильно понимаю политику партии?
9 янв 12, 12:33    [11873308]     Ответить | Цитировать Сообщить модератору
 Re: Имеет ли смысл секционировать таблицу?  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31962
uaggster
... если всё равно подразумевается использование одного файла для хранения (гм... это, правда, думаю, возможно изменить) и одного раздела на рейде 0+1 (это точно не перепрыгнуть).
Нет, будет толшько медленнее.
9 янв 12, 13:04    [11873515]     Ответить | Цитировать Сообщить модератору
 Re: Имеет ли смысл секционировать таблицу?  [new]
uaggster
Member

Откуда:
Сообщений: 1064
alexeyvg,
А если файлов по числу клиентов, но раздел по прежнему один (это отлито из бронзы)?
9 янв 12, 13:46    [11873768]     Ответить | Цитировать Сообщить модератору
 Re: Имеет ли смысл секционировать таблицу?  [new]
edyaN
Member

Откуда: Berlin
Сообщений: 185
uaggster,
если каждый агрегат в WHERE добавляет агрегат_ид и по нему же делется секционирование, то каждый агрегат будет работать со своей файловой группой, и да, количество локов упадет, точнее их гранулярность должна быть(будет?) не выше секции. Но опять же все зависит от того, что стоит в WHERE.
9 янв 12, 19:12    [11875232]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить