SELECT TABLESPACE_NAME, STATUS, CONTENTS FROM DBA_TABLESPACES;
计算使用率(超过 80% 建议扩容或清理):
SELECT a.TABLESPACE_NAME,
ROUND(a.BYTES/1024/1024,2) “总大小(MB)”,
ROUND((a.BYTES-b.BYTES)/1024/1024,2) “已用(MB)”,
ROUND((a.BYTES-b.BYTES)/a.BYTES*100,2) “使用率%”
FROM (SELECT TABLESPACE_NAME,SUM(BYTES) BYTES FROM DBA_DATA_FILES GROUP BY TABLESPACE_NAME) a,
(SELECT TABLESPACE_NAME,SUM(BYTES) BYTES FROM DBA_FREE_SPACE GROUP BY TABLESPACE_NAME) b
WHERE a.TABLESPACE_NAME = b.TABLESPACE_NAME;
活跃会话与慢 SQL:
活跃会话:
SELECT s.SID, s.USERNAME, s.STATUS, s.MACHINE, sq.SQL_TEXT
FROM V$SESSION s JOIN V$SQL sq ON s.SQL_ID = sq.SQL_ID
WHERE s.STATUS=‘ACTIVE’ AND s.USERNAME IS NOT NULL;
耗时最长 SQL:
SELECT SQL_ID, SQL_TEXT, ELAPSED_TIME/1000000 “耗时(秒)”, EXECUTIONS
FROM V$SQL ORDER BY ELAPSED_TIME DESC FETCH FIRST 10 ROWS ONLY;
当前会话跟踪文件:
SELECT value FROM v$diag_info WHERE name=‘Default Trace File’;
报告与分析:在具备相应许可时,使用 AWR/ASH 报告定位瓶颈。
性能优化要点:
执行计划:
SET AUTOTRACE ON EXPLAIN; 或
EXPLAIN PLAN FOR ; SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY());
索引与统计:
创建合适索引(如 CREATE INDEX idx_product ON sales(product_id););