一、基础信息查询

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命令,可以大大提高达梦数据库的管理效率。建议收藏备用,根据实际需求灵活运用。

文章作者: 糊糊的蛋糊
本文链接:
版权声明: 本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 数据生活,生活数据
数据库 达梦
喜欢就支持一下吧