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

ET工具快速上手:从入门到精通的使用步骤

86

1 前言

ET
工具是DM
数据库内置的 SQL 性能分析工具,具备统计 SQL 语句执行过程中各操作符实际开销之功能,为 SQL 优化提供依据及指导。该工具能够协助数据库管理员与开发人员深入理解 SQL 语句的执行细节,识别性能瓶颈,并据此采取相应的优化措施。利用 ET 工具,用户能够清晰地观察到 SQL 语句中各操作符的执行时间、CPU 使用率、内存消耗等关键性能指标,这些数据对于精确地定位性能问题极为关键。

2 使用示例

默认情况下,不启用ET
功能。另外新版只需调整MONITOR_SQL_EXEC
参数即可。

注意:
ET
功能的开启将对数据库整体性能造成一定影响,优化工作结束后尽量关闭该功能以提升数据库整体运行效率;DM 数据库新版本的开启 ET 功能时需要设置: ENABLE_MONITOR = 1
(默认打开) MONITOR_TIME = 1
(默认打开) MONITOR_SQL_EXEC = 1
(设置成 1)。 部分 DM 数据库版本的开启方式可能存在一定区别,详细内容请参照安装目录 doc 下《系统管理员手册》。

select
    para_name,
    para_value,
    para_type
from
    v$dm_ini
where
    para_name in ('ENABLE_MONITOR''MONITOR_TIME''MONITOR_SQL_EXEC');

SQL> select
2       para_name,
3       para_value,
4       para_type
5   from
6       v$dm_ini
7   where
8       para_name in ('ENABLE_MONITOR''MONITOR_TIME''MONITOR_SQL_EXEC');

行号     PARA_NAME        PARA_VALUE PARA_TYPE
---------- ---------------- ---------- ---------
1          ENABLE_MONITOR   1          SYS
2          MONITOR_SQL_EXEC 0          SESSION

已用时间: 14.809(毫秒). 执行号:3779601.
SQL>

使用SP_SET_PARA_VALUE
开启参数

SQL> SP_SET_PARA_VALUE(1,'MONITOR_SQL_EXEC',1);
DMSQL 过程已成功完成
已用时间: 26.344(毫秒). 执行号:3779602.
SQL>
SQL>
SQL> select
2       para_name,
3       para_value,
4       para_type
5   from
6       v$dm_ini
7   where
8       para_name in ('ENABLE_MONITOR''MONITOR_TIME''MONITOR_SQL_EXEC');

行号     PARA_NAME        PARA_VALUE PARA_TYPE
---------- ---------------- ---------- ---------
1          ENABLE_MONITOR   1          SYS
2          MONITOR_SQL_EXEC 1          SESSION

已用时间: 11.808(毫秒). 执行号:3779603.
SQL>

在使用et
之前,必须先执行一次SQL
,拿到执行号:183004

SQL> SET AUTOTRACE TRACE
SQLselect * from v$dm_ini where PARA_NAME='MONITOR_SQL_EXEC';

行号     PARA_NAME        PARA_VALUE MIN_VALUE MAX_VALUE DEFAULT_VALUE MPP_CHK SESS_VALUE FILE_VALUE DESCRIPTION                           PARA_TYPE SYNC_FLAG SYNC_LEVEL PARA_MODULE
---------- ---------------- ---------- --------- --------- ------------- ------- ---------- ---------- ------------------------------------- --------- --------- ---------- -----------
1          MONITOR_SQL_EXEC 1          0         2         0             N       1          1          Whether to enable monitor sql executeSESSION   ALL_SYNC  CAN_SYNC   monitor


1   #NSET2: [1, 25->1, 624]
2     #PRJT2: [1, 25->1, 624]; exp_num(13), is_atom(FALSE)
3       #SLCT2: [1, 25->1, 624]; V$DM_INI.PARA_NAME = 'MONITOR_SQL_EXEC'
4         #DSCN: [1, 1014->807, 624]; SYSINDEXV$DM_INI(V$DM_INI)

Statistics
-----------------------------------------------------------------
        0           data pages changed
        0           undo pages changed
        150         logicalreads
        0           physicalreads
        0           redosize
        1147        bytes sent toclient
        123         bytes received fromclient
        1           roundtrips to/fromclient
        0           sorts (memory)
        0           sorts (disk)
        0           rows processed
        0           io waittime(ms)
        24          exec time(ms)


已用时间: 24.724(毫秒). 执行号:3779606.
SQL>

上面执行号为3779606

SQL> et(183004);
SQL> et(3779606);

行号     OP    TIME(US)             PERCENT RANK                 SEQ         N_ENTER     MEM_USED(KB)         DISK_USED(KB)        HASH_USED_CELLS      HASH_CONFLICT        DHASH3_USED_CELLS DHASH3_CONFLICT HASH_SAME_VALUE
---------- ----- -------------------- ------- -------------------- ----------- ----------- -------------------- -------------------- -------------------- -------------------- ----------------- --------------- --------------------
1          PRJT2 10                   0.04%   4                    2           4           0                    0                    0                    0                    NULL              NULL            0
2          SLCT2 61                   0.25%   3                    3           6           0                    0                    0                    0                    NULL              NULL            0
3          NSET2 150                  0.62%   2                    1           3           0                    0                    0                    0                    NULL              NULL            0
4          DSCN  23802                99.08%  1                    4           4           0                    0                    0                    0                    NULL              NULL            0



Statistics
-----------------------------------------------------------------
        0           data pages changed
        0           undo pages changed
        333         logical reads
        0           physical reads
        0           redo size
        1627        bytes sent to client
        77          bytes received from client
        1           roundtrips to/from client
        2           sorts (memory)
        0           sorts (disk)
        1           rows processed
        0           io wait time(ms)
        53          exec time(ms)


已用时间: 53.943(毫秒). 执行号:3779608.
SQL>

ET
结果中每一行对应一个操作符,每一列对应的解释如下:

OP
: 操作符名称
TIME(US)
: 执行耗时,以微秒为单位
PERCENT RANK
: 在整个计划中用时占比
SEQ
: 计划中的序号
N_ENTER
:操作符进入的次数
--随着版本变化参数也在不断增加
MEM_USED(KB)
:表示 SQL 语句在执行过程中使用的内存大小,单位为千字节(KB)。
DISK_USED(KB)
:代表 SQL 操作在执行过程中使用磁盘空间的大小,单位为千字节(KB)。
HASH_USED_CELLS
:在哈希操作(如哈希连接、哈希聚合等)中,该指标表示被使用的哈希桶(cells)的数量。
HASH_CONFLICT
:在哈希操作中,当不同的数据元素被映射到同一个哈希桶时就会发生哈希冲突。
DHASH3_USED_CELLS
:特定类型(比如某种深度哈希或者三阶段哈希操作)下被使用的哈希桶数量。
DHASH3_CONFLICT :与 HASH_CONFLICT 类似,不过是针对 DHASH3 这种特定哈希操作所记录的冲突次数。
HASH_SAME_VALUE
:表示在哈希操作中遇到相同哈希值的元素数量。

然后就可以与执行计划对应起来看了。

3 普通用户查看 ET 功能

只需将权限授权给普通用户即可,如下所示:

grant EXECUTE on "SYS"."ET" to T1;


文章转载自国产数据库学堂,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论