达梦数据库(DM)常用管理SQL命令
一、基础信息查询
1. 版本与授权信息
-- 查询数据库版本(DM7/DM8)
SELECT * FROM v$version; -- DM7
SELECT id_code(); -- DM8
-- 查询授权信息
SELECT * FROM v$license;
2. 服务器配置查询
-- 服务器基本信息
SELECT*FROM V$SYSTEMINFO;
-- 查看所有配置参数
SELECT*FROM v$dm_ini;
-- 综合信息查询(字符集/页大小/大小写敏感等)
SELECT '实例名称' 选项,INSTANCE_NAME 值 FROM v$instance
UNION ALL SELECT '数据库版本',substr(svr_version,instr(svr_version,'(')) FROM v$instance
UNION ALL SELECT '字符集', CASE SF_GET_UNICODE_FLAG() WHEN '0' THEN 'GBK18030' WHEN '1' then 'UTF-8' when '2' then 'EUC-KR' end
UNION ALL SELECT '页大小', cast(PAGE()/1024 as varchar)
UNION ALL SELECT '簇大小', cast(SF_GET_EXTENT_SIZE() as varchar)
UNION ALL SELECT '大小写敏感',cast(SF_GET_CASE_SENSITIVE_FLAG() as varchar);
二、会话与性能监控
1. 会话管理
-- 查看所有会话
SELECT*FROM v$sessions;
-- 会话统计(按状态)
SELECTcount(*),state FROM v$sessions GROUPBY state;
-- 会话统计(按客户端IP)
SELECTcount(*),clnt_ip FROM v$sessions GROUPBY clnt_ip;
-- 终止指定会话
SP_CLOSE_SESSION(session_id);
2. SQL监控
-- 查询最近执行的SQL
SELECT * FROM v$sql_history;
-- 查看长时间运行的SQL
SELECT * FROM v$long_exec_sqls;
-- 查看锁等待情况
SELECT * FROM v$lock WHERE blocked=1;
三、对象管理
1. 表与字段查询
-- 查询用户下所有表
SELECT*FROM user_tables; -- 当前用户
SELECT*FROM all_tables WHERE owner='USER01'; -- 指定用户
-- 查询表字段信息
SELECT*FROM all_tab_cols WHERE owner='USER01';
-- 查看表注释
SELECT*FROM ALL_TAB_COMMENTS WHERE owner='USER01';
-- 查看字段注释
SELECT*FROM ALL_COL_COMMENTS WHERE owner='USER01';
2. 索引查询
-- 查看表索引
SELECT * FROM user_indexes WHERE table_name='表名';
-- 查看索引字段
SELECT * FROM user_ind_columns WHERE index_name='索引名';
四、存储与备份
1. 表空间管理
-- 查看表空间信息
SELECT*FROM v$tablespace;
-- 查看数据文件
SELECT*FROM v$datafile;
-- 表空间使用情况
SELECT
df.tablespace_name "表空间名称",
df.bytes/1024/1024 "总大小(MB)",
(df.bytes-fs.bytes)/1024/1024 "已用(MB)",
fs.bytes/1024/1024 "剩余(MB)",
ROUND(100*(df.bytes-fs.bytes)/df.bytes) "使用率(%)"
FROM
(SELECT tablespace_name, SUM(bytes) bytes
FROM dba_data_files GROUP BY tablespace_name) df,
(SELECT tablespace_name, SUM(bytes) bytes
FROM dba_free_space GROUP BY tablespace_name) fs
WHERE
df.tablespace_name = fs.tablespace_name;
-- 表空间使用情况简化查询(仅显示剩余空间)
sql
SELECT
tablespace_name,
SUM(bytes)/1024/1024AS "剩余空间(MB)"
FROM
dba_free_space
GROUP BY
tablespace_name;
2. 备份恢复
-- 查看备份信息
SELECT * FROM v$backupset;
-- 执行在线备份
BACKUP DATABASE FULL BACKUPSET '/backup/full_bak';
五、性能优化
1. 参数调整
-- 修改参数(内存参数需要重启)
SP_SET_PARA_VALUE(1, '参数名', 值);
2. 统计信息
-- 收集统计信息
DBMS_STATS.GATHER_TABLE_STATS('模式名','表名');
-- 查看统计信息
SELECT * FROM user_tab_statistics;
-- 内存使用情况
SELECT * FROM v$mem_pool;
掌握这些常用SQL命令,可以大大提高达梦数据库的管理效率。建议收藏备用,根据实际需求灵活运用。
本文链接:
/archives/dm_sql
版权声明:
本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自
数据生活,生活数据!
喜欢就支持一下吧