news 2026/6/9 19:54:08

学习python调用dmpython库获取达梦数据库模式信息的基本方式

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
学习python调用dmpython库获取达梦数据库模式信息的基本方式

采用dmpython库连接达梦数据库,通过以下查询方式获取某一schema的所有表信息,然后获取数据库表的数据量、占用空间及实际大小:
1)查询表dba_tables获取指定schema的所有数据库表;
2)通过select count(1)查询每张表中的数据条数;
3)通过SELECT TABLE_USED_SPACE查询每张表的占用数据页数;
4)通过SELECT TABLE_USED_PAGES查询每张表的实际使用数据页数;
5)通过查询表V$DM_INI获取数据页数的大小。

基于上述查询方式获取指定模式的数据库表信息,并将表信息以字典和元组形式保存,最终序列化到本地json文件内,主要程序如下所示:

importdmPythonimportjson queryresult={}schemaname='SCHOOL'# 创建连接conn=dmPython.connect(server="127.0.0.1",port=5236,user="XXXXXX",password="XXXXXXXXX",schema=schemaname)# 执行SQL查询cursor=conn.cursor()cursor.execute("select TABLE_NAME from dba_tables where owner='SCHOOL'")tables=cursor.fetchall()fortableintables:tablename=str(table[0])# 获取表中数据总数cursor.execute("select count(1) from "+str(tablename))rowcount=cursor.fetchone()# 获取表占用空间 KBcursor.execute("SELECT TABLE_USED_SPACE( '"+schemaname+"', '"+str(tablename)+"') * PARA_VALUE / 1024 FROM V$DM_INI WHERE PARA_NAME = 'GLOBAL_PAGE_SIZE'")tabletotalsize=cursor.fetchone()# 获取表使用空间 KBcursor.execute("SELECT TABLE_USED_PAGES( '"+schemaname+"', '"+str(tablename)+"') * PARA_VALUE / 1024 FROM V$DM_INI WHERE PARA_NAME = 'GLOBAL_PAGE_SIZE'")tableusedsize=cursor.fetchone()queryresult[tablename]=(rowcount[0],int(tabletotalsize[0]),int(tableusedsize[0]))# 关闭连接cursor.close()conn.close()savename='tableinfo.json'print(queryresult)save_data={"dict_count":len(queryresult),"data":{key:list(value)forkey,valueinqueryresult.items()}}withopen(savename,'w',encoding='utf-8')asf:json.dump(save_data,f,indent=4,ensure_ascii=False)

运行上述程序,保存第一次的数据库表信息,然后向数据库表中插入数据,再次运行程序保存第二次数据,如下图所示,可以看出前后两次的数据库表变化,后续学习并测试如何通过程序自动比较前后两次的数据库表信息变化。

参考文献:
[1]https://eco.dameng.com/community/post/20241218072309WHQAOUSCT4WRAEQYOX
[2]https://vip.kingdee.com/knowledge/616295238575048448?productLineId=8&isKnowledge=2&lang=zh-CN

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/3 0:44:12

Windows系统第三方库路径配置技术指南:以espeak-ng为例

Windows系统第三方库路径配置技术指南:以espeak-ng为例 【免费下载链接】VoiceCraft 项目地址: https://gitcode.com/GitHub_Trending/vo/VoiceCraft 技术背景与问题诊断 在Windows系统环境中集成第三方库时,路径配置是开发人员面临的主要技术障…

作者头像 李华
网站建设 2026/6/7 13:08:12

KIMI AI免费API部署终极指南:从零到精通完整教程

KIMI AI免费API部署终极指南:从零到精通完整教程 【免费下载链接】kimi-free-api 🚀 KIMI AI 长文本大模型白嫖服务,支持高速流式输出、联网搜索、长文档解读、图像解析、多轮对话,零配置部署,多路token支持&#xff0…

作者头像 李华
网站建设 2026/6/9 20:13:18

ChatTTS-ui离线语音合成终极指南:断网环境也能轻松生成语音

ChatTTS-ui离线语音合成终极指南:断网环境也能轻松生成语音 【免费下载链接】ChatTTS-ui 匹配ChatTTS的web界面和api接口 项目地址: https://gitcode.com/GitHub_Trending/ch/ChatTTS-ui 在当今数字化时代,语音合成技术已经成为我们日常生活和工作…

作者头像 李华
网站建设 2026/6/5 12:11:50

CV-UNet Alpha通道解析:专业级抠图技术详解

CV-UNet Alpha通道解析:专业级抠图技术详解 1. 技术背景与核心价值 随着图像处理在电商、设计、影视等领域的广泛应用,精准高效的图像抠图(Image Matting) 成为关键需求。传统基于边缘检测或颜色阈值的抠图方法已难以满足复杂场…

作者头像 李华
网站建设 2026/6/5 11:29:54

haxm is not installed原因分析及系统学习路径推荐

从“haxm is not installed”说起:一次深入虚拟化底层的技术突围 你有没有在点击 Android Studio 的“Run”按钮后,眼睁睁看着模拟器卡在启动界面,控制台跳出一行冰冷提示: HAXM is not installed! 那一刻的心情,就…

作者头像 李华
网站建设 2026/5/24 15:16:21

OpenDataLab MinerU指南:法律文件关键日期提取

OpenDataLab MinerU指南:法律文件关键日期提取 1. 引言 在法律、金融和行政管理等领域,文档中关键信息的快速提取是提升工作效率的核心环节。其中,关键日期识别(如合同签署日、生效日、终止日等)往往决定了后续流程的…

作者头像 李华