IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> 达梦数据库性能检测与提升总结 -> 正文阅读

[大数据]达梦数据库性能检测与提升总结

前言

本篇为学习整理资料,汇集了网络平台上关于达梦数据库性能相关的文章链接,以及自己的一些知识、经验总结。目的是能够在学习、工作中进行参照。
数据库的性能主要关注下面几个方面:

  • 数据库运行参数相关配置的正确性:需要结合硬件运行环境做调整,如CPU和数据库并行线程等信息的调整;操作系统层面的,如文件打开数,IO调度、虚拟内存以及最大线程数等;
  • sql执行是否高效:结构设计、sql设计、统计信息的及时更新;
  • 等待事件:锁表、io等待等

1 性能检测

1.1 启用SQL日志来辅助分析性能问题

在达梦数据库中,DBA可以通过查看系统SQL日志来辅助分析SQL性能问题。

将DM数据库配置文件中的参数SVR_LOG设置为打开,系统会在安装的log目录下生成名为【dmsql_实例名_日期_时间.log】的SQL日志文件。在该文件中记录了启用SVR_LOG之后数据库接收到的所有SQL语句等信息,DBA可以通过分析该文件来帮助解决问题。

1.1.1 SQL日志的开启和关闭

  • 开启:SP_SET_PARA_VALUE(1, ‘SVR_LOG’, 1);
  • 关闭:SP_SET_PARA_VALUE(1, ‘SVR_LOG’, 0);

1.1.2 根据实际情况需要,修改sqllog.ini来满足需要

sqllog.ini 用于 sql 日志的配置,当且仅当 INI (dm.ini)参数 SVR_LOG=1 时使用。
如果在服务器启动过程中,修改了 sqllog.ini 文件。修改之后的文件,只要调用过程 SP_REFRESH_SVR_LOG_CONFIG() 就会生效。

  • sqllog.ini位置:

/DCE/dmdata/DAMENG
dmdata为达梦数据库安装路径,DAMENG为数据库具体路径。

  • sqllog.ini结构说明:
    sqllog.ini结构
    sqllog.ini中每个配置的含义,参见:官方技术文档
    其中跟性能相关比较重要的是【ASYNC_FLUSH】,如果要开启SQL日志,一定要设置为1(打开异步日志功能),否则开启日志本身就会对性能产生较大影响。

1.2 实时监测SQL语句执行时间

通过DM性能监视工具(monitor)的“SQL监视”功能实时查看sql语句执行的时间。

SQL监视

  • 打开自动刷新,并设置刷新间隔,可以定时更新执行过的sql语句集(也可以点击手动刷新,得到最新的sql执行语句集);
  • 点击【SQL统计】可以设置显示执行最长时间的N条SQL,也可以设置显示执行频率最高的N条SQL;
  • 点击具体的记录可以查看SQL详细,和该SQL语句的执行计划;
  • 选择其中一条记录后可以点击【会话统计】,进行会话监视:
    会话监视
  • 选择其中一条记录后可以点击【查看事务】,进行事务监视:
    事务监视
  • 可以将当前时间点的SQL语句统计信息保存到txt或xml,供日后查看。

1.3 分析当前等待事件

当一个进程连接到数据库后, 进程所经历的种种等待就开始被记录, 并且通过一系列的性能视图进行展示, 通过等待事件用户可以很快发现数据库的性能瓶颈, 从而进行针对性能的优化和分析。结合操作系统的监控信息记录以及数据库层面的等待事件来发现运行瓶颈,是我们需要关注的重点之一。

达梦数据库中的动态性能视图能自动收集数据库中的一些活动信息,日常工作上根据这些信息可以了解数据库运行的基本情况,为数据库的维护和优化提供依据。动态视图信息是随着数据库的运行随时更改,具有一定的即时性。与 数据库事件相关的 视图主要有以下几个:

  • V$WAIT_HISTORY 通过该视图可以查询等待事件的具体信息,如等待的线程id,会话id等。可以查看具体等待事件的信息,如果某个事务等待时间过长,则可以查询到具体事务信息以及所在的线程和所牵涉的对象,分析原因进行优化等操作。

  • V$EVENT_NAME 显示当前系统所支持的等待事件的类型汇总信息。

  • V$SYSTEM_EVENT 显示自系统启动以来所有等待事件的详细信息。

  • V$SESSION_EVENT 显示当前会话等待事件的所有信息。

  • V$SESSION_WAIT_HISTORY 显示会话等待事件的历史信息。

  • V$DANGER_EVENT 数据库重要事件和行为信息视图。

  • V$TASK_QUEUE 任务队列信息。

  • V$TRACE_QUEUE 事件跟踪任务队列信息。

详细参见这篇文章中的第二章

上面的等待事件中包含一种死锁等待,也可以直接从DM性能监视工具中观测:
死锁

2 性能优化

2.1 结构设计

2.1.1 表的填充因子

原则上,在只读表上应该设置填充因子高,而有大量更新的表上应该设置较低的值。默认情况下,DM新建的表和索引的填充因子是100,可根据实际情况设置合适的填充因子大小。

详细参见官方技术文档

2.1.2 指定表的聚集索引

聚集索引明显提升B树查找的速度,同时可能因导致页面的分裂而影响插入性能。
是不是可以得出一个结论:空表插入100条数据,和100条数据的表更新100条记录对比,更新更快。

详细参见官方技术文档

2.1.3 创建临时表

通过AS SELECT子句建立的临时表是将复杂查询的结果通过临时B树记录了下来,下次访问不用重新执行查询就可以获得数据,并且会话或事务结束后数据将自动删除,是复杂查询的一个优秀的解决方案,且提高了性能。

详细参见官方技术文档

2.2 统计信息更新

2.2.1 统计信息的作用

  1. 统计信息的收集可以大概率的修正对过滤行数的估算;

  2. 统计信息对CBO选择正确的执行计划非常重要,对执行效率的影响非常大,在应用系统运行过程中,有时候用户可能会发现系统的响应速度越来越慢。这其中可能的原因之一就是随着数据规模的增长,SQL 语句的执行计划已经不是处于最优状态,需要对 SQL语句进行调整或者对统计信息进行更新;

  3. 统计信息收集的比列根据实际情况来设置,如果可行的话,就选择采用率为100 的方式收集。业务繁忙又必须更新统计信息的情况下,可先更新一部分来满足应用需求;

  4. 使用统计信息可以提升数据查询的效率,而定期地更新统计信息则有助于提高统计信息的有效性。象为了回收空间做清理一样,经常更新统计信息也是对更新频繁的表更有用。不过,即使是更新非常频繁的表,如果它的数据的统计分布并不经常改变,那么也不需要更新统计信 息。更新统计信息需要在业务低谷的时候去操作,在高峰操作可能导致业务瘫痪;

2.2.2 何时需要更新统计信息

  1. 数据库升级完需要更新统计信息;
  2. dts迁移工具迁移数据后需要更新统计信息;
  3. 新建表或者新建表索引后需要更新统计信息;
  4. 批量的DML操作后明显影响该表的执行效率;

详细参见文章:达梦8统计信息更新和使用

2.3 参数配置

待续 … …

附录1_执行计划详解

参见文章:达梦sql优化之执行计划

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-09-13 11:22:43  更:2022-09-13 11:26:42 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 10:56:58-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码