上海腾科教育达梦数据库培训干货分享DM7常用动态性能视图及使用方法

时间:2024-05-21 10:05:23

达梦数据库中的动态性能视图能自动收集数据库中的一些活动信息,系统管理员根据这些信息可以了解数据库运行的基本情况,为数据库的维护和优化提供依据。动态性能视图信息也是数据库中数据字典的一部分,与我们平常所说的数据字典不同的是,平常意义上的数据字典是指静态数据字典信息,也即用户访问数据字典信息时,内容不会发生改变,而动态视图信息是随着数据库的运行随时更改,具有一定的即时性。

 

本文将介绍DM7中常用的动态性能视图及其用法,如果各位想对这一部分内容进行更加深入的学习,可以参考达梦管理员手册中《动态管理/性能视图》章节。

 

注:本文实验环境的DM7数据库版本为:

DM Database Server x64 V7.1.6.46-Build(2018.02.08-89107)ENT 

 

一.视图分类

1.系统状态监控类: v$sysstat,v$datafile,v$rlog,v$ckpt_history,v$database,v$instance,V$resource_limit,v$danger_event。

2.内存监控类:

V$bufferpool,v$cacheitem,v$cachepln,v$dict_cache,v$mem_pool。

3.会话,锁,事物类: V$sessions,v$session_history,v$lock,v$deadlock_history,v$trx,v$trxwait。

4.等待事件类: V$event_name,v$session_wait_history,v$system_event,v$session_event。

5.sql历史类:

V$sql_history,v$long_exec_sqls,v$system_long_exec_sqls,v$sort_history,v$pre_return_history,v$runtime_err_history,v$sqltext。

6.配置文件类:

V$dm_ini,v$dm_arch_ini,v$parameter,v$dm_mal_ini。

 

二.常用视图用法

1.v$BUFFERPOOL

用法:v$bufferpool常用来查看数据库缓冲池的命中率,通过查看各个缓存 池的命中率来决定是否需要调整缓存池大小。

可以使用如下sql语句查看命中率:

 

上海腾科教育达梦数据库培训干货分享DM7常用动态性能视图及使用方法

 

2.v$CACHEITEM

用法:在没有使用结果缓存集的情况下,v$cacheitem用于记录缓存的sql和执行计划。由于sql缓存池可以最大动态的增长至CACHE_POOL_SIZE的三倍大小,所以如果CACHE_POOL_SiZE设置不合理,可能会造成使用较多的虚拟内存,从而导致较多的内存页pagein/out,增加较大的系统负担。可以使用该视 图动态的观察sql缓存池的使用情况。

 

可以使用如下sql语句:

 

 

上海腾科教育达梦数据库培训干货分享DM7常用动态性能视图及使用方法

 

3.v$CACHEPLN

用法:在有些版本中,在sql执行计划错误的情况下,如果对表以及列都收 集过统计信息,并且尝试使用hint提示干预执行计划,但是有些sql的执行计划 依然没有改变,可以利用该视图找到sql语句所对应的sql执行计划地址,使 用SP_CLEAR_PLAN_CACHE清除sql缓存池中的执行计划,确保sql语句下次执行时可以重新解析。

 

例如:

 

 

上海腾科教育达梦数据库培训干货分享DM7常用动态性能视图及使用方法

 

 

4.v$CKPT_HISTORY

用法:该视图记录了检查点的详细信息,可以直接查看该视图确认检查点 是否正常。

 

5.v$DATAFILE

用法:该视图记录了数据库文件的使用状态,通常可以和v$TABLESPACE视图进行关联查询。

 

例如:

 

 

上海腾科教育达梦数据库培训干货分享DM7常用动态性能视图及使用方法

 

6.v$DATABASE

用法:用于查看数据库相关信息,类似是否归档,数据库名称,创建时间,数据库状态等等。

 

例如:

  

上海腾科教育达梦数据库培训干货分享DM7常用动态性能视图及使用方法

 

 

