怎么理解PostgreSQL中session hang情况
发表于:2024-11-27 作者:千家信息网编辑
千家信息网最后更新 2024年11月27日,这篇文章主要介绍"怎么理解PostgreSQL中session hang情况",在日常操作中,相信很多人在怎么理解PostgreSQL中session hang情况问题上存在疑惑,小编查阅了各式资料,
千家信息网最后更新 2024年11月27日怎么理解PostgreSQL中session hang情况
这篇文章主要介绍"怎么理解PostgreSQL中session hang情况",在日常操作中,相信很多人在怎么理解PostgreSQL中session hang情况问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"怎么理解PostgreSQL中session hang情况"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
在执行SQL的时候可能会碰到session hang的情况,这时候我们其实不知道是因为SQL本身执行很慢还是因为lock导致hang,因此一般情况下需要通过查询pg_stat_activity、pg_locks等系统表来确认。除之之外,PG还提供了通过statement timeout的超时机制来处理这种情况。
session 1
创建数据表,启动事务,执行查询
testdb=# create table t_timeout(id int);CREATE TABLEtestdb=# testdb=# begin;BEGINtestdb=# testdb=# select count(*) from t_timeout; count ------- 0(1 row)testdb=# select * from pg_locks where pid = pg_backend_pid(); locktype | database | relation | page | tuple | virtualxid | transactionid | classid | objid | objsubid | virtualtransaction | pid | mode | granted | fastpath ------------+----------+----------+------+-------+------------+---------------+---------+-------+----------+--------------------+------+-----------------+---------+---------- relation | 16384 | 11645 | | | | | | | | 3/94 | 1719 | AccessShareLock | t | t virtualxid | | | | | 3/94 | | | | | 3/94 | 1719 | ExclusiveLock | t | t relation | 16384 | 286770 | | | | | | | | 3/94 | 1719 | AccessShareLock | t | f(3 rows)testdb=#
session 2
执行alter table命令,hang住
testdb=# -- session 2testdb=# alter table t_timeout add column c1 int;-- 挂起
设置50ms超时,SQL返回超时错误
testdb=# begin;BEGINtestdb=# SET statement_timeout = 50;SETtestdb=# alter table t_timeout add column c1 int;ERROR: canceling statement due to statement timeouttestdb=#
不过这样的设置,需要DBA对SQL的执行时长有初步的估算,比如增加列操作,正常应在10ms内返回,那设置超时50ms是没有问题,但对于vacuum full这样的操作来说,设置为50ms就很不合适了。
testdb=# SET statement_timeout = 50;SETtestdb=# vacuum full;ERROR: canceling statement due to statement timeouttestdb=#
也就是说,设置超时会存在误伤,需谨慎使用。
到此,关于"怎么理解PostgreSQL中session hang情况"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!
情况
学习
更多
问题
帮助
查询
合适
实用
接下来
也就是
也就是说
事务
命令
数据
数据表
文章
方法
时候
时长
机制
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
商洛软件开发企业
4610服务器怎么样
msdb数据库在哪个位置
50个电脑需要服务器吗
网络安全标兵推荐表
武汉海航网络安全维护范围
工控网络技术机械手学习感受
网络安全最主要的是什么
手机服务器域名在哪里找
家长网络安全教育的感想
比特币挖矿 软件开发
戴尔服务器风扇异响
mysql数据库1148错误码
阿里云视频直播服务器
怎么设置云服务器语言退出后不变
运维和数据库管理
数据库物理存储结构主要指
jenkins服务器
数据库中码和外码是什么
曙光a620r-g服务器型号
软件开发乙方的职责
网络安全标兵推荐表
虚拟币钱包app用多个服务器么
论面向对象软件开发过程论文
大学网络安全专业讲座
宣传网络安全的时候写简报信息
网络安全黑客技术视频
信息网络安全监督检查记录表
互联网科技的经典语录
2017小迪网络安全培训