将 Oracle 语句ALTER SYSTEM KILL SESSION ...
视为...在某种程度上可与 PostgreSQL 语句相媲美SELECT pg_terminate_backend()
:
您知道ALTER SYSTEM KILL SESSION
PostgreSQL的任何 Oracle 类比(比 更好)SELECT pg_cancel_backend()
吗?
pg_terminate_backend
终止一个后端。您可以针对与调用该函数的用户具有完全相同角色的另一个后端执行此操作。在所有其他情况下,您必须是超级用户。
pg_cancel_backend
取消后端的当前查询。您可以针对与调用该函数的用户具有完全相同角色的另一个后端执行此操作。在所有其他情况下,您必须是超级用户。
18c 以下的版本:
SWITCH_CONSUMER_GROUP_FOR_SESS 过程
exec DBMS_RESOURCE_MANAGER.SWITCH_CONSUMER_GROUP_FOR_SESS (sid, serial, 'CANCEL_SQL');
Run Code Online (Sandbox Code Playgroud)
如果组名是'CANCEL_SQL',则当满足其他切换条件时将取消当前调用。
从 18c 开始:
cancel_sql_clause
使用此子句可终止消耗过多资源(包括并行服务器)的 SQL 操作。您必须提供会话 ID 和会话序列号以标识要取消的 SQL 语句。如果您不提供这些必需的参数,SQL 语句将不会运行。
session_id 是必需的,代表会话标识符。
serial_number 是必需的,代表会话的序列号。
@instance_id 是可选的。如果省略此参数,则使用当前会话的实例 ID。
sql_id 是可选的。如果省略此参数,则终止当前在指定会话中运行的 SQL 语句。
例子:
ALTER SYSTEM CANCEL SQL 'SID, SERIAL, @INST_ID, SQL_ID';
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
89 次 |
最近记录: |