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

Откуда: Харків
Сообщений: 1233
Задачка вроде бы простая.
Есть линкед сервер тоже MSSQL, на котором накапливаются данные.
Их нужно периодически забирать.
За время от остановки джоба до начала следующего накапливается примерно 3 млрд. строк
В строке 12 колонок: Айдишник, 3 гуида, 2 инта, 1 бит, 1 дата и 4 текста по 1000 символов. Исходим из того, что всё полностью заполнено, тексты примерно наполовину.
Нужно всё это инсертить. В инсерт таблице всё попадет с вероятностью 90% в один партишен. Индексов нет, только ПК.
Минимальный размер пакета, который я могу забрать- 10 тыс. строк.
По сколько таких пакетов на ОДИН инсерт примерно надо брать чтобы выйти на оптимальный перфоманс?
В каких пределах экспериментировать?
Тут вопрос больше к любителям арифметики с практическим применением.
Да, потерять естесственно ничего нельзя. После обработки надо отдать линку один АйДи на каждый обработанный пакет (из 10 тыс. строк).
14 июл 11, 17:50    [10975617]     Ответить | Цитировать Сообщить модератору
 Re: Перфоманс  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Чтобы быстро лить, надо выкинуть ЛС и лить балком через SSIS.
14 июл 11, 17:52    [10975631]     Ответить | Цитировать Сообщить модератору
 Re: Перфоманс  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31949
igor2222
За время от остановки джоба до начала следующего
А это сколько времени - минута, год?
igor2222
По сколько таких пакетов на ОДИН инсерт примерно надо брать чтобы выйти на оптимальный перфоманс?
В каких пределах экспериментировать?
Тут вопрос больше к любителям арифметики с практическим применением.
Лить конечно балком, возможно в несколько потоков - зависит от разных факторов, например, от схемы секционирования и от схемы системы хранения.

Но вообще 12 терабайт за каждое срабатывание джоба - это немало...
igor2222
В инсерт таблице всё попадет с вероятностью 90% в один партишен.
Да печально, то есть по секциям заливать нельзя...
14 июл 11, 17:59    [10975690]     Ответить | Цитировать Сообщить модератору
 Re: Перфоманс  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31949
igor2222
тексты примерно наполовину
а, тогда не 12 терабайт, а 6
14 июл 11, 18:00    [10975697]     Ответить | Цитировать Сообщить модератору
 Re: Перфоманс  [new]
igor2222
Member

Откуда: Харків
Сообщений: 1233
Так, стоп! Сбрехал конечно. 3 млн. строк.
Так что 6-10 гиг примерно.
Запускается примерно раз в час-полтора. В остальное время есть другие джобы, которые грузят канал. Сервера в пределах локальной сети.
Перестроить на БАЛК пока проблематично.
Будут ли рекомендации с учетом откорретированных данных?
14 июл 11, 18:50    [10975998]     Ответить | Цитировать Сообщить модератору
 Re: Перфоманс  [new]
igor2222
Member

Откуда: Харків
Сообщений: 1233
Появилась немного другая задача.
Сейчас БАЛК инсерт Один раз в сутки от 10 до 18 млн. строк в пустую таблицу.
Соответственно объем примерно 6,5 Гиг на максимуме.
Но скорость таки не устраивает. Можно ли ускорить, отказавшись от балка и вставляя порциями скажем по 300 тыс.? Или даже не стоит пытаться?
Снова таки два сервера в одной сети.
18 июл 11, 15:57    [10990164]     Ответить | Цитировать Сообщить модератору
 Re: Перфоманс  [new]
Crimean
Member

Откуда:
Сообщений: 13147
а что сервер делает во время балка? может базу увеличивает или журнал? это долго
индексы есть на таблице, куда импорт идет? может убрать на время балка, после построить - должно быть быстрее
просто быстрее балка вставить сложно :)
18 июл 11, 16:00    [10990196]     Ответить | Цитировать Сообщить модератору
 Re: Перфоманс  [new]
igor2222
Member

Откуда: Харків
Сообщений: 1233
А отключить ребилд недостаточно?

EXEC DisableRebuildTableIndexes @Tablename
18 июл 11, 16:11    [10990287]     Ответить | Цитировать Сообщить модератору
 Re: Перфоманс  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
igor2222
А отключить ребилд недостаточно?

EXEC DisableRebuildTableIndexes @Tablename
Что-что сделать?
18 июл 11, 16:12    [10990293]     Ответить | Цитировать Сообщить модератору
 Re: Перфоманс  [new]
