powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Почему курсор стал выполняться очень медленно?
6 сообщений из 6, страница 1 из 1
Почему курсор стал выполняться очень медленно?
    #32062717
Dmitry Trukhan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть курсор, который выбирает из таблицы данные. Потом в цикле эти данные обрабатываются - считается количество записей одного типа и пишется в таблицу тип - количество.
В принципе это не так важно.
Начиная со вчерашнего дня курсор стал выполняться очень медленно, порядка одной записи в секунду. Причем даже если убрать всю обработку данных.
Запрос сам по себе не очень сложный - три INNER JOIN и пару условий. Выполняется(если не курсором бегать по каждой записи) почти мгновенно.
...
Рейтинг: 0 / 0
Почему курсор стал выполняться очень медленно?
    #32062726
Sanek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Возможно дело не в курсоре, а в операциях, которые выполняются внутри курсора ...., кстати описанные действие ( считается количество записей одного типа и пишется в таблицу тип - количество ) можно выполнить и без курсора ... и будет быстрей ...
...
Рейтинг: 0 / 0
Почему курсор стал выполняться очень медленно?
    #32062737
Dmitry Trukhan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Курсор выполняется медленно даже если убрать все операции, просто цикл иставить.
WHILE @@FETCH_STATUS = 0
BEGIN
FETCH NEXT
END

Без курсора не получится, там проверка еще в паре таблиц справочных идет и если тaм нет записей, то добавляются пустые, чтобы ошибки на INSERT не было для FK
...
Рейтинг: 0 / 0
Почему курсор стал выполняться очень медленно?
    #32062746
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я подозреваю, что без курсора сделать не просто, а очень просто. Опишите задачу.

А по скорости работы курсора важно его объявление.
...
Рейтинг: 0 / 0
Почему курсор стал выполняться очень медленно?
    #32062764
Dmitry Trukhan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Задача:
Служба доставки, клиенты, корреспонденция от клиентов куда-нибудь.
Отчет - количество писем за несколько дней для каждого клиента.
Курсор пробегает по таблице с корреспонденцией и делает следующее - если день и клиент совпадают с предыдущим и номер отличается на один - то счетчик++, иначе записать во временную таблицу для отчета данные и начать считать сначала. Потом в отчета идет group by клиент и получаем для каждого клиента.
дата код письма к-во
22.10.2002 000012 - 000015 4
23.10.2002 000031 - 000032 2
23.10.2002 000035 1

В принципе можно наверное и без курсора. Просто написано не мной, поэтому не хотелось менять.
...
Рейтинг: 0 / 0
Почему курсор стал выполняться очень медленно?
    #32063133
Dmitry Trukhan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Проблема решилась добавлением параметра FAST_FORWARD при объявлении курсора.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Почему курсор стал выполняться очень медленно?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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