当前位置: 首页 > news >正文

达梦数据库获取每个数据库表的总条数及业务实战

达梦数据库获取每个数据库表的总条数

dba_tables表/all_tables表

在达梦数据库中,有一个dba_tables隐藏系统表里面会记录着每个数据库表的总条数(行数),但是这表的数据不是实时的,需要手动更新里面的数据

SELECT table_name,num_rows FROM dba_tables where owner = 'SS_MZ' 

上面sql通过owner来指定模式为SS_MZ,如果不需要指定可以去掉这个筛选条件

默认情况下,这个dba_tables的num_rows都NULL,这是因为需要手动去更新表的总条数,可以通过下面的方式手动更新统计信息

也可以通过sql来更新,指定模式名和表名即可,执行DBMS_STATS.GATHER_TABLE_STATS函数后就会更新dba_tables表里面的num_rows为最新的统计数据

DBMS_STATS.GATHER_TABLE_STATS('xx',             -- Schema模式名v_table_name,          -- 动态传入表名null,                  -- Column名null,                  -- Partnamefalse,                 -- No_invalidatenull                   -- Estimate_percent
);

好文参考:达梦数据库查询各表数据量/以及达梦更新统计信息-CSDN博客

使用游标动态更新多个表上的统计信息
DECLAREv_table_name VARCHAR(256);CURSOR table_cursor ISSELECT TABLE_NAMEFROM TABLE; 
BEGINOPEN table_cursor;LOOPFETCH table_cursor INTO v_table_name;EXIT WHEN table_cursor%NOTFOUND;-- 调用统计信息收集函数CALL DBMS_STATS.GATHER_TABLE_STATS('DATABASE',             -- Schema模式名【其实就是库名】v_table_name,          -- 动态传入表名null,                  -- Column名null,                  -- Partnamefalse,                 -- No_invalidatenull                   -- Estimate_percent);END LOOP;CLOSE table_cursor;
END;

骚戴理解:该 SQL 代码使用游标动态收集多个表上的统计信息。上面TABLE表里面TABLE_NAME字段存储的是数据库表名,然后把这个表名存储到v_table_name 中,通过游标来实现遍历,在遍历的过程中,对于每个表名,调用 DBMS_STATS.GATHER_TABLE_STATS 函数收集更新表统计信息(执行DBMS_STATS.GATHER_TABLE_STATS函数后就会更新dba_tables表里面的num_rows为最新的统计数据),在使用这个函数的时候需要指定模式名,例如上面的SS_MZ_DATA模式。这里我的业务场景是更新某个业务表里面存储的所有表的统计行数据,也就是我有一个业务表,里面有个字段存储着表名,我需要更新这些数据表的行数统计,因为在达梦数据库中,有一个dba_tables隐藏系统表里面会记录着每个数据库表的总条数(行数),但是这表不是实时的,需要手动更新里面的数据,所以才需要通过上面的游标去遍历,然后手动更新每个表的总条数(也就是调用DBMS_STATS.GATHER_TABLE_STATS函数来实现)。

http://www.lryc.cn/news/602337.html

相关文章:

  • 提取excel中的年月日
  • window显示驱动开发—Direct3D 11 视频播放改进
  • 你的连接不是专用连接
  • NI Ettus USRP X440 软件无线电
  • 28天0基础前端工程师完成Flask接口编写
  • Go 语言-->指针
  • Java-数构排序
  • WAIC看点:可交付AI登场,场景智能、专属知识将兑现下一代AI价值
  • vue怎么实现导入excel表功能
  • 基于开源AI智能名片链动2+1模式与S2B2C商城小程序的微商品牌规范化运营研究
  • IDEA 手动下载安装数据库驱动,IDEA无法下载数据库驱动问题解决方案,IDEA无法连接数据库解决方案(通用,Oracle为例)
  • idea启动java应用报错
  • 设计模式十二:门面模式 (FaçadePattern)
  • 结合项目阐述 设计模式:单例、工厂、观察者、代理
  • 记一次IDEA启动微服务卡住导致内存溢出问题
  • Java设计模式之<建造者模式>
  • idea编译报错 java: 非法字符: ‘\ufeff‘ 解决方案
  • 解决windows系统下 idea、CLion 控制台中文乱码问题
  • 机器学习sklearn:不纯度与决策树构建
  • Rust实战:AI与机器学习自动炒饭机器学习
  • Linux系统Centos7 安装mysql5.7教程 和mysql的简单指令
  • 搭建HAProxy高可用负载均衡系统
  • 【拓扑排序 缩点】P2272 [ZJOI2007] 最大半连通子图|省选-
  • Linux应用开发基础知识——LInux学习FreeType编程(七)
  • 【C++进阶】---- 二叉搜索树
  • 基于LangGraph Cli的智能数据分析助手
  • Android中PID与UID的区别和联系(2)
  • Go 语言面试题
  • 数据分析干货| 衡石科技可视化创作之仪表盘控件如何设置
  • GitLab 公共仓库:coding 用到的 git 命令