news 2026/4/23 7:24:12

学习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/4/19 2:47:44

DCT-Net人像处理进阶:多风格卡通化输出实现方法

DCT-Net人像处理进阶:多风格卡通化输出实现方法 1. 技术背景与问题提出 随着虚拟形象、社交娱乐和数字内容创作的快速发展,人像到卡通风格的转换技术(Portrait-to-Cartoon Translation)已成为AI图像生成领域的重要应用方向。传统…

作者头像 李华
网站建设 2026/4/22 20:19:42

三星固件下载终极指南:3步轻松获取官方系统文件

三星固件下载终极指南:3步轻松获取官方系统文件 【免费下载链接】samloader Download Samsung firmware from official servers 项目地址: https://gitcode.com/gh_mirrors/sa/samloader 还在为三星手机系统更新烦恼吗?想要安全下载官方固件却不知…

作者头像 李华
网站建设 2026/4/16 18:31:31

XPipe终极指南:一站式服务器管理神器深度解析

XPipe终极指南:一站式服务器管理神器深度解析 【免费下载链接】xpipe Your entire server infrastructure at your fingertips 项目地址: https://gitcode.com/GitHub_Trending/xp/xpipe 你是否曾经为管理多台服务器而头疼?在SSH连接、Docker容器…

作者头像 李华
网站建设 2026/4/18 5:20:06

5步掌握机器学习学习曲线:从模型诊断到精准优化

5步掌握机器学习学习曲线:从模型诊断到精准优化 【免费下载链接】machine-learning-yearning-cn 项目地址: https://gitcode.com/gh_mirrors/mac/machine-learning-yearning-cn 你是否在训练机器学习模型时遇到过这样的困惑:增加数据后模型性能为…

作者头像 李华
网站建设 2026/4/16 18:07:28

避坑指南:用Qwen3-VL实现图文问答的5个关键步骤

避坑指南:用Qwen3-VL实现图文问答的5个关键步骤 1. 引言:为什么选择Qwen3-VL进行图文问答? 随着多模态AI技术的发展,视觉语言模型(Vision-Language Model, VLM)在图像理解、OCR识别和图文推理等任务中展现…

作者头像 李华