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

达梦数据库和人大金仓数据库对数据库的运行查看情况

1、查看服务器自身资源使用情况
查看内存: free -g
查看整体负载: top
查看磁盘io : iostat -d -x 1
2、查看数据库占用服务器内存情况,登录DM管理工具,达梦数据库使用的内存大致等于 BUFFER + MPOOL,对应的 SQL 语句为:

select 
(select sum(n_pages * page_size)/1024/1024 from v$bufferpool)||'MB' as BUFFER_SIZE, 
( select sum(total_size)/1024/1024 from v$mem_pool)||'MB' as mem_pool, 
(select sum(n_pages * page_size)/1024/1024 from v$bufferpool)+(select sum(total_size)/1024/1024 from 
v$mem_pool)||'MB' as TOTAL_SIZE 
From dual; 

3、查看服务器会话情况,此处统计>2s,登录DM管理工具

select  * from ( SELECT sess_id,sql_text,state,datediff(ss,last_recv_time,sysdate) Y_EXETIME,to_char(SF_GET_SESSION_SQL(SESS_ID)) fullsql,clnt_ip FROM V$SESSIONS WHERE STATE='ACTIVE')
where Y_EXETIME>=2;

4、查看数据库空间使用情况

select a.tablespace_name,round(a.SPACE_LIMIT/1024/1024/1024,4) "总空间(GB)" , round((a.alloc_space-b.alloc_space_free)/1024/1024/1024,4) "已使用(GB)" ,round((a.alloc_space-b.alloc_space_free)/a.SPACE_LIMIT,6)*100 "使用率(%)" from
(select tablespace_name,sum(BYTES) alloc_space,sum(MAXBYTES) SPACE_LIMIT from SYS.DBA_DATA_FILES group by TABLESPACE_NAME) a,
(select tablespace_name,sum(BYTES) alloc_space_free from DBA_FREE_SPACE group by tablespace_name) b --已分配后的free空间,包括已使用后删除的部分
where a.tablespace_name=b.tablespace_name;

基于PostgreSQL 系列

SELECTpg_size_pretty(pg_size_bytes(current_setting('shared_buffers'))) AS shared_buffers,pg_size_pretty(pg_size_bytes(current_setting('work_mem'))) AS work_mem,pg_size_pretty(pg_total_relation_size('pg_catalog.pg_class')) AS buffer_size
FROM pg_settings
WHEREname = 'shared_buffers';

2查看服务器会话情况(统计执行时间 > 2s)

SELECT pid AS sess_id,query AS sql_text,state,extract(epoch from (now() - query_start)) AS y_exetime,client_addr AS clnt_ip
FROM pg_stat_activity
WHERE state = 'active' AND extract(epoch from (now() - query_start)) >= 2;

3查看数据库空间使用情况
对于查看数据库空间使用情况,可以使用 pg_tablespace 和 pg_class 视图来计算空间的使用情况:

SELECT t.spcname AS tablespace_name,pg_size_pretty(pg_tablespace_size(t.spcname)) AS total_space,pg_size_pretty(pg_tablespace_size(t.spcname) - COALESCE(SUM(pg_total_relation_size(c.oid)), 0)) AS used_space,ROUND((pg_tablespace_size(t.spcname) - COALESCE(SUM(pg_total_relation_size(c.oid)), 0)) * 100.0 / pg_tablespace_size(t.spcname), 2) AS usage_percentage
FROM pg_tablespace t
LEFT JOIN pg_class c ON t.oid = c.relnamespace
GROUP BY t.spcname;
  1. 备份表注释
    备份表注释的 SQL 查询,已修改为使用 pg_description:
SELECT concat('COMMENT ON TABLE ', t.table_schema, '.', t.table_name, ' IS ''', coalesce(d.description, ''), ''';'
) 
FROM information_schema.tables t
LEFT JOIN pg_catalog.pg_description d ON d.objoid = (SELECT oid FROM pg_catalog.pg_class WHERE relname = t.table_name AND relnamespace = (SELECT oid FROM pg_catalog.pg_namespace WHERE nspname = t.table_schema))
WHERE t.table_schema = 'public';
  1. 清除表注释
    要清除表的注释:
SELECT concat('COMMENT ON TABLE ', t.table_schema, '.', t.table_name, ' IS '''';'
) AS sql_statement
FROM information_schema.tables t
WHERE t.table_schema = 'public'  -- 替换为您要清除注释的模式名称
AND t.table_type = 'BASE TABLE';  -- 仅选择基本表
  1. 备份列定义
    备份列定义的 SQL 查询:
