- 获取Oracle所在物理机信息,如内存、CPU等信息
SELECT * FROM V$OSSTAT
- 获取cpu核数
SELECT cpu_count_current FROM v$license
通过下述SQL语句可以获取当前用户的数据库结构信息。
- 获取数据库所有表的大小之和
SELECT SUM(bytes) AS NUM FROM USER_SEGMENTS WHERE SEGMENT_TYPE = 'TABLE';
- 获取当表的列信息(列名、数据类型、长度等)
-- ? 为表名
SELECT * FROM USER_TAB_COLUMNS WHERE TABLE_NAME = ?;
- 获取表的定义语句
-- ? 为表名
SELECT DBMS_METADATA.GET_DDL('TABLE', ?) FROM DUAL;
- 获取表注释信息
-- ? 为表名
SELECT * FROM USER_TAB_COMMENTS WHERE TABLE_NAME = ? AND COMMENTS IS NOT NULL;
- 获取表字段注释信息
-- ? 为表名
SELECT * FROM USER_COL_COMMENTS WHERE TABLE_NAME = ? AND COMMENTS IS NOT NULL;
- 获取表记录数
方法一:
-- ? 为表名
SELECT COUNT(1) FROM ?;
方法二:
采用该方法前需先进行analyze操作,否则获取的记录数为上次analyze记录.
-- ? 为表名,对指定表进行analyze操作
ANALYZE TABLE ? COMPUTE STATISTICS;
-- 通过存储过程对用户所有的表进行analyze
CREATE OR REPLACE PROCEDURE "REFRESHROWS" AS
BEGIN
DBMS_STATS.GATHER_SCHEMA_STATS ( OWNNAME => 'DATA', CASCADE => TRUE );
END;
查询表记录数
-- 第一个?为表的拥有者,第二个?为表名
SELECT TABLE_NAME, NUM_ROWS FROM all_tables WHERE OWNER = ? AND TABLE_NAME = ?;
- 获取所有函数信息
SELECT * FROM USER_OBJECTS WHERE OBJECT_TYPE = 'FUNCTION';
- 获取所有存储过程信息
SELECT * FROM USER_OBJECTS WHERE OBJECT_TYPE = 'PROCEDURE';
- 获取所有触发器信息
SELECT * FROM USER_OBJECTS WHERE OBJECT_TYPE = 'TRIGGER';
- 获取所有视图信息
SELECT * FROM USER_VIEWS;
- 获取所有序列信息
SELECT * FROM USER_SEQUENCES;
- 获取所有序列信息
SELECT * FROM USER_JOBS;