7.V$DICT_CAHCE

用法:该视图用于观察字典缓存池的信息,通过观察该视图可以动态的观 测DICT_BUF_SIZE参数如何设置较为合理。

例如:

 

 

上海腾科教育达梦数据库培训干货分享DM7常用动态性能视图及使用方法

 

 

8.V$INSTANCE

用法:用于查看数据库实例相关信息,类似数据库版本,主机名,实例名称,实例状态等等。

 

9.V$IOCK

用法:用于记录数据库中锁信息。经常与v$SESSIONS关联查看数据库中阻塞信息。

V$LOCK与v$SESSIONS组合查询阻塞会话

 

 

上海腾科教育达梦数据库培训干货分享DM7常用动态性能视图及使用方法

 

 

10.V$PRE_RETURN_HISTORY

用法:该视图用于记录返回大量结果集的查询语句的历史信息。同时该视图可以与v$SESSION_HISTORY等视图组合使用。

 

11.V$RESOURCE_LIMIT

用法:该视图用于查看用户空间的限制信息。

 

例如:

 

 

上海腾科教育达梦数据库培训干货分享DM7常用动态性能视图及使用方法

 

 

12.V$RLOG

用法:该视图用于记录日志信息,包括LSN号和日志使用情况等等。在主备环境中可以查看该视图确认主机和备机是否一致。

 

13.V$SESSION_HISTORY

用法:用于记录数据库中的会话历史信息。在本视图中只存放v$SESSION的部分信息,可以通过与v$SQL_HISTORY关联找出对应sql的session信息。

 

14.V$SQL_HISTORY

用法:用于记录最近执行的10000条sql语句,该视图同时包括正在执行的 sql语句。该视图可以用于定位可能出现问题的sql语句,该视图记录了sql执行时间,物理读,逻辑读等关键信息。

例子:

 

上海腾科教育达梦数据库培训干货分享DM7常用动态性能视图及使用方法

 

15.V$SYSSTAT

用法:用于记录数据库的运行相关状态的信息,主要用于观察解析类统计信息,物理读,逻辑读,内存池使用情况,数据库运行各个阶段占用时间(类似cpu time,parse time等等),通过分析这些信息来诊断问题并对数据库有个初步的判断。

 

16.V$THREADS

用法:该视图用于查看数据库中的线程。在新版本中v$sessions视图中增加了thrd_id,配合使用操作系统top –H –ppid命令可以实现快速定位异常会话的功能,并可以使用sp_close_session()或者操作系统killthrd_id,杀掉异常会话。

 

17.V$DM_INI,V$DM_ARCH_INI,V$DM_MAL_INI,v$PARAMETER

用法:用于查看数据库相关配置(INI,ARCH_INI,MAL_INI)信息。

 

18.V$DANGER_EVENT

用法:用于查看数据库中危险操作发生时间和用户以及相关操作信息,比如truncate操作。

 

19.V$SQLTEXT,V$SQL_PLAN

用法:用于显示sql缓冲池缓存的sql文本和执行计划。

 

20.V$EVENT_NAME

用法:用于查看DM7所支持的所有等待事件。

 

21.V$SESSION_EVENT,V$SYSTEM_EVENT

 

用法:用于统计数据库中系统或会话级别的等待事件。

例如:

 

 

上海腾科教育达梦数据库培训干货分享DM7常用动态性能视图及使用方法

 

22.V$LONG_EXEC_SQLS,V$SYSTEM_LONG_EXEC_SQLS

用法:用于记录数据库中最近10000条执行时间长的sql。

 

23.V$SORT_HISTORY

用法:用于记录排序较多的sql语句,可以使用该视图定位异常排序的sql。

 

24.v$MEM_POOL

用法:用于监控数据库中各个内存组件使用状况。

例子:

 

上海腾科教育达梦数据库培训干货分享DM7常用动态性能视图及使用方法