达梦数据库参数与统计信息收集
1、数据库参数优化
1.1 数据库参数获取
通过v$dm_ini获取dm.ini参数信息
通过dm性能监视工具获取
1.2 资源类参数配置建议
参数 |
调整范围说明 |
BUFFER |
内存足够的情况下,可根据数据文件的大小调整,内存不充足的情况下,可调整为可用物理内存的 60%~80% |
BUFFER_POOLS |
高并发 OLTP 场景下,可根据客户端的并发连接数或者中间件连接池的大小进行调整 |
MAX_BUFFER |
系统最大缓冲区大小,以兆为单位。通常设置为与 BUFFER 相同 |
RECYCLE |
当排序缓冲区及哈希缓冲区不足的情况下,系统会优先使用 RECYCLE 缓冲区,RECYCLE 缓冲区不够,再刷临时表空间。在 OLAP 场景下,如果存在大表之间的关联查询,可以将值调大,尽可能不要使用临时表空间 |
SORT_BUF_SIZE |
排序缓存区最大值。可以适当调大,如果在动态性能视图 vSORT_HIST0RY 和 vMTAB_USED_HISTORY 中监控到外排序,则适当调大建索引时可调大。通常不超过 20 MB |
DICT_BUF_SIZE |
字典缓冲区大小。如果数据库中对象数量较多,或者存在大量分区表,可适当调大 |
HJ_BUF_GL0BAL_SIZE |
HASH 连接操作符的数据总缓存大小 (>= HJ_BUF_SIZE)。内存足够的情况下,可以适当调大。实际使用大小,由包含 HASH JOIN 操作符的 SQL 并发数决定 |
HJ_BUF_SIZE |
单个 HASH 连接操作符的数据总缓存大小。在 OLTP 环境中,建议采用默认值。在 OLAP 环境下,可以根据参与 HASH JOIN 的数据量调大 |
HJ_BLK_SIZE |
默认 1 即可,如果 HJ_BUE_SIZE 很大也可适当调大 |
HAGR_BUF_GLOBAL_SIZE |
HAGR、DIST、集合操作、SPL2、NTTS2 以及 HTAB 操作符的数据总缓存大小 (>=HAGR_BUF_SIZE),系统级参数,以兆为单位 |
HAGR_BUF_SIZE |
单个 HAGR、DIST、集合操作、SPL2、NTTS2 以及 HTAB 操作符的数据总缓存大小。监控 V$SORT_HISTORY,判断是否需要调整 |
OLAP_FLAG |
用联机分析处理,0:不启用;1:启用;2:不启用,同时倾向于使用索引范围扫描。该参数会影响到计划的生成。在 OLTP 环境下,通常保持默认值 2 |
MAX_PARALLEL_DEGREE |
设置最大并行任务个数。建议设置为 6~8 |
PARALLEL_POLICY |
用来设置并行策略。0 表示不支持并行;1 表示自动配置并行工作线程个数(与物理 CPU 核数相同);2 表示手动设置并行工作线程数。建议设置为 2 手动并行 |
IO_THR_GROUPS |
表示 IO 线程组个数。建议值>=8,提升 IO 效率 |
HIO_THR_GROUPS |
HUGE 缓冲区 I0 线程组数目。使用 HUGE 表的业务场景,建议值>=8,提升 HUGE 表的 I0 效率 |
2、统计信息
统计信息主要是描述数据库中表和索引的大小数以及数据分布状况等的一类信息。比如:表的行数、块数、平均每行的大小、索引的高度、叶子节点数以及索引字段的行数等。
统计信息对于 CBO(基于代价的优化器)生成执行计划具有直接影响。例如在嵌套循环中需要选择小表作为驱动表,两个关联表哪个是小表完全取决于统计信息中记录的数据量信息。此外,访问一个表是否要走索引,关联查询能否采用其它关联方式等都是 CBO 基于统计信息确定的。因此,统计信息的准确是生成最优执行计划的必要前提。
2.1 统计信息收集方法
--收集指定用户下所有表所有列的统计信息:
DBMS_STATS.GATHER_SCHEMA_STATS('username',100,TRUE,'FOR ALL COLUMNS SIZE AUTO',4);
--收集指定用户下所有索引的统计信息:
DBMS_STATS.GATHER_SCHEMA_STATS('usename',1.0,TRUE,'FOR ALL INDEXED SIZE AUTO');
--或 收集单个索引统计信息:
DBMS_STATS.GATHER_INDEX_STATS('username','IDX_T2_X');
--收集指定用户下某表统计信息:
DBMS_STATS.GATHER_TABLE_STATS('username','table_name',null,100,TRUE,'FOR ALL COLUMNS SIZE AUTO');
--收集某表某列的统计信息:
STAT 100 ON table_name(column_name);
STAT <统计信息采样率百分比> [SIZE <直方图桶数>] ON <统计对象> [GLOBAL]
<统计对象>::=
[<模式名>.] <表名> (<列名>{,<列名>}) |
INDEX [<模式名>.]<索引名>
STAT ON [<模式名>.]<表名> [GLOBAL];
GLOBAL 用于MPP环境下各节点数据收集后统一生成统计信息.
2.2 自动收集统计信息
--打开表数据量监控开关,参数值为 1 时监控所有表,2 时仅监控配置表
SP_SET_PARA_VALUE(1,'AUTO_STAT_OBJ',2);
--设置 SYSDBA.T 表数据变化率超过 15% 时触发自动更新统计信息
DBMS_STATS.SET_TABLE_PREFS('SYSDBA','T','STALE_PERCENT',15);
--配置自动收集统计信息触发时机
SP_CREATE_AUTO_STAT_TRIGGER(1, 1, 1, 1,'14:36', '2020/3/31',60,1);
--函数各参数介绍
SP_CREATE_AUTO_STAT_TRIGGER(
TYPE INT, --间隔类型,默认为天
FREQ_INTERVAL INT, --间隔频率,默认 1
FREQ_SUB_INTERVAL INT, --间隔频率,与 FREQ_INTERVAL 配合使用
FREQ_MINUTE_INTERVAL INT, --间隔分钟,默认为 1440
STARTTIME VARCHAR(128), --开始时间,默认为 22:00
DURING_START_DATE VARCHAR(128), --重复执行的起始时间,默认 1900/1/1
MAX_RUN_DURATION INT, --允许的最长执行时间(秒),默认不限制
ENABLE INT --0 关闭,1 启用 --默认为 1
);
3、聚集索引和非聚集索引
聚集索引
定义:数据行的物理顺序与列值(一般是主键的那一列)的逻辑顺序相同,一个表中只能拥有一个聚集索引。
非聚集索引
定义:该索引中索引的逻辑顺序与磁盘上行的物理存储顺序不同,一个表中可以拥有多个非聚集索引。
达梦数据库 - 新一代大型通用关系型数据库 | 达梦在线服务平台
达梦数据库参数与统计信息收集相关推荐
- Oracle 12c数据库优化器统计信息收集的最佳实践
Oracle 12c数据库优化器统计信息收集的最佳实践 转载自 沃趣科技(ID:woqutech) 作者 刘金龙(译) 原文链接 http://www.oracle.com ...
- 达梦数据库统计信息的导出导入
一.统计信息 对象统计信息描述了对象数据的分布特征.统计信息是优化器的代价计算的依据,可以帮助优化器较精确地估算成本,对执行计划的选择起着至关重要的作用.统计信息的收集频率是一把双刃剑,频率太低导致统 ...
- 达梦数据库常规数据类型
1 数值数据类型 1. NUMERIC类型 语法: NUMERIC[( 精度 [, 标度])] 功能: NUMERIC 数据类型用于存储零.正负定点数.其中:精度是一个无符号整数,定义了总的数字数, ...
- 达梦数据库与MySQL部分语法区别
达梦与MySQL部分语法的区别 前言: 达梦数据库管理系统是达梦公司推出的具有完全自主知识产权的高性能数据库管理系统,简称DM.达梦数据库管理系统的最新版本是8.0版本,简称DM8. DM8采用全新的 ...
- DM8达梦数据库:系统中的错误码信息
此达梦数据库版本为:dm8-1-88-20.06.24-123627-ENT SELECT * FROM SYS."V$ERR_INFO"; 错误码: 100 空结果集 101 字 ...
- 达梦数据库:性能参数优化篇
达梦数据库DM8性能参数优化篇 不分操作系统,根据服务器软硬件性能,对应的优化数据库性能: 以下优化都会更改达梦数据库dm.ini 配置文件,重启数据库服务后生效 查询数据库当前参数: --查询配置文 ...
- 达梦数据库初始化常用参数查询及介绍
1字符集 字符是各种文字和符号的统称,包括各个国家文字.标点符号.表情.数字等等. 字符集 就是一系列字符的集合.字符集的种类较多,每个字符集可以表示的字符范围通常不同,就比如说有些字符集是无法表示汉 ...
- 达梦数据库[-718]收集到的归档日志不连续错误。
项目场景: 达梦数据库dm8,数据库通过SQL开启归档: SQL>alter database mount; SQL>alter database archivelog; SQL>s ...
- 达梦数据库密码策略参数设置
本人参加了达梦数据库DCA的培训及考试,但由于没有好好听讲,在考试的时候遇到设置达梦数据库密码策略设置的时候一脸懵逼.. 考试完毕,对这块的知识进行了一次复盘,大家一起共勉. 达梦数据库跟ORACLE ...
最新文章
- 【服务器框架】(AsyncSelect模型、Windows平台)
- SQL SERVER 数据库清空语句 忽略外键 触发器 等
- CodeForces 518A - Chewbaсca and Number(思路)
- 【Python基础】加密你的Python源码顺便再打个包如何?
- mysql 报错解决思考Expression #5 of SELECT list is not in GROUP BY clause and contains nonaggregated column
- 谷歌离开游览器不触发_谷歌游览器
- 但是我不知道什么是容器
- c++ vscode 第三方库_请教下,vscode中怎么编译带第三方库的文件呢?谢谢! - C++程序设计语言 - CPlusPlus - 水木社区...
- [原创]java WEB学习笔记107:Spring学习---AOP切面的优先级,重用切点表达式
- IS-IS数据包--包头结构
- SpringCloud 之客户端负载均衡策略
- 图书馆占座系统(SSM,JQUERY-EASYUI,MYSQL)
- GPS同步时钟(NTP时钟服务器)常见故障解决与价格差异分析
- 4G模块配置、概念、调试记录
- python清洗数据教程_数据分析入门系列教程-数据清洗
- redmine插件安装
- python量化交易第五章
- 迷你播放器--第一阶段(2)--退出时自动最小化(不是关闭),增加当前播放曲目的跑马灯效果
- html5图片平铺的代码,jQuery图片平铺效果制作网页背景图片平铺代码
- 神州网信政府版Win10新建用户无法上网
热门文章
- getAttribute()、setAttribute()、removeAttribute()的方法使用以及区别。
- js原生DOM属性值查找 getAttribute,设置setAttribute,移除removeAttribute
- 【深度学习】rnn是什么?循环神经网络是什么?RNN前向传播。
- 三维GIS可视化技术在城市管理中的作用
- 【PID控制原理及其算法】
- GPS/LBS定位技术
- 中国i计算机专业学校排名,2018年中国计算机专业大学排名一览(表)
- 你不知道的云南隐藏景点
- STM32F407 读保护,写保护,解锁过程【芯片已设置读保护,无法读取更多信息】...
- WebRTC ULPFEC