SELECT concat('ALTER TABLE ', c.table_schema, '.', c.table_name, ' ALTER COLUMN ', c.column_name, ' TYPE ', c.data_type, CASE WHEN c.is_nullable = 'YES' THEN '' ELSE ' SET NOT NULL' END,CASE WHEN c.column_default IS NULL THEN ''WHEN c.data_type IN ('character varying', 'character') OR (c.data_type IN ('date', 'timestamp without time zone', 'timestamp with time zone') AND c.column_default != 'CURRENT_TIMESTAMP') THEN concat(' DEFAULT ''', c.column_default, '''')ELSE concat(' DEFAULT ', c.column_default)END,' COMMENT ''', coalesce(dc.description, ''), ''';'
) AS s
FROM information_schema.columns c
LEFT JOIN pg_catalog.pg_description dc ON dc.objoid = (SELECT oid FROM pg_catalog.pg_class WHERE relname = c.table_name AND relnamespace = (SELECT oid FROM pg_catalog.pg_namespace WHERE nspname = c.table_schema)
)
WHERE c.table_schema = 'public'
GROUP BY c.table_schema, c.table_name, c.column_name, c.data_type, c.is_nullable, c.column_default, dc.description;

适用于 PostgreSQL 的表名、列名、数据类型及其相应的描述

SELECT t.table_name AS 表名,obj_description(t.table_name::regclass) AS 表注释,c.column_name AS 列名,c.data_type AS 数据类型,c.character_maximum_length AS 长度,c.is_nullable AS 是否为空,c.column_default AS 默认值,col_desc.description AS 备注,CASE WHEN c.column_name IN (SELECT a.attname FROM pg_index i JOIN pg_attribute a ON a.attnum = ANY(i.indkey) WHERE i.indrelid = t.table_name::regclass AND i.indisprimary) THEN 'pk' ELSE '' END AS extra
FROM information_schema.tables t
JOIN information_schema.columns c ON c.table_name = t.table_name AND c.table_schema = t.table_schema
LEFT JOIN pg_catalog.pg_description col_desc ON col_desc.objoid = c.table_name::regclass AND col_desc.objsubid = c.ordinal_position
WHERE t.table_schema = 'public' AND t.table_type = 'BASE TABLE';

在这里插入图片描述

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

相关文章:

  • Spring Boot解决 406 错误之返回对象缺少Getter/Setter方法引发的问题
  • Automa入门教程详解(Automa工作流概述)
  • Python并发编程库:Asyncio的异步编程实战
  • vueui vxe-form 分享实现表单项的联动禁用,配置式表单方式的用法
  • 供应SW1655集成功率管的高频率、高性能同步整流
  • 电动机出现故障后怎么处理?
  • 练习LabVIEW第四十题
  • 蓝牙BLE开发——红米手机无法搜索蓝牙设备?
  • UE5.4 PCG Layered Biomes插件
  • 搭建你的私人云盘:使用File Browser与cpolar实现公网传输文件
  • QT/QT QUICK与前端WEB开发的区别
  • Python+Playwright(Nuitka、Pyinstaller打包)
  • 2024年前三季度币安、OKX等五大交易所上币表现分析
  • Go语言sync.WaitGroup与errgroup.Group用法详解
  • 【大数据学习 | kafka】kafka的ack和一致性
  • 学习虚幻C++开发日志——定时器
  • 问政浔川(1)—— 有了浔川社团官方联合会和社团官方,那么浔川总社部是干什么的呢?
  • 区块链技术应用--电子签章(模块三)
  • 多面体定义+多面体是凸集+多面体的重要性质
  • 为什么 Allow 配合 meta noindex 比使用Disallow好?
  • 通讯学徒学习日记
  • 迪杰斯特拉算法
  • IPsec传输模式与隧道模式的深度解析及应用实例
  • 实现Vue3/Nuxt3 预览excel文件
  • 【AI落地应用实战】HivisionIDPhotos AI证件照制作实践指南
  • php实现sl651水文规约解析
  • 【Linux】简易版shell
  • 宝塔Linux面板安装PHP扩展失败报wget: unable to resolve host address ‘download.bt.cn’
  • 问:Redis常见性能问题及解法?
  • Imperva 数据库与安全解决方案