クエリタイムアウト

(8.0)
select @@session.max_execution_time;
set @@session.max_execution_time = 3000;
select @@session.max_execution_time;


select sleep(10);

 

(12cR1)
set time on
set timing on

BEGIN
DBMS_RESOURCE_MANAGER.CREATE_PENDING_AREA();
END;
/

BEGIN
DBMS_RESOURCE_MANAGER.CREATE_CONSUMER_GROUP (
CONSUMER_GROUP => 'OLTP',
COMMENT => 'OLTP applications');
END;
/

BEGIN
DBMS_RESOURCE_MANAGER.SET_CONSUMER_GROUP_MAPPING(
ATTRIBUTE => DBMS_RESOURCE_MANAGER.ORACLE_USER,
VALUE => 'TEST',
CONSUMER_GROUP => 'OLTP');
END;
/

BEGIN
DBMS_RESOURCE_MANAGER.CREATE_PLAN(
PLAN => 'DAYTIME',
COMMENT => 'More resources for OLTP applications');
END;
/

BEGIN
DBMS_RESOURCE_MANAGER.CREATE_PLAN_DIRECTIVE (
PLAN => 'DAYTIME',
GROUP_OR_SUBPLAN => 'OLTP',
COMMENT => 'OLTP group',
MGMT_P1 => 90,
SWITCH_FOR_CALL => TRUE,
SWITCH_ELAPSED_TIME => 3,
SWITCH_GROUP => 'CANCEL_SQL');

DBMS_RESOURCE_MANAGER.CREATE_PLAN_DIRECTIVE (
PLAN => 'DAYTIME',
GROUP_OR_SUBPLAN => 'OTHER_GROUPS',
COMMENT => 'This one is required',
MGMT_P1 => 10);
END;
/

BEGIN
DBMS_RESOURCE_MANAGER.VALIDATE_PENDING_AREA();
END;
/

BEGIN
DBMS_RESOURCE_MANAGER.SUBMIT_PENDING_AREA();
END;
/

show parameter resource_manager_plan
alter system set resource_manager_plan = DAYTIME;
show parameter resource_manager_plan


execute dbms_lock.sleep(10);

(11)

\timing 1

show statement_timeout;
set statement_timeout = 3000;
show statement_timeout;


select pg_sleep(10);

 

 

(2022)

https://learn.microsoft.com/ja-jp/sql/database-engine/configure-windows/configure-the-query-wait-server-configuration-option?view=sql-server-ver16

メモリを集中的に使用するクエリ (並べ替えやハッシュ演算に関係するクエリなど) は、そのクエリの実行に使用できるメモリが不足しているとキューに登録されます。
[クエリの待機] オプションは、タイムアウトになるまでのクエリのリソース待ち時間を秒数 (0 ~ 2147483647) で指定します。
このオプションの既定値は -1 です。 このとき、タイムアウトは予測されるクエリ コストの 25 倍になります。

 

USE test;  
GO  
EXEC sp_configure 'show advanced options', 1;  
GO  
RECONFIGURE ;  
GO  
EXEC sp_configure 'query wait', 0 ;  
GO  
RECONFIGURE;  
GO