暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

查询超时变量

SQL新手 2022-12-08
1912

OceanBase 数据库的查询超时功能用于避免长时间不返回的查询长期占用工作线程资源以及可能占用 CPU 资源。

OceanBase 数据库租户内部执行查询的工作线程数跟租户的 CPU 个数相关,所以工作线程是很稀有的资源。如果查询长时间不返回,就会一直占用此工作线程资源。

OceanBase 数据库的查询超时时间默认由租户变量 ob_query_timeout 控制,默认值是 100000000(单位微秒)。当查询时间超过该变量值后,会返回错误 -4012(HY000): Timeout

超时变量的默认值对于 OLTP 类业务来说是合理的,但是对于 OLAP 类业务就不一定适用,这种情况下,用户可以选择在会话级别调整租户超时变量的值,或者使用 SQL Hint 设置查询超时时间。

示例 1:查看当前查询超时时间

obclient> SHOW VARIABLES LIKE 'ob_query_timeout';
+------------------+----------+
| Variable_name    | Value    |
+------------------+----------+
| ob_query_timeout | 60000000 |
+------------------+----------+
1 row in set
复制

示例 2:在会话级别调整租户的查询超时时间

obclient> SET SESSION ob_query_timeout=10000000;
Query OK, 0 rows affected 

obclient> SELECT SLEEP(11);
ERROR 4012 (HY000): Timeout
复制

示例 3:使用 SQL Hint 设置查询超时时间

obclient> SELECT /*+ QUERY_TIMEOUT(100000000) */ SLEEP(11);
+-----------+
| SLEEP(11) |
+-----------+
|         0 |
+-----------+
1 row in set
复制
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论