电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

如何获取oracle按表大小排行前50名列表信息?

来源:金蝶云社区作者:金蝶2024-09-224

如何获取oracle按表大小排行前50名列表信息?


进入sqlplus ,并运行下面脚本,就可以得到

   set lines 200
 set pages 1000
  column OWNER format a25
  column TABLE_NAME format a25

set serveroutput on




DECLARE
  --v_tableowner    varchar(50) := 'LUO';
  t_OWNER         varchar(50);
  t_TABLE_NAME    varchar(50);
  t_BYTES         number(30);
  v_LAST_ANALYZED date;
  v_NUM_ROWS      number(30);
  v_date          char(10);
  v_text          varchar2(300);
 
  v_text2          varchar2(3000);
  CURSOR c1 IS
    select owner, TABLE_NAME, LAST_ANALYZED, NUM_ROWS
      from (select OWNER, TABLE_NAME,  LAST_ANALYZED, NUM_ROWS,  blocks * 8192 / 1024 / 1024
              from dba_tables
             where (LAST_ANALYZED is not null
               and num_rows > 10000
               ) or TABLE_NAME='T_BAS_ATTACHMENT'
             order by 5 desc) inner1
     where rownum < 51;
BEGIN
  select to_char(sysdate, 'yyyy_mm_dd') into v_date from dual;
  v_text := 'create table TABLEINFO_DB_' || v_date || '(OWNER varchar2(40),TABLE_NAME varchar2(60),LAST_ANALYZED DATE,NUM_ROWS number(20),tablesize_MBytes number(20))';

  execute immediate v_text;


  OPEN c1;
  LOOP
    FETCH c1
      INTO t_OWNER, t_TABLE_NAME, v_LAST_ANALYZED, v_NUM_ROWS;
   
    EXIT WHEN c1%NOTFOUND;
    select tabinfo.OWNER,
           tabinfo.TABLE_NAME,
           sum(tabinfo.BYTES) / 1024 / 1024
      into t_OWNER, t_TABLE_NAME, t_BYTES
      from (SELECT A.OWNER,
                   A.TABLE_NAME,
                   A.ALLSEGMENT,
                   B.SEGMENT_TYPE,
                   B.BYTES
              FROM (SELECT OWNER,
                           OWNER || '.' || TABLE_NAME AS TABLE_NAME,
                           TABLE_NAME allsegment
                      FROM DBA_TABLES
                     WHERE OWNER = t_OWNER
                       AND TABLE_NAME = t_TABLE_NAME
                    UNION
                    SELECT OWNER,
                           OWNER || '.' || TABLE_NAME AS TABLE_NAME,
                     

如何获取oracle按表大小排行前50名列表信息?

进入sqlplus ,并运行下面脚本,就可以得到 set lines 200 set pages 1000 column OWNER format a25 column TABLE_NAME f...
点击下载文档文档为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

已经是第一篇
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信