
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
29.10.2002, 14:22:49
|
|||
|---|---|---|---|
|
|||
Почему курсор стал выполняться очень медленно? |
|||
|
#18+
Есть курсор, который выбирает из таблицы данные. Потом в цикле эти данные обрабатываются - считается количество записей одного типа и пишется в таблицу тип - количество. В принципе это не так важно. Начиная со вчерашнего дня курсор стал выполняться очень медленно, порядка одной записи в секунду. Причем даже если убрать всю обработку данных. Запрос сам по себе не очень сложный - три INNER JOIN и пару условий. Выполняется(если не курсором бегать по каждой записи) почти мгновенно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
29.10.2002, 14:33:44
|
|||
|---|---|---|---|
Почему курсор стал выполняться очень медленно? |
|||
|
#18+
Возможно дело не в курсоре, а в операциях, которые выполняются внутри курсора ...., кстати описанные действие ( считается количество записей одного типа и пишется в таблицу тип - количество ) можно выполнить и без курсора ... и будет быстрей ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
29.10.2002, 14:39:29
|
|||
|---|---|---|---|
|
|||
Почему курсор стал выполняться очень медленно? |
|||
|
#18+
Курсор выполняется медленно даже если убрать все операции, просто цикл иставить. WHILE @@FETCH_STATUS = 0 BEGIN FETCH NEXT END Без курсора не получится, там проверка еще в паре таблиц справочных идет и если тaм нет записей, то добавляются пустые, чтобы ошибки на INSERT не было для FK ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
29.10.2002, 14:59:36
|
|||
|---|---|---|---|
Почему курсор стал выполняться очень медленно? |
|||
|
#18+
Я подозреваю, что без курсора сделать не просто, а очень просто. Опишите задачу. А по скорости работы курсора важно его объявление. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
29.10.2002, 15:22:11
|
|||
|---|---|---|---|
|
|||
Почему курсор стал выполняться очень медленно? |
|||
|
#18+
Задача: Служба доставки, клиенты, корреспонденция от клиентов куда-нибудь. Отчет - количество писем за несколько дней для каждого клиента. Курсор пробегает по таблице с корреспонденцией и делает следующее - если день и клиент совпадают с предыдущим и номер отличается на один - то счетчик++, иначе записать во временную таблицу для отчета данные и начать считать сначала. Потом в отчета идет group by клиент и получаем для каждого клиента. дата код письма к-во 22.10.2002 000012 - 000015 4 23.10.2002 000031 - 000032 2 23.10.2002 000035 1 В принципе можно наверное и без курсора. Просто написано не мной, поэтому не хотелось менять. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=46&mobile=1&tid=1819213]: |
0ms |
get settings: |
10ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
36ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
| others: | 198ms |
| total: | 324ms |

| 0 / 0 |
