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 ;
  • 相关阅读:
    SpringBoot定制修改Servlet容器
    springboot配置i18n
    idea properties编码问题
    多线程分页查询
    浏览器 私有属性&内核
    css添加样式的四种方式
    html、css、js注释
    JS中的 变量提升
    ECMAScript
    NOSCRIPT标签的用处
  • 原文地址:https://www.cnblogs.com/cooper-73/p/15046387.html
Copyright © 2011-2022 走看看