Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Уменьшение скорости выполнения stored procedure для массива из 30000 записей / 10 сообщений из 10, страница 1 из 1
17.01.2005, 15:56
    #32868216
cg_roma
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Уменьшение скорости выполнения stored procedure для массива из 30000 записей
Здравствуйте, All

Наблюдается следующая проблема: для 30-40 тыс. записей выполняется
определенная SP, вызывающая вложенные SP.
Для первых 5-10 тыс. записей выполнение главной SP занимает менее секунды на
запись. В дальнейшем время выполнения процедуры увеличивается до 5 с для
одной записи.
Объем необходимых операций, выполняемых для любой из записей, примерно
одинаков. Чувствуется захламливание или переполнение чего-то чем-то.
Подскажите, пожалуйста, в каком направлении работать.
...
Рейтинг: 0 / 0
17.01.2005, 16:13
    #32868266
Уменьшение скорости выполнения stored procedure для массива из 30000 записей
Проверь наличие подходящих для работы индексов
Также очень помогает профайлер
...
Рейтинг: 0 / 0
17.01.2005, 16:14
    #32868267
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Уменьшение скорости выполнения stored procedure для массива из 30000 записей
cg_romaПодскажите, пожалуйста, в каком направлении работать.
Предлагаю начать работать с указания названия СУБД и ее версии.
...
Рейтинг: 0 / 0
17.01.2005, 16:36
    #32868368
cg_roma
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Уменьшение скорости выполнения stored procedure для массива из 30000 записей
На индексы обращал внимание. Для любой отдельно взятой записи процедура
отрабатывает за приемлемое время. Задержка появляется именно после обработки
нескольких тысяч записей. Профайлером БД гонял. Наверное недостаточно.
...
Рейтинг: 0 / 0
17.01.2005, 16:41
    #32868389
cg_roma
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Уменьшение скорости выполнения stored procedure для массива из 30000 записей
ASA 8.0.3.5002
...
Рейтинг: 0 / 0
17.01.2005, 18:33
    #32868734
mustlive
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Уменьшение скорости выполнения stored procedure для массива из 30000 записей
Похожее я наблюдал при заливке данных (большого кол-ва) в новую базу. Те же симптомы: начинает заливать за здравие, кончает за упокой. Тогда мне помогли COMMIT'ы между заливкой таблиц. А здесь даже не знаю чем помочь. У тебя видимо тоже много insert'ов идет в процессе ее работы?
...
Рейтинг: 0 / 0
17.01.2005, 18:49
    #32868761
cg_roma
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Уменьшение скорости выполнения stored procedure для массива из 30000 записей
Да. На каждую запись вставляется 1-2 новых
...
Рейтинг: 0 / 0
18.01.2005, 00:12
    #32868974
mustlive
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Уменьшение скорости выполнения stored procedure для массива из 30000 записей
Как я уже говорил, я не понял, в чем дело, но получилось победить.

Для начала, может быть попробовать через каждую 1000 записей делать COMMIT? Так, для теста. Хотя, потом откатить тяжеловато будет

А у тебя данные в глобальные таблицы вставляются, или во временные?
...
Рейтинг: 0 / 0
18.01.2005, 06:24
    #32869035
golsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Уменьшение скорости выполнения stored procedure для массива из 30000 записей
Массовая вставка, обновление данных в одной транзакции. (это касается не только Sybase). Пока log транзакции умещается в памяти - операция идет быстро. А потом начинается swap loga на диск. Наличие индексов тоже тормозит особенно при вставке. Т.к. вставляемые записи могут приводить к нарушению балансировки бинарного дерева индексов. Иногда лучше грохнуть индекс и создать его заново после вставки.
...
Рейтинг: 0 / 0
19.01.2005, 12:01
    #32871913
cg_roma
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Уменьшение скорости выполнения stored procedure для массива из 30000 записей
Да, причина замедления в длинной транзакции. Всем спасибо за участие
...
Рейтинг: 0 / 0
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Уменьшение скорости выполнения stored procedure для массива из 30000 записей / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]