zoukankan      html  css  js  c++  java
  • 自动完成行迁移和行链接分析和统计脚本

    accept owner prompt " Enter the schema name to check for Row Chaining (RETURN for All): "
    promptpromptaccept table prompt " Enter the table name to check (RETURN for All tables owned by &owner): "
    promptpromptset head off serverout on term on feed off veri off echo off
    !clear
    promptdeclare
    v_owner varchar2(30);
    v_table varchar2(30);
    v_chains number;
    v_rows number;
    v_count number := 0;
    sql_stmt varchar2(100);
    dynamicCursor INTEGER;
    dummy INTEGER;
    cursor chains is
    select count(*) from chained_rows;
    cursor analyze is
    select owner, table_name
    from sys.dba_tables
    where owner like upper('%&owner%')
    and table_name like upper('%&table%')
    order by table_name;
    begin
    dbms_output.enable(64000);
    open analyze;
    fetch analyze into v_owner, v_table;
    while analyze%FOUND loop
    dynamicCursor := dbms_sql.open_cursor;
    sql_stmt := 'analyze table '||v_owner||'.'||v_table||' list chained rows into chained_rows';
    dbms_sql.parse(dynamicCursor, sql_stmt, dbms_sql.native);
    dummy := dbms_sql.execute(dynamicCursor);
    dbms_sql.close_cursor(dynamicCursor);
    open chains;
    fetch chains into v_chains;
    if (v_chains != 0) then
    if (v_count = 0) then
    dbms_output.put_line(CHR(9)||CHR(9)||CHR(9)||'<<<<< Chained Rows Found >>>>>');
    v_count := 1;
    end if;
    dynamicCursor := dbms_sql.open_cursor;
    sql_stmt := 'Select count(*) v_rows'||' From '||v_owner||'.'||v_table;
    dbms_sql.parse(dynamicCursor, sql_stmt, dbms_sql.native);
    dbms_sql.DEFINE_COLUMN(dynamicCursor, 1, v_rows);
    dummy := dbms_sql.execute(dynamicCursor);
    dummy := dbms_sql.fetch_rows(dynamicCursor);
    dbms_sql.COLUMN_VALUE(dynamicCursor, 1, v_rows);
    dbms_sql.close_cursor(dynamicCursor);
    dbms_output.put_line(v_owner||'.'||v_table);
    dbms_output.put_line(CHR(9)||'---> Has '||v_chains||' Chained Rows and '||v_rows||' Num_Rows
    in it!');
    dynamicCursor := dbms_sql.open_cursor;
    sql_stmt := 'truncate table chained_rows';
    dbms_sql.parse(dynamicCursor, sql_stmt, dbms_sql.native);
    dummy := dbms_sql.execute(dynamicCursor);
    dbms_sql.close_cursor(dynamicCursor);
    v_chains := 0;
    end if;
    close chains;
    fetch analyze into v_owner, v_table;
    end loop;
    if (v_count = 0) then
    dbms_output.put_line('No Chained Rows found in the '||v_owner||' owned Tables!');
    end if;
    close analyze;
    end;
    /
    set feed on head on
    prompt

  • 相关阅读:
    小米手机无法连接eclipse调试解决方案
    黏性控件的使用
    快速索引 (对View的自定义)
    侧滑面板(对viewGroup的自定义)
    安卓程序员要拿到5000和1w的薪资,分别需要掌握哪些技术?
    1、话说linux内核
    嵌入式软件工程师面试
    arm汇编之 bne与beq
    不要做浮躁的嵌入式系统工程师
    内核里面writel(readl)是如何实现的
  • 原文地址:https://www.cnblogs.com/wcwen1990/p/6660444.html
Copyright © 2011-2022 走看看