表分析


  1. --下面的语句既可以用于上线前的脏数据分析:上线之前将产生的垃圾数据删除,然后运行下面的语句,收集完后再查看 dba_tables 中 NUM_ROWS 字段中
  2. --是否有大于0的表,根据这个字段来分析是否还有脏数据没有清除干净
  3. --也能用于上线后的数据分析

  4. SELECT 'exec dbms_stats.gather_table_stats('||''''||a.owner||''''||','||''''||a.table_name||''''||') ;' FROM dba_tables a WHERE a.owner='ZLHIS' ;

    1. SELECT 'exec dbms_stats.gather_table_stats('||''''||a.owner||''''||','||''''||a.table_name||''''||','||'cascade=>true'||') ;'
    2. FROM dba_tables a WHERE a.owner='ZLHIS' ;
  5. SELECT 'exec dbms_stats.gather_table_stats('||''''||a.owner||''''||','||''''||a.table_name||''''||') ;' FROM dba_tables a WHERE a.owner='ZLTOOLS' ;

    1. SELECT 'exec dbms_stats.gather_table_stats('||''''||a.owner||''''||','||''''||a.table_name||''''||','||'cascade=>true'||') ;'
    2. FROM dba_tables a WHERE a.owner='ZLTOOLS' ;


  6. SELECT 'exec dbms_stats.gather_index_stats('||''''||a.owner||''''||','||''''||a.index_name||''''||') ;' FROM dba_indexes a WHERE a.owner='ZLHIS' ;

  7. SELECT 'exec dbms_stats.gather_index_stats('||''''||a.owner||''''||','||''''||a.index_name||''''||') ;' FROM dba_indexes a WHERE a.owner='ZLTOOLS' ;

  8. --也可按照以下的语句直接进行分析
  9. SELECT 'ANALYZE TABLE '||A.owner||'.'||A.table_name||' COMPUTE STATISTICS ;' FROM DBA_tables a WHERE a.owner IN ('ZLHIS','ZLTOOLS') ;
  10. SELECT 'ANALYZE INDEX '||A.owner||'.'||A.INDEX_NAME||' COMPUTE STATISTICS ;' FROM DBA_INDEXES a WHERE a.owner IN ('ZLHIS','ZLTOOLS') ;
  11. --删除统计分析的数据
  12. ANALYZE TABLE TableName DELETE STATISTICS ;
  13. ANALYZE INDEX IndexName DELETE STATISTICS ;

  14. --查询表是否分析过
  15. SELECT A.LAST_ANALYZED, A.TABLE_NAME, A.NUM_ROWS, A.SAMPLE_SIZE
  16.   FROM DBA_TABLES A
  17.  WHERE OWNER IN ('ZLHIS','ZLTOOLS')
  18.  ORDER BY A.LAST_ANALYZED DESC ;

  19. --查看自动收集统计信息的任务
  20. --查询的列值auto optimizer stats collection为enabled即代表自动收集任务
  21. SELECT CLIENT_NAME, STATUS FROM DBA_AUTOTASK_CLIENT ;
  22.  
  23. ----以下为收集表信息、索引信息等的语法
  24. –收集数据库信息
  25.  EXEC DBMS_STATS.gather_database_stats;
  26.  EXEC DBMS_STATS.gather_database_stats(estimate_percent => 15);

  27. –收集schema信息
  28.  EXEC DBMS_STATS.gather_schema_stats(‘SCOTT’);
  29.  EXEC DBMS_STATS.gather_schema_stats(‘SCOTT’, estimate_percent => 15);

  30. –收集表信息
  31.  EXEC DBMS_STATS.gather_table_stats(‘SCOTT’, ‘EMPLOYEES’);
  32.  EXEC DBMS_STATS.gather_table_stats(‘SCOTT’, ‘EMPLOYEES’, estimate_percent => 15);

  33. –收集index信息
  34.  EXEC DBMS_STATS.gather_index_stats(‘SCOTT’, ‘EMPLOYEES_PK’);
  35.  EXEC DBMS_STATS.gather_index_stats(‘SCOTT’, ‘EMPLOYEES_PK’, estimate_percent => 15);

  36. –删除收集信息
  37.  EXEC DBMS_STATS.delete_database_stats;
  38.  EXEC DBMS_STATS.delete_schema_stats(‘SCOTT’);
  39.  EXEC DBMS_STATS.delete_table_stats(‘SCOTT’, ‘EMPLOYEES’);
  40.  EXEC DBMS_STATS.delete_index_stats(‘SCOTT’, ‘EMPLOYEES_PK’);

  41. –创建备份收集信息表
  42.  begin
  43.  dbms_stats.create_stat_table(USER,stattab => ‘STAT_TABLE’);
  44.  end;

  45. –备份收集信息
  46.  BEGIN
  47.  dbms_stats.export_table_stats(USER,tabname => ‘FEI_T’,stattab => ‘STAT_TABLE’);
  48.  END;

  49. –删除收集信息
  50.  BEGIN
  51.  DBMS_STATS.delete_table_stats(USER,tabname => ‘FEI_T’);
  52.  END;

  53. –导入收集信息
  54.  BEGIN
  55.  dbms_stats.IMPORT_TABLE_STATS(USER,’FEI_T’,stattab => ‘STAT_TABLE’);
  56.  END;

  57. –说明:
  58.  当前用户可以使用user代替用户名
  59.  分析表相关对象信息cascade => true
  60.  
  61. --启用自动收集统计信息的任务
  62. BEGIN
  63.     DBMS_AUTO_TASK_ADMIN.ENABLE(
  64.       client_name => 'auto optimizer stats collection',
  65.       operation => NULL,
  66.      window_name => NULL);
  67.  END;

  68. --禁用自动收集统计信息的任务
  69. BEGIN
  70.     DBMS_AUTO_TASK_ADMIN.DISABLE(
  71.       client_name => 'auto optimizer stats collection',
  72.       operation => NULL,
  73.      window_name => NULL);
  74.  END

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/28878983/viewspace-2133927/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/28878983/viewspace-2133927/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值