в базе данных преимуществ является запрос "активным", пока он не будет "завершен"? - PullRequest
0 голосов
/ 26 августа 2010

Я пытаюсь отследить проблему с производительностью, просматривая вкладку «Активные запросы» в Advantage Management Utility.

В документации для этой вкладки указано:

Active: True, если запрос активно обрабатывается сервером.Запрос должен быть активным, чтобы быть отмененным.

Является ли запрос активным до его завершения?Или он может стать неактивным по другой причине, например, при ожидании ресурса (дисковый ввод-вывод или блокировка)?

Я спрашиваю, потому что я только 1-2 запроса в «активном» состоянии в данный момент, нотакже работает более 20 рабочих потоков.Что для меня мало смысла.

1 Ответ

2 голосов
/ 26 августа 2010

Активный означает, что сервер активно ищет строки для заполнения курсора для запроса.Он будет оставаться активным до тех пор, пока не будет создано достаточно строк для удовлетворения запроса.Если запрос должен ждать блокировки или дискового ввода-вывода, он останется активным.Одним из предостережений к этому являются живые курсоры.Живые курсоры обрабатываются клиентом как таблицы , а не как операторы SQL.Являются ли операторы SQL открытыми, но не активными активными курсорами?

Вы можете попробовать вызвать хранимую процедуру sp_mgGetWorkerThreadActivity , чтобы узнать, какие команды выполняют другие потоки.

...