甲骨文认证体系
Vmware认证体系
AWS亚马逊
阿里云认证体系
红帽认证体系
ZStack云计算认证体系
思科认证体系
华为认证体系
CDA数据分析师认证
达梦认证体系
麒麟
定制化课程
达梦数据库培训干货分享DM7常用动态性能视图及使用方法
发布日期:2020-08-28 10:48:33阅读次数:

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


本文将介绍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语句查看命中率:



2.v$CACHEITEM

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


可以使用如下sql语句:




3.v$CACHEPLN

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


例如:





4.v$CKPT_HISTORY

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


5.v$DATAFILE

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


例如:




6.v$DATABASE

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


例如:

  



7.V$DICT_CAHCE

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

例如:





8.V$INSTANCE

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


9.V$IOCK

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

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





10.V$PRE_RETURN_HISTORY

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


11.V$RESOURCE_LIMIT

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


例如:





12.V$RLOG

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


13.V$SESSION_HISTORY

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


14.V$SQL_HISTORY

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

例子:



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


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

例如:




22.V$LONG_EXEC_SQLS,V$SYSTEM_LONG_EXEC_SQLS

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


23.V$SORT_HISTORY

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


24.v$MEM_POOL

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

例子:


 上海腾科教育科技有限公司聚焦ICT人才培养和教育服务、培养数字化时代的新型ICT人才、促进良性的ICT人才生态发展,提供面授教育、在线教育、IT人才培养与就业、高校专业共建与实验室建设、企业人才定制培养,以及教育科技领域内的技术开发、咨询、服务以及解决方案,专注高校ICT课程课件研发、基于华为公有云的云实验实训平台建设,致力于ICT技术在高等院校的引进、开发和推广,是一家全国性的专业ICT行业技术认证服务公司。

腾科教育是华为授权的培训合作伙伴,专业提供华为ICT技术架构认证、平台与服务认证、行业服务认证等华为职业认证服务,连续多年荣获华为年度最佳合作伙伴贡献奖、华为优秀战略合作伙伴、上海HCIE精英俱乐部伙伴,连续多年举办腾科技术嘉年华华为专场,并协办华为ICT大赛、华为生态伙伴精英赛伙伴赛分赛场、华为人才双选会上海场等活动和赛事,提供面向华为生态合作伙伴和ICT学员的人才供需双选平台及ICT学员就业通道,培养ICT行业所需创新型、融合型人才。