1. 程式人生 > 其它 >oracle整庫統計庫表資料量--儲存過程

oracle整庫統計庫表資料量--儲存過程

方案一:

analyze: analyze table table_name compute statistics;

1、生成analyze的sql。

1 select 'analyze table '|| table_name || ' compute statistics; ' from user_tables;

2、批量執行analyze的sql。

3、查詢統計結果

select t.table_name, t.NUM_ROWS from user_tables t

查詢大於一百萬資料量的表

1 select t.table_name,t.num_rows from user_tables t where
t.num_rows > 1000000

方案二: 儲存過程

1、建立儲存過程 ----統計資料庫表資料量

 1 CREATE OR REPLACE PROCEDURE TABLES_ROWS_COUNT
 2 AS
 3   CREATE_SQL    VARCHAR2(2000);
 4   P_TABLE_NAME  VARCHAR2(2000);
 5 
 6 BEGIN
 7   -- EXECUTE IMMEDIATE 'DROP TABLE CHECK_TABLE_COUNT';
 8    EXECUTE IMMEDIATE 'CREATE TABLE T_ROWS_COUNT (TABLE_NAME varchar2(200)  ,COUNT number)
'; 9 FOR RESOURCE_OBJ IN (SELECT T.TABLE_NAME 10 FROM USER_TABLES T 11 ORDER BY T.TABLE_NAME) LOOP 12 P_TABLE_NAME := RESOURCE_OBJ.TABLE_NAME; 13 CREATE_SQL := 'insert into T_ROWS_COUNT(TABLE_NAME,COUNT) SELECT ''' ||P_TABLE_NAME|| '''
AS TABLE_NAME , COUNT(1) AS COUNT FROM ' || P_TABLE_NAME; 14 EXECUTE IMMEDIATE CREATE_SQL; 15 COMMIT; 16 END LOOP; 17 18 END TABLES_ROWS_COUNT;

2、執行儲存過程

begin
  -- Call the procedure
  TABLES_ROWS_COUNT;
end;

3、輸出統計結果

1 select * from T_ROWS_COUNT ;