当前位置:网站首页 > 数据科学与大数据 > 正文

达梦数据库端口5236(达梦数据库端口扫描)



本章节主要介绍达梦数据库性能优化常见问题,为用户提供性能优化常见问题的分析和解决思路。除此之外,用户还可前往达梦技术社区参与更多问题讨论。

  • 在应用中发现执行较慢的 SQL,在管理工具中执行很快
  • 如何看某条 sql 语句每个操作符的执行时间?
  • disql 查看执行计划
  • 大量的 DML 动作(经常做增删改查)导致表的碎片很多,最终导致查询该表性能很慢,如何解决
  • 执行大批量提交删除操作时,运行效率较低
  • 如何对缓存中的执行计划进行过滤
  • 如何开启结果集缓存
  • 如何使用 DBMS_SQLTUNE 包获取 SQL 执行信息

可通过查看系统视图,及时发现活动会话中的慢 SQL,将其在计划缓存中的执行计划打印到 trc 文件中,核查是否与在管理工具中查询到的执行计划一致,偏差较大则清理缓存中执行计划。

具体方法如下:

通过 PLNDUMP 来看对应缓存中的 SQL 执行计划

  • 查找出活动会话中执行时间大于 1S 的 SQL
 
   
  • 找到对应慢 SQL 对应的 cache_item 值。
 
   
  • 在 trace 目录中生成对应 trc 文件
 
   
  • 对比管理工具的执行计划和 .trc 文件中的执行计划。
  • 清理内存中执行计划缓存。
 
    
   
 
   

查看表数据

  • 在管理工具中执行如下语句:
 
   

动态修改参数

  • 执行 sql 语句并获取操作符执行时间
 
   

执行 sql 语句

依次点击“消息”,“590”,(或者执行 et(590) )弹出如下的操作符执行时间对话框:

获取操作符执行时间

如上图所示,该 sql 语句共涉及 6 个操作符,按照执行的先后顺序分别是 SAGR2、SORT3、NSET2、CSCN2、DLCK、PRJT2。

其中,耗时最长的操作符是 SAGR2,耗时 1072 微秒,占总执行时间的 63.47%;耗时排第二位的操作符是 SORT3,耗时 536 微秒,占总执行时间的 31.73%。

根据上述的分析,我们就需要针对这 2 个操作符进行针对性的优化。

【问题说明】
disql 中开启自动跟踪 set autotrace trace + sql ,对应的执行计划看不到统计信息是否失真的对比(估算和实际记录数),三元组中记录数只有一个数字。

【解决方法】
该功能开启前提是 ini 参数:ENABLE_MONITOR、MONITOR_SQL_EXEC 已开启,故运行时先执行以下脚本设置参数

 
   

分析完后,记得关闭,以免影响性能

 
   

disql 查看执行计划

【问题解决】

达梦的数据通过 B 树维护的。可对指定索引进行空间整理,重组数据,达到优化该表的目的。具体操作如下,以 test 为例介绍:

 
   

【问题描述】

【问题解决】

【问题描述】

在业务系统中 sql 的执行速度,执行计划会随着数据量和数据类型变化而变化,应用需要定时对 sql 进行巡检,保证业务性能。

【问题解决】

  1. 导出数据库内全部缓存的执行计划。
 
   

该命令执行后,会在 DAMENG/trace 目录下生成 trc 文件。

  1. 将包含 "CSCN2" 的 sql 进行梳理,过滤规则为:
    ① 凡是涉及到向大量客户开放使用或常用业务中频繁使用的 sql,需要根据实际情况判断是否需要优化
    ② 经过判断执行次数比较少的 sql 可以不做处理。




  2. 在导出的 trace 文件中,查找 "CSCN2"、"SSCN" 等表示全表扫描的执行计划,然后向上找到对应的 sql 文本和 cache item 编号。

【问题描述】

开启结果集缓存策略,可大大提升 sql 执行时间,达梦数据库如何开启结果集缓存?

【问题解决】

  1. 修改 dm.ini 参数;
 
   

当 RS_CAN_CACHE 为 1 时,还可以通过设置 INI 参数 RS_CACHE_TABLES 和 RS_CACHE_MIN_TIME 对缓存的结果集进行限制和过滤。RS_CACHE_TABLES 指定可以缓存结果集的基表清单,只有查询涉及的所有基表全部在参数指定范围内,此查询才会缓存结果集。RS_CACHE_MIN_TIME 则指定了缓存结果集的查询语句执行时间的下限,只有实际执行时间不少于指定值的查询结果集才会缓存。

参数说明:

参数名 默认值 说明 属性 RS_CAN_CACHE 0 结果集缓存配置。
0:禁止重用结果集;
1:强制模式,此时默认缓存所有结果集,
但可通过 RS_CACHE_TABLES 参数和语句
HINT 进行手动设置;
2:手动模式,此时默认不缓存结果集,
但可通过语句 HINT 对必要的结果集进行
缓存






静态 BUILD_FORWARD_RS 0 仅向前游标是否生成结果集。
0:不生成;
1:生成

静态 RS_CACHE_TABLES 空串 指定可以缓存结果集的基表的清单,
当 RS_CAN_CACHE=1 时,只有查
询涉及的所有基表全部在此参数指
定范围内,该查询才会缓存结果集。
当参数值为空串时,此参数失效。



手动 RS_CACHE_MIN_TIME 结果集缓存的语句执行时间下限,只
有实际执行时间不少于指定时间值的
查询,其结果集才会被缓存,仅在
RS_CAN_CACHE=1 时有效。默认值 0,
表示不限制;有效值范围(0~)
,以 MS 为单位。




动态,系统级



































  1. 验证 dm.ini 修改是否正确;
 
   
  1. 重启数据库生效。

示例

  1. 修改 dm.ini 参数;
 
   
  1. 验证 dm.ini 修改是否正确;
 
   

image.png

  1. 重启数据库;
  2. 验证结果集缓存。
  • 第一次查询慢 sql 需要加载所有结果集,耗时较长。

image.png

  • 第二次查询使用到结果集缓存,耗时很短。

image.png

【问题解决】

DBMS_SQLTUNE 包提供一系列对实时 SQL 监控的方法。当 SQL 监控功能开启后,DBMS_SQLTUNE 包可以实时监控 SQL 执行过程中的信息,包括:执行时间、执行代价、执行用户、统计信息等情况。SQL 监控功能开启的方法是将 DM.INI 参数 ENABLE_MONITOR 和 MONITOR_SQL_EXEC 均设置为 1。

具体操作步骤:

  1. 设置 disql 界面显示长度。
 
   
  1. 打开 MONITOR_SQL_EXEC。
 
   
  1. 执行需要调优的 SQL,例如如下 SQL:
 
   

image.png

  1. 调用 DBMS_SQLTUNE.REPORT_SQL_MONITOR,传入执行 ID 。
 
   

image.png

到此这篇达梦数据库端口5236(达梦数据库端口扫描)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • sqlldr导入大量文件的数据(sqlldr导入多个文件)2025-06-11 17:09:08
  • 计算机大数据技术是学什么的(计算机大数据专业是什么)2025-06-11 17:09:08
  • 数据中台设计方案怎么做(数据中台设计方案怎么做出来的)2025-06-11 17:09:08
  • sqlldr 导出数据(sqluldr2导出数据)2025-06-11 17:09:08
  • druiddatasource多数据源(datasource多数据源配置)2025-06-11 17:09:08
  • 自动驾驶数据标注工作内容是什么(自动驾驶图片数据标注规范要求)2025-06-11 17:09:08
  • odl数据库(odoo数据库)2025-06-11 17:09:08
  • ceph的存储类型(ceph对象存储元数据存在哪里)2025-06-11 17:09:08
  • 达梦连接数据库jdbc(达梦连接数据库报错,order by 不在)2025-06-11 17:09:08
  • 数据库课程(数据库课程号怎么表示)2025-06-11 17:09:08
  • 全屏图片