zoukankan      html  css  js  c++  java
  • 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 ;
  • 相关阅读:
    02-17 位图验证码(一般处理程序)+AJAX
    02-18 报表
    SQLite 函数大全
    SQLite中的时间日期函数(转)
    DES,AeS加解密,MD5,SHA加密
    suspendlayout
    AES--高级数据加密标准
    C#中Validating和Validated事件
    Net操作Excel(终极方法NPOI)
    decimal,float和double的区别
  • 原文地址:https://www.cnblogs.com/cooper-73/p/15046387.html
Copyright © 2011-2022 走看看