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

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

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

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


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