人大金仓分析型数据库检查数据库活动

目录

检查活动会话

检查锁

检查系统状态

检修问题查询


检查活动会话

        pg_stat_activity 系统目录视图为每个服务器进程展示了一行,它显示数据库OID、数据库名、 进程ID、用户OID、用户名、当前查询、当前查询开始执行的时间、进程开始时间、客户端地址和端口号。 要获得大部分有关当前系统负载的信息,可以作为数据库超级用户查询这个视图。例如:

SELECT * FROM pg_stat_activity;

检查锁

        pg_locks系统目录视图允许用户查看有关未解除的锁的信息。如果一个事务在一个对象上持有一个锁, 任何其他查询在能够继续之前都必须等待该锁被释放。在pg_locks中检查未授予的锁,以便帮助确定数据库客户端会话之间的竞争。 pg_locks 提供了数据库系统中所有锁的一个全局视图,而不只是那些与当前数据库相关的锁。 用户可以把它的relation列与pg_class.oid连接在一起以确定被锁住的关系(例如表), 但这只对当前数据库中的关系能正确地工作。用户可以把pid列 连接到pg_stat_activity.procpid以查看更多会话持有或者等待持有锁的信息。例如:

SELECT locktype, database, c.relname, l.relation,
l.transactionid, l.pid, l.mode, l.granted,
a.current_query
FROM pg_locks l, pg_class c, pg_stat_activity a
WHERE l.relation=c.oid AND l.pid=a.procpid
ORDER BY c.relname;
         如果用户把资源组用于负载管理,在一个组中等候的查询也会显示在pg_locks中。 要查看一个资源组有多少查询正在等待运行,可使用gp_resgroup_status 系统目录视图。例如:  
SELECT * FROM gp_toolkit.gp_resgroup_status;
        同样的,如果用户把资源队列用于负载管理,在一个队列中等候的查询也会显示在 pg_locks 。要查看一个资源队列中有多少查询正在等待运行, 可使用 gp_resqueue_status 系统目录视图。例如:
SELECT * FROM gp_toolkit.gp_resqueue_status;

检查系统状态

        用户可以使用ps、topiostatvmstatnetstat之类之类的系统监控工具监控数据库阵列中主机上的数据库活动。 这些工具能够帮助确定当前运行在系统上的数据库进程以及资源占用最多(CPU、内存、磁盘I/O或者网络活动)的任务。查看这些统计信息以确定降低数据库性能的查 询, 它们会让系统超载并且消耗极多的资源。数据库的管理工具gpssh允许用户在多个主机上 同时运行这些系统监控命令。

        用户可以创建并使用数据库的session_level_memory_consumption视图,它为在数据库上运行查询的会话提供有关当前内存利用和闲置时间的信息。

检修问题查询

        如果一个查询执行得很糟糕,查看它的查询计划以帮助确定问题。 EXPLAIN命令展示一个给定查询的查询计划。当查询执行期间发生内存不足事件时,数据库内存核算框架会报告事件发生时运行的每一个查询的详细内存消耗。 这些信息被写入到数据库的实例日志中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值