igor2222
Member

Откуда: Харків
Сообщений: 1233
Гавриленко Сергей Алексеевич
Что-что сделать?

:)
Перед вставкой ALTER INDEX @indexName ON @Table DISABLE
После вставки ALTER INDEX @indexName ON @Table REBUILD.
Так?
Больше ничего сделать нельзя?
18 июл 11, 16:20    [10990335]     Ответить | Цитировать Сообщить модератору
 Re: Перфоманс  [new]
Crimean
Member

Откуда:
Сообщений: 13147
а форумом не ошиблись? может вам к телепатам? на заданные вопросы принято давать ответы..
18 июл 11, 16:23    [10990362]     Ответить | Цитировать Сообщить модератору
 Re: Перфоманс  [new]
igor2222
Member

Откуда: Харків
Сообщений: 1233
Crimean
а форумом не ошиблись? может вам к телепатам? на заданные вопросы принято давать ответы..

Я считал что ответил. Но если подробнее, то перед БАЛКом таблица Truncate-тится, соответственно база практически не увеличивается, журналы тоже. Индекс перед инсертом отключается, после инсерта ребилдится. 17 млн строк по 4-5 кб за 27 минут - это вообще приемлимо?
18 июл 11, 17:33    [10990939]     Ответить | Цитировать Сообщить модератору
 Re: Перфоманс  [new]
Crimean
Member

Откуда:
Сообщений: 13147
рекавери модель? симпл / балк / фулл?
что грузится во время балка? на сколько?
если диски - какие? данные / журналы? может система подсвапливает? ОЗУ мало для ОС оставили?
если проц - не в кернеле случаем?
может в сетку тупо упор?

для получения baseline загрузите в базу с локалки адекватное файло и засеките время, посмотрите во что упираетесь
получите контрольные цифры - будет понятно, на что можно выйти в реальности
18 июл 11, 17:55    [10991070]     Ответить | Цитировать Сообщить модератору
 Re: Перфоманс  [new]
igor2222
Member

Откуда: Харків
Сообщений: 1233
Crimean
рекавери модель? симпл / балк / фулл?
что грузится во время балка? на сколько?
если диски - какие? данные / журналы? может система подсвапливает? ОЗУ мало для ОС оставили?
если проц - не в кернеле случаем?
может в сетку тупо упор?

для получения baseline загрузите в базу с локалки адекватное файло и засеките время, посмотрите во что упираетесь
получите контрольные цифры - будет понятно, на что можно выйти в реальности


Всё же отвечу по-порядку.
1.Модель- симпл.
2.Грузится проц процентов на 40, ОЗУ фактически полностью. MSSQL съедает 7 из 7,5 гектаров.
3.Диск один - сервер на виртуалке. Естесственно немного подсвапливает. MSSQL стоит ограничить в аппетитах на ОЗУ?
4.Проц не в кернеле.
5.По сетке обмен не дотягивает до 100 Мбит, хотя скорость должна быть выше.
Особенно интересует по п.1 и 3
18 июл 11, 18:03    [10991109]     Ответить | Цитировать Сообщить модератору
 Re: Перфоманс  [new]
Crimean
Member

Откуда:
Сообщений: 13147
а что там делать процессору? если индексы все выключены?
и я бы попробовал сформировать baseline работая только на локальных ресурсах

по ОЗУ - да, я бы оставил для ОС порядка гига, может даже больше. были случаи, когда это ускоряло работу в целом
18 июл 11, 18:16    [10991160]     Ответить | Цитировать Сообщить модератору
 Re: Перфоманс  [new]
igor2222
Member

Откуда: Харків
Сообщений: 1233
Да в том то и дело, что ресурсы локальны (в пределах сети). Собственно поэтому и вопрос возник о скрости. Насчет ОЗУ- понятно. Прислушаемся. Сенкс.
18 июл 11, 18:23    [10991191]     Ответить | Цитировать Сообщить модератору
 Re: Перфоманс  [new]
Crimean
Member

Откуда:
Сообщений: 13147
я про развернуть локально инстанс и в него залить балком с локального диска файло адекватной ширины и размера
(не в боевую, если ресурсов мало, но достаточно мощно для локального инстанса)
после чего прикинуть сколько БЫ обрабатывалось без наворотов типа виртуалок и прочего
будет ориентир по скорости - будете трогать настройки и смотреть приближаетесь или отдаляетесь от ориентира
18 июл 11, 18:57    [10991362]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить