技术开发 频道

达梦数据库的性能优化 应对数据膨胀

  二、 SQL优化

  1. 定位慢的SQL

  要分析性能瓶颈,首先得把执行的又慢、又多的SQL语句找出来,DM提供了SQL日志的功能,可以将系统中运行的SQL语句、语句绑定的参数、SQL执行时间记录到SQL日志文件中,并提供参数来进行过滤,比如只更新select语句、DELETE语句、update语句、报错的语句等等。

  1) 修改dm.ini文件

  SVR_LOG = 1
  SVR_LOG_FILE_NUM =2
  SQL_TRACE_MASK = 1
  SVR_LOG_SWITCH_COUNT = 1000000

  #SVR_LOG:1表示开启SQL日志功能,0表示关闭

  #SVR_LOG_FILE_NUM:1表示不切换,2表示记录两个日志文件,互相切换

  #SQL_LOG_MASK:要记录的语句类型掩码,1表示全部记录

  4:7表示记录update和select语句

  #SVR_LOG_SWITCH_COUN:每个SQL日志文件中记录的消息条数

  #修改完成后需要重启数据库服务

  2) 执行系统存储过程开启

  --开启SQL日志,记录所有的SQL语句,两个文件互相切换

  --每个文件记录100万行

  --动态修改INI参数,无需重启服务

  call sp_set_para_value(1,'SVR_LOG',1);
  call sp_set_para_value(1,'SVR_LOG_FILE_NUM',2);
  call sp_set_para_value(1,'SQL_LOG_MASK',1);
  call sp_set_para_value(1,'SVR_LOG_SWITCH_COUNT',1000000);

  通过上面两种方法,我们成功开启了SQL日志功能,那么如何从这些日志文件中找到性能瓶颈呢?给大家提供一个SQL日志分析小工具(http://bbs.dameng.com/forum.php?mod=viewthread&tid=44187&extra=page=1)

  该工具运行效果图如下:


  分析完成后,会在分析程序所在目录生成一个文件夹,保存分析结果:

  详细的分析结果保存到一个excel文件中

SQL优化


0
相关文章