资讯动态

达梦数据库日常运维SQL和问题排查

发布时间:2026/9/29 6:48:07 来源:尧图企业网站定制
目录1、达梦基础运维SQL1达梦版本信息和授权信息2数据库实例信息和参数信息2、达梦中级运维SQL1查看达梦数据库表空间2查看达梦数据库用户信息3查看达梦数据库模式信息及其拥有者4查看达梦数据库表结构5:达梦数据库查看各个模式下表、视图、触发器、索引等信息数量6达梦数据库查看会话7达梦数据库查看阻塞8达梦数据库查看慢sql9达梦数据库查看死锁3、达梦高级运维SQL1达梦数据库查看表空间使用情况2:达梦数据库KILL长时间会话3:达梦数据库定位阻塞会话和阻塞信息4达梦数据库查看表数据信息5达梦数据库统计信息更新6达梦数据库ET性能分析工具1、达梦基础运维SQL1达梦版本信息和授权信息SELECT * FROM v$version; -- DM7 SELECT id_code(); -- DM7--DM8 SELECT * FROM V$LICENSE; --授权信息2数据库实例信息和参数信息-- 达梦数据库实例参数 SELECT 实例名称 AS 选项, INSTANCE_NAME AS 值 FROM V$INSTANCE SELECT 字符集, CASE SF_GET_UNICODE_FLAG() WHEN 0 THEN GB18030 WHEN 1 THEN UTF-8 WHEN 2 THEN EUC-KR ELSE UNKNOWN END UNION ALL SELECT 页大小(单位KB), CAST(PAGE() / 1024 AS VARCHAR) UNION ALL SELECT 簇大小(单位页数), CAST(SF_GET_EXTENT_SIZE() AS VARCHAR) UNION ALL SELECT 大小写敏感, CASE SF_GET_CASE_SENSITIVE_FLAG() WHEN 1 THEN 是 ELSE 否 END; --达梦数据库配置文件参数 SELECT PARA_NAME,PARA_VALUE FROM V$DM_INI;2、达梦中级运维SQL1查看达梦数据库表空间--查看达梦数据库表空间 SELECT T.NAME AS TABLESPACE_NAME, F.PATH AS FILE_PATH FROM V$TABLESPACE T, V$DATAFILE F WHERE T.ID F.GROUP_ID;2查看达梦数据库用户信息-- 查看所有用户的账户状态和默认表空间 SELECT USERNAME, ACCOUNT_STATUS, DEFAULT_TABLESPACE, CREATED FROM DBA_USERS;3查看达梦数据库模式信息及其拥有者-- 查看模式和用户归属关系 SELECT SCH_OBJ.NAME AS SCHEMA_NAME, USER_OBJ.NAME AS OWNER_NAME FROM (SELECT NAME, PID FROM SYS.SYSOBJECTS WHERE TYPE$SCH) SCH_OBJ, (SELECT NAME, ID FROM SYS.SYSOBJECTS WHERE TYPE$UR AND SUBTYPE$USER) USER_OBJ WHERE SCH_OBJ.PID USER_OBJ.ID ORDER BY SCH_OBJ.NAME;4查看达梦数据库表结构-- DISQL中查看 DESC [schema_name.]table_name; -- SP_TABLEDEF系统过程查看 CALL SP_TABLEDEF(schema_name, table_name); -- DBMS_METADATA.GET_DDL系统包查看 SELECT DBMS_METADATA.GET_DDL(TABLE, table_name, schema_name) FROM DUAL;5:达梦数据库查看各个模式下表、视图、触发器、索引等信息数量-- 查看各个模式下表、视图、触发器、索引等信息数量 SELECT OWNER 模式名, OBJECT_TYPE 对象类型, COUNT(*) 数量 FROM DBA_OBJECTS WHERE OWNER IN (MMIS_INNOVATION, MMIS_HD, SENYI, WANGHAI, GK_INNOVATION, SCM_INNOVATION) GROUP BY OWNER, OBJECT_TYPE ORDER BY OWNER, OBJECT_TYPE;6达梦数据库查看会话--查看数据库会话 SELECT * FROM V$SESSIONS;7达梦数据库查看阻塞--查看数据库阻塞 select id,wait_for_id,wait_time,thrd_id from v$trxwait;8达梦数据库查看慢sql--最近1000条慢SQL SELECT * FROM V$LONG_EXEC_SQLS; --系统启动累计最慢SQL SELECT * FROM V$V$SYSTEM_LONG_EXEC_SQLS;9达梦数据库查看死锁--查看死锁记录 SELECT * FROM V$DEADLOCK_HISTORY;3、达梦高级运维SQL1达梦数据库查看表空间使用情况--查看表空间使用情况 SELECT (SELECT MAX(NAME) FROM V$TABLESPACE WHERE IDGROUP_ID) AS 表空间名称, PATH 数据文件, TO_CHAR(TOTAL_SIZE*PAGE/1024/1024) AS 总大小(MB), TO_CHAR(FREE_SIZE*PAGE/1024/1024) AS 空闲大小(MB), (TO_CHAR(100 - FREE_SIZE*100/TOTAL_SIZE))||% AS 使用率(%), CASE AUTO_EXTEND WHEN 0 THEN 未开启 WHEN 1 THEN 开启 END AS 自动扩展, MAX_SIZE AS 最大可扩展大小(MB) FROM V$DATAFILE;2:达梦数据库KILL长时间会话--杀死active状态超过180秒的会话 SELECT SP_CLOSE_SESSION( || SESS_ID || ); AS kill_command, SESS_ID, SF_GET_SESSION_SQL(SESS_ID) AS current_sql, DATEDIFF(SS, LAST_RECV_TIME, SYSDATE) AS active_seconds, CLNT_IP, USER_NAME FROM V$SESSIONS WHERE STATE ACTIVE AND DATEDIFF(SS, LAST_RECV_TIME, SYSDATE) 180 -- 超过180秒 ORDER BY active_seconds DESC;3:达梦数据库定位阻塞会话和阻塞信息---查看会话阻塞和被阻塞会话信息 SELECT SESS_ID, USER_NAME, CLNT_IP, SQL_TEXT, STATE FROM V$SESSIONS WHERE TRX_ID 查到的WAIT_FOR_ID; -- 被阻塞的会话信息 WAIT_SESS.SESS_ID AS 被阻塞会话ID, WAIT_SESS.SQL_TEXT AS 被阻塞最后执行的SQL, WAIT_SESS.STATE AS 被阻塞会话状态, -- 阻塞源会话信息 HOLD_SESS.SESS_ID AS 阻塞源会话ID, HOLD_SESS.SQL_TEXT AS 阻塞源最后执行的SQL, HOLD_SESS.STATE AS 阻塞源会话状态, -- 阻塞详情 TRXWAIT.WAIT_TIME AS 已等待时间毫秒 FROM V$TRXWAIT TRXWAIT LEFT JOIN V$SESSIONS WAIT_SESS ON WAIT_SESS.TRX_ID TRXWAIT.ID LEFT JOIN V$SESSIONS HOLD_SESS ON HOLD_SESS.TRX_ID TRXWAIT.WAIT_FOR_ID ORDER BY TRXWAIT.WAIT_TIME DESC;4达梦数据库查看表数据信息--达梦数据库查看表数据量大小和表数据量 SELECT OWNER, TABLE_NAME, TABLESPACE_NAME, STATUS, NUM_ROWS , TABLE_USED_SPACE(OWNER, TABLE_NAME) * PAGE() / 1024 / 1024 AS SIZE_MB FROM ALL_TABLES WHERE OWNER NOT IN (SYS, SYSAUDITOR, SYSSSO, CTISYS) --查看数据行数前100的表 SELECT T2.NAME AS 模式名, T1.NAME AS 表名, TABLE_ROWCOUNT(T2.NAME,T1.NAME) AS 行数 FROM SYSOBJECTS T1, SYSOBJECTS T2 WHERE T1.SCHID T2.ID AND T1.SUBTYPE$ UTAB AND T2.TYPE$ SCH ORDER BY 3 DESC;5达梦数据库统计信息更新--按表更新统计信息 DBMS_STATS.GATHER_TABLE_STATS( 模式名, -- 对象所属的模式名 表名, -- 目标表名 NULL, -- 分区名NULL表示整个表 100, -- 估算百分比(1-100)100为精确统计[reference:2] FALSE, -- 是否聚合所有分区的统计信息FALSE表示否[reference:3] FOR ALL COLUMNS SIZE AUTO -- 指定收集哪些列的统计信息AUTO让系统自动判断 ); --按模式更新统计信息 DBMS_STATS.GATHER_SCHEMA_STATS( 模式名, -- 目标模式名 100, -- 估算百分比(1-100) TRUE, -- 是否强制重新分析即使统计信息是最新的 FOR ALL COLUMNS SIZE AUTO -- 收集所有列的统计信息 );6达梦数据库ET性能分析工具--开启会话监控 alter session set MONITOR_SQL_EXEC1; --创建测试表并写入数据 CREATE TABLE T1 AS SELECT LEVEL c1,LEVEL||abc c2 FROM dual CONNECT BY LEVEL10000; --执行查询 SELECT * FROM T1 WHERE c2 LIKE 5000%; --ET查看各部分耗时 ET(执行号); --EXPLAIN查看执行计划 EXPLAIN SELECT * FROM T1 WHERE c2 LIKE 5000%; --添加索引优化 CREATE INDEX idx_c2_t1 ON T1(c2);执行添加索引后执行计划

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