Можно ли остановить выполнение SQL-запроса? - PullRequest
6 голосов
/ 23 августа 2011

Я хочу спросить, можно ли остановить SQL-запрос во время его выполнения.Я хочу сделать это так, чтобы, если кто-то еще выполнял тот же запрос в одно и то же время, приложение не зависало.Я использую Visual Studio C # в качестве внешнего интерфейса и оракула 11g в качестве моего внутреннего интерфейса

Ответы [ 3 ]

2 голосов
/ 24 августа 2011

Вы можете обернуть запрос sql в функцию pl / sql и получить блокировку (с помощью пакета dbms_lock) перед выполнением оператора select в функции / процедуре (конечно, вы должны снять блокировку в конце).Таким образом, вы можете сериализовать выполнение этой функции.

Другой вариант - использовать задания базы данных.

1 голос
/ 23 августа 2011

Какой запрос вы делаете, где это проблема?Скорее всего, это можно оптимизировать, чтобы решить любую проблему, с которой вы столкнулись.

Это не совсем реально сделать, потому что для каждого входящего запроса вам нужно будет увидеть, запускает ли его кто-то еще первым.,Это создаст много накладных расходов и сложности в системе.

0 голосов
/ 24 августа 2011

ну, безусловно, вы можете убить QUERY query_id.Чтобы протестировать открытую консоль mysql -u root -p, выполнить длинный запрос и ctrl + c;), но я не могу придумать какой-либо практический способ его использования, отслеживание запросов, которые вы могли бы потенциально хотеть убить и т. Д., Однако, если вам действительно это нужноэто, чтобы спасти мир, вам, вероятно, удастся

...