13.07.2005, 14:49 | #1 |
Участник
|
Коллеги, добрый день
Есть вопрос по оптимизации таблиц Navision. Хранилище данных на MS SQL Server'е. Подскажите альтернативные пути запуска процедуры оптимизации (не через клиента Navision База Данных - Информация - Таблицы - Оптимизировать). Хотелось бы уметь запускать это задание пакетом уже на SQL Server'е. Возможно ли такое? ps. наш консультант-внедренец вообще не слышал что это за зверь - оптимизация Заранее спасибо. |
|
13.07.2005, 15:09 | #2 |
Участник
|
Оптимизацию SIFT-индексов средствами сервера делать достаточно муторно. Придется убивать SIFT-таблицы, после чего запускать код их построения. У каждой таблицы - свой код (см соответствующие SQL-триггера). Чуть поменял что в таблице Навижн, влияющее на SIFT-индекс - переделка сивкел-кода. Гиморное это дело, в общем.
Проще вообще отключить построение SIFT-таблиц везде, где только возможно. А оставшиеся можно и ручками изредка встряхнуть. |
|
13.07.2005, 15:12 | #3 |
Участник
|
А что конкретно делает процедура оптимизации кроме как чистит в SIFT таблицах нулевые строки?
|
|
13.07.2005, 16:55 | #4 |
Участник
|
Цитата:
Сообщение от SVG
А что конкретно делает процедура оптимизации кроме как чистит в SIFT таблицах нулевые строки?
Соответственно запуск этой штуки (оптимизации индексов средствами сервера) в ночное время лишает юзеров возможности сачковать во время рабочее, ссылаясь на то что Навижн тормозит жутко |
|
13.07.2005, 17:05 | #5 |
Участник
|
2konrad: вы можете подробнее изложить последовательность действий на SQL Server'е для оптимизации? Если у вас есть код процедуры, выполняющей ее - буду премного благодарен
Заранее спасибо. |
|
13.07.2005, 17:57 | #6 |
Участник
|
В плане процедуры - у меня эта работа еще не закончена - процедура не отлажена. А планировалась интелектуальная процедура с анализом таблиц, накоплением статистики и перестроением индексов с подбором FillFactor оптимального для каждого ключа каждой таблицы. Но сильно широко замахнулся - теперь никак не завершу .
А так можно на SQL-сервере создать (или включить в существующий) DB Maintenance Plan с перестройкой индексов и запускать его по ночам с некоторой периодичностью - раз в неделю, например. Недостаток - долго работает. |
|
13.07.2005, 18:04 | #7 |
Участник
|
2konrad: А какая cобственно связь между индексами на sql'ных таблицах и SIFT индексами, лежащими в отдельных таблицах на SQL?
т.е. в общем виде - во всех таблицах с SIFT индексами удалить строки со всеми нулевыми суммами и сделать реиндексацию БД? Я правильно понял? В идеале мне нужно знать - что именно делает "Оптимизация" Навиженовская. Спасибо. |
|
14.07.2005, 10:07 | #8 |
Участник
|
Как это какая? Добавляешь в индекс, по которому строится SIFT-таблица, новое поле. И все - рукописный сиквел-код надо редактировать.
Как работает навижн-оптимизация на таблицах с SIFT-подтаблицами - под отладчиком не смотрел. |
|
14.07.2005, 10:40 | #9 |
Участник
|
Не так давно мне довелось читать очень подробный документ по оптимизации работы Navision на SQL Server'е. Там были расписаны все аспекты: оптимизация SIFT, оптимизация ключей и др. Возможно даже это был какой-то выпуск, поскольку, если мне не изменяет память, там были еще и некоторые инструменты.
К сожалению, сейчас, как не пытался, я этот документ найти не смог. |
|
14.07.2005, 11:24 | #10 |
Участник
|
2Alterant: Если найдется документик - выложите его в открытый доступ или по почте? заранее спасибо.
2konrad: по SQL индексам все понятно. Вопрос больше в том в чем заключается оптимизация SIFT таблиц. Только ли в удалении записей с 0-ми суммами. Кстати смотрел профайлером оптимизацию таблицы - реально на основной таблице пересоздаются все индексы - поэтому собственно так тормозит эта процедура. Вопрос риторический - достаточно ли просто почистить SIFT таблицы - для оптимизации производительности. Если да - это существенно упростит и ускорит задачу. У меня оптимизация таблицы размером ~9ГБ (данные + индексы - 26 SIFT таблиц) занимает порядка 2,5 часов - общий объем уменьшает в 2 раза примерно... но по времени выполнения - no comments вообще... с учетом того, что у меня несколько фирм в одной БД. Оптимизацию я буду делать неделю... |
|
14.07.2005, 13:00 | #11 |
Участник
|
Ozzy, я Вас понимаю. !
У меня хоть размеры таблиц значительно меньше, но фирм 40 штук. И в оптимизацию того и полез, что стандартная Навижновская по времени не лезет ни в какие рамки. А один из документов по оптимизации тут лежит. Я его выкладывал где-то в конце прошлого года. Вроде как есть еше другой - но у меня его нету. |
|
15.07.2005, 10:00 | #12 |
Участник
|
Ozzy
И всем кто пользует SIFT. Посмотрите сколько записей в SIFT таблицах пожалуйста. И напишите в форум - сколько строк в несущей таблице и сколько строк в 26 суммовых таблицах. Лучше раздельно по суммовым. Ну или хотя бы среднее число строк в суммовой таблице. типа Value Entry 2 млн VE$0 1.5млн VE$1 4млн и так далее... |
|
15.07.2005, 10:23 | #13 |
Участник
|
Забыл про суммовые таблицы как про страшный сон.
Ушел в отпуск на 2 недели. :P До августа, коллеги! |
|
15.07.2005, 11:10 | #14 |
Участник
|
Цитата:
Сообщение от Ozzy
2konrad: по SQL индексам все понятно. Вопрос больше в том в чем заключается оптимизация SIFT таблиц. Только ли в удалении записей с 0-ми суммами.
|
|
15.07.2005, 12:45 | #15 |
Участник
|
Value Entry 4581943
5802$0 704239 5802$1 549693 5802$2 897123 5802$3 25786 5802$4 21202 5802$5 14135 5802$6 19 5802$7 6372 выводы? |
|
15.07.2005, 13:20 | #16 |
Участник
|
Wizard
Выводы сами делайте, я просто любопытства ради У вас все неплохо |
|
18.07.2005, 10:26 | #17 |
Участник
|
Payroll Ledger Entry - строк 328050.
строк по индексам: 14821$1 2537719 14821$2 1389953 14821$3 2646429 14821$4 2973752 14821$5 1560092 14821$6 2028734 14821$7 8560 14821$8 2817 14821$9 3688 14821$10 493491 14821$11 55102 14821$12 2694917 14821$13 11380 14821$14 4410334 14821$15 4573703 14821$16 1264885 14821$17 2867862 14821$18 157 14821$19 3688334 14821$20 10039 14821$21 1142355 14821$22 3352309 14821$23 2696865 14821$24 1337676 14821$25 2207855 14821$26 323848 нда... что же предлагаешь отключить почти все индексы? первое что приходит в голову... |
|
18.07.2005, 10:43 | #18 |
Участник
|
Ozzy
В вашем случае адназначна все выключать, потом внимательно анализировать длительные запросы и строить сифты. Пример Wizard'а неплох, хотя и там можно выключить два первых ключа, но это зависит от того, для чего эти ключики нужны - если для репорта который раз в день запускают - выключить, а если для каких-то частых или сильн тяжлых расчетов - пусть живут. А у вас похоже что галка Maitain SIFT стоит по умолч.в ключах, и не настроены даже уровни SIFT'a. Так что выключайте, читайте внимательно документацию о SIFT и начинайте оптимизировать ключи |
|
18.07.2005, 11:07 | #19 |
Участник
|
2SVG: В моем случае необходимо пинать консультанта видимо. Вобщем на вид все печально... Я боюсь что ключи эти могут использоваться в расчетах как-раз...
|
|
18.07.2005, 11:30 | #20 |
Участник
|
С зарплатой вообще кома. В Payroll Ledger Entrys страх и ужас. Ответственные сотрудники МБС подлежат расстрелу за такое отношение к системе. Или увольнению за непрофессионализм.
Консультантов пинать не нужно. Это не мы плохие, это система такая... |
|