达梦数据库的DBMS_STATS包

达梦数据库的DBMS_STATS包

基础信息
OS版本:
Red Hat Enterprise Linux Server release 7.9 (Maipo)
DB版本:
DM Database Server 64 V8
DB Version: 0x7000c
03134284132-20240115-215128-20081

达梦数据库(DM Database)提供了 DBMS_STATS 包,这个包主要用于管理和维护数据库的统计信息。通过该包,您可以收集、删除、锁定和解锁表和索引的统计信息,从而帮助优化器生成更高效的查询执行计划。

DBMS_STATS 包的常用存储过程和函数

  1. GATHER_TABLE_STATS:收集指定表及其索引的统计信息。
  2. GATHER_INDEX_STATS:收集指定索引的统计信息。
  3. GATHER_SCHEMA_STATS:收集指定模式下所有表和索引的统计信息。
  4. DELETE_TABLE_STATS:删除指定表及其索引的统计信息。
  5. DELETE_SCHEMA_STATS:删除指定模式下所有表和索引的统计信息。
  6. TABLE_STATS_SHOW:查看指定表的统计信息。

使用示例

1. 收集指定表的统计信息
DBMS_STATS.GATHER_TABLE_STATS(OWNNAME => 'SCHEMA_NAME',  -- 模式名称TABNAME => 'TABLE_NAME',   -- 表名称CASCADE => TRUE,           -- 是否收集与表相关的索引的统计信息ESTIMATE_PERCENT => 100    -- 采样百分比,100 表示全表
);

示例:收集 DMTEST 模式下 T1 表的统计信息

SQL> DBMS_STATS.GATHER_TABLE_STATS(
2       OWNNAME => 'DMTEST',
3       TABNAME => 'T1',
4       CASCADE => TRUE,
5       ESTIMATE_PERCENT => 100
6   );
DMSQL 过程已成功完成
已用时间: 22.637(毫秒). 执行号:811.
2. 收集指定索引的统计信息
DBMS_STATS.GATHER_INDEX_STATS(OWNNAME => 'SCHEMA_NAME',  -- 模式名称INDNAME => 'INDEX_NAME'    -- 索引名称
);

示例:收集 DMTEST 模式下 IDX_T1_1 索引的统计信息

SQL> DBMS_STATS.GATHER_INDEX_STATS(
2       OWNNAME => 'DMTEST',
3       INDNAME => 'IDX_T1_1'
4   );
DMSQL 过程已成功完成
已用时间: 19.804(毫秒). 执行号:813.
3. 收集指定模式下所有表和索引的统计信息
DBMS_STATS.GATHER_SCHEMA_STATS(OWNNAME => 'SCHEMA_NAME',  -- 模式名称ESTIMATE_PERCENT => 100    -- 采样百分比,100 表示全表
);

示例:收集 DMTEST 模式下所有表和索引的统计信息

SQL> DBMS_STATS.GATHER_SCHEMA_STATS(
2       OWNNAME => 'DMTEST',
3       ESTIMATE_PERCENT => 100
4   );
DMSQL 过程已成功完成
已用时间: 30.627(毫秒). 执行号:814.
4. 删除指定表的统计信息
DBMS_STATS.DELETE_TABLE_STATS(OWNNAME => 'SCHEMA_NAME',  -- 模式名称TABNAME => 'TABLE_NAME'    -- 表名称
);

示例:删除 DMTEST 模式下 T1 表的统计信息

SQL> DBMS_STATS.DELETE_TABLE_STATS(
2       OWNNAME => 'DMTEST',
3       TABNAME => 'T1'
4   );
DMSQL 过程已成功完成
已用时间: 5.937(毫秒). 执行号:815.
5. 删除指定模式下所有表的统计信息
DBMS_STATS.DELETE_SCHEMA_STATS(OWNNAME => 'SCHEMA_NAME'  -- 模式名称
);

示例:删除 DMTEST 模式下所有表的统计信息

SQL> DBMS_STATS.DELETE_SCHEMA_STATS(
2       OWNNAME => 'DMTEST'
3   );
DMSQL 过程已成功完成
已用时间: 3.111(毫秒). 执行号:816.
6. 查看指定表的统计信息
DBMS_STATS.TABLE_STATS_SHOW(OWNNAME => 'SCHEMA_NAME'-- 模式名称TABNAME => 'TABLE_NAME'     -- 表名称
);

示例:查看DMTEST.T1表的统计信息

SQL> DBMS_STATS.TABLE_STATS_SHOW(
2       OWNNAME => 'DMTEST'3       TABNAME => 'T1'     
4   );行号     NUM_ROWS             LEAF_BLOCKS          LEAF_USED_BLOCKS    
---------- -------------------- -------------------- --------------------
1          10000                48                   48已用时间: 0.337(毫秒). 执行号:611.

定期收集统计信息

为了确保优化器能够使用最新和最准确的统计信息,建议定期收集统计信息。可以通过达梦数据库的任务调度功能,安排定期任务来自动收集统计信息。

创建定时任务
BEGINDBMS_SCHEDULER.CREATE_JOB(JOB_NAME         => 'GATHER_STATS_JOB',JOB_TYPE         => 'PLSQL_BLOCK',JOB_ACTION       => 'BEGIN DBMS_STATS.GATHER_SCHEMA_STATS(OWNNAME => ''PUBLIC'', ESTIMATE_PERCENT => 100); END;',START_DATE       => SYSDATE,REPEAT_INTERVAL  => 'FREQ=DAILY; BYHOUR=2; BYMINUTE=0; BYSECOND=0',ENABLED          => TRUE);
END;

上述定时任务将在每天凌晨 2 点运行,自动收集 PUBLIC 模式下所有表和索引的统计信息。

通过使用 DBMS_STATS 包,达梦数据库管理员可以有效地管理统计信息,优化查询执行计划,提高数据库性能。

DBMS_STATS的更多使用方法参考官方文档《DM8系统包使用手册.pdf

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/864534.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

FreeRTOS开发五、任务状态切换以及空闲任务回收结束的任务

1、任务状态切换 任务创建的时候就会处于就绪状态ready,然后他马上就能够运行进入Running状态,运行中可以调用vTaskDelay进入阻塞状态,实际就是延时一小段时间,等待唤醒,当延时时间过去后就回到了就绪状态&#xff0…

【python学习】自定义函数的一些高级用法-1

在 Python 中,自定义函数除了基本的定义和调用外,还有一些高级用法,可以让函数更加灵活和强大。以下是一些自定义函数的高级用法示例: 1. 默认参数 函数定义时可以指定默认参数值,当调用函数时没有提供该参数的值时&…

深入理解Spring Boot与Spring Cloud的整合方式

深入理解Spring Boot与Spring Cloud的整合方式 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!今天我们将深入探讨Spring Boot与Spring Cloud的整合方式&#x…

pytorch-ResNet18简单复现

目录 1. ResNet block2. ResNet18网络结构3. 完整代码3.1 网络代码3.2 训练代码 1. ResNet block ResNet block有两个convolution和一个short cut层,如下图: 代码: class ResBlk(nn.Module):def __init__(self, ch_in, ch_out, stride):su…

Java学习 (六) 面向对象--this、继承、方法重写、super

一、this 关键字 1、this 演示 vi Person.java public class Person {String name;int age;//显示声明构造器public Person(String s , int i){name s;age i;}public void setAge(int age){age age;}}vi PersonTest.java public class PersonTest {public static void m…

第二十一章 函数(Python)

文章目录 前言一、定义函数二、函数参数三、参数类型四、函数返回值五、函数类型1、无参数,无返回值2、无参数,有返回值3、有参数,无返回值4、有参数,有返回值 六、函数的嵌套七、全局变量和局部变量1、局部变量2、全局变量 前言 …

了解 .NET 中的会话管理

在 Web 开发领域,跨多个请求维护状态是一个关键方面。HTTP 的无状态特性要求开发人员实现持久保存用户数据的机制。这就是会话发挥作用的地方。在本文中,我们将探讨什么是会话、它们在 .NET 中的工作方式,并提供实际示例来说明它们的用法。 …

set_source_files_properties QT_QML_SINGLETON_TYPE

目录 前言 QT_QML_SINGLETON_TYPE 属性 基本用法 示例 1. 创建一个基本的 CMake 项目 2. 编辑 CMakeLists.txt 3. 创建 main.cpp 4. 创建 MySingleton.qml 5. 创建 qml.qrc 6. 创建 main.qml 构建和运行项目 结论 前言 在使用 Qt 和 CMake 构建项目时,…

weapp.socket.io.js

!function(t,e){if(“object"typeof exports&&"object"typeof module)module.exportse();else if("function"typeof define&&define.amd)define([],e);else{var re();for(var n in r)(“object"typeof exports?exports:t)[n]r[…

探索未知:sklearn处理未知类别数据的策略

探索未知:sklearn处理未知类别数据的策略 在机器学习项目中,我们经常遇到带有未知类别的数据,这些数据可能因为各种因素而缺失或无法归类。有效地处理这些未知类别对于构建鲁棒的模型至关重要。本文将深入探讨sklearn如何处理带有未知类别的…

解决Java中的NoRouteToHostException异常的方法

解决Java中的NoRouteToHostException异常的方法 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿! 在Java开发中,网络编程是非常重要的一部分&#x…

某腾X滑块验证码

⚠️前言⚠️ 本文仅用于学术交流。 学习探讨逆向知识,欢迎私信共享学习心得。 如有侵权,联系博主删除。 请勿商用,否则后果自负。 网址 aHR0cHM6Ly9jbG91ZC50ZW5jZW50LmNvbS9wcm9kdWN0L2NhcHRjaGE= 1. 先整体分析一下 1_1. 验证码信息下发接口 cap_union_prehandle ua:…

JS基础与Chrome介绍

导言 在Web开发中后端负责程序架构和数据管理,前端负责页面展示和用户交互;在这种前后端分离的开发方式中,以接口为标准来进行联调整合,为了保证接口在调用时数据的安全性,也为了防止请求参数被篡改,大多数…

白骑士的Python教学基础篇 1.5 数据结构

系列目录​​​​​​​ 上一篇:白骑士的Python教学基础篇 1.4 函数与模块 数据结构是编程语言中用于存储和组织数据的基本构件。在Python中,常见的数据结构包括列表(List)、元组(Tuple)、字典&#xff08…

深入理解 “androidx.databinding.DataBindingUtil“ 细节和使用

介绍 数据绑定(Data Binding)是 Android 中的一个强大功能,它允许你使用声明性格式而不是编程方式将布局中的 UI 组件绑定到应用中的数据源。androidx.databinding.DataBindingUtil 类是一个工具类,它提供了用于处理数据绑定的方…

容器技术-docker5

一、docker-compose 常用命令和指令 1. 概要 默认的模板文件是 docker-compose.yml,其中定义的每个服务可以通过 image 指令指定镜像或 build 指令(需要 Dockerfile)来自动构建。 注意如果使用 build 指令,在 Dockerfile 中设置…

【面试干货】Static关键字的用法详解

【面试干货】Static关键字的用法详解 1、Static修饰内部类2、Static修饰方法3、Static修饰变量4、Static修饰代码块5、总结 💖The Begin💖点点关注,收藏不迷路💖 在Java编程语言中,static是一个关键字,它可…

MT19937 64bit 机器上的实现及原理解析

1, mt19937 实现源码 mt19937-64bit_ex.cpp /*References:T. Nishimura, Tables of 64-bit Mersenne TwistersACM Transactions on Modeling and Computer Simulation 10. (2000) 348--357.M. Matsumoto and T. Nishimura,Mersenne Twister: a 623-dimensionally e…

electron vite react 创建一个项目

要使用 Electron、Vite 和 React 创建一个项目,你可以按照以下步骤操作: 1. 安装 Node.js 和 npm 首先,确保你的计算机上安装了 Node.js 和 npm(Node Package Manager)。你可以从 Node.js 官网 下载并安装。 2. 初始化一个新的项目 在你的工作目录下,创建一个新的文件…

水果商城外卖微信小程序模板

手机微信水果外卖,水果电商,水果商城网页小程序模板。包含:主页、列表页、详情页、购物车、个人中心。 水果商城外卖小程序模板