可以使用 onstat -g mgm 命令显示有关内存分配管理器(MGM)资源信息。
可以使用 onstat -g mgm 命令监视 MGM 如何协调内存使用和扫描线程。此命令读取共享内存结构并提供在命令执行时的精确统计信息。
memory quantum = DS_TOTAL_MEMORY / DS_MAX_QUERIES
memory quantum = 4000 kilobytes / 31 = 129 kilobytes
数据库服务器根据分配内存的需求调整 quantum 的值。因此,onstat -g mgm 命令显示的 quantum 值并非一直精确。
scan thread quantum 总是等于 1。
图: onstat -g mgm 命令输出
Memory Grant Manager (MGM) -------------------------- MAX_PDQPRIORITY: 100 DS_MAX_QUERIES: 31 DS_MAX_SCANS: 1048576 DS_NONPDQ_QUERY_MEM: 128 KB DS_TOTAL_MEMORY: 4000 KB Queries: Active Ready Maximum 0 0 31 Memory: Total Free Quantum (KB) 4000 4000 128 Scans: Total Free Quantum 1048576 1048576 1 Load Control: (Memory) (Scans) (Priority) (Max Queries) (Reinit) Gate 1 Gate 2 Gate 3 Gate 4 Gate 5 (Queue Length) 0 0 0 0 0 Active Queries: None Ready Queries: None Free Resource Average # Minimum # -------------- --------------- --------- Memory 0.0 +- 0.0 500 Scans 0.0 +- 0.0 1048576 Queries Average # Maximum # Total # -------------- --------------- --------- ------- Active 0.0 +- 0.0 0 0 Ready 0.0 +- 0.0 0 0 Resource/Lock Cycle Prevention count: 0
输出的第一部分显示 PDQ 配置参数的值。
输出的第二部分描述 MGM 内部控制信息。它包括四组的信息。第一组是 Queries:
下一组是 Memory:
下一组是 Scans:
该部分输出的最后一组描述 MGM Load Control:
输出的下一部分 Active Queries 描述 MGM 活动的和就绪的队列。这部分输出显示在每个入口等待的查询的数量:
输出的下一部分 Free Resource 提供 MGM 可用资源的统计信息。这个部分和最后部分的数值反映自系统初始化或自上次 onmode -Q 、-M 或 -S 命令以来的统计信息。这部分输出包含以下信息:
输出的下一部分 Queries 提供关于 MGM 查询的统计信息: