zoukankan      html  css  js  c++  java
  • Oracle EBS Concurrent Request:Gather Schema Statistics[Z]

    Oracle EBS 的Concurrent Request"Gather Schema Statistics"是一个和性能相关的Concurrent Program,它会对表,列和索引的做数据采样,并生成统计信息。基于成本的优化器(Cost-Based Optimization CBO)会根据你的数据采样来评估执行计划,最终选取一个最高效的方式来执行SQL。

    补充一点:数据采样十分类似于问卷调查,假如你的目标群体非常庞大,你就不可能对所有目标客户逐一进行调研,正确有效地做法是在目标人群中挑选一定百分比的人进行调查,最终根据这部分被调查的人来推导出目标人群的情况。

    什么样的情况下运行“Gather Schema Statistics”

    当数据库发生较大变化的时候,比如新增了很多数据或者很多数据被删除,都应该运行一下这个program。需要注意的是,这个Request比较耗时,并且非常消耗数据库资源,所以最好把运行这个program的时间安排到周末或者晚上。

    如何运行“Gather Schema Statistics

    1. Responsibility = System Administrator
    2. Concurrent > Requests
    3. 查询“Gather Schema Statistics”
    4. 输入参数

    Parameter

    需要特别提到的是:

    Schema Name:指的是你要对那个Schema下的对象进行统计,如果要对所有数据库对象进行统计,这里可以选择ALL。

    Estimate Percent(评估比):是指对数据库对象的采样比例,默认为10%,这个值不要设置的太高,否则反会影响性能。(refer:OTN的一帖子),也有一些性能问题,适当提高评估比后,可以显著提升性能。

    其他Parameter可以参见UserGuide。

    如何判断数据库对象上一次运行统计的时间和统计比

    1. SELECT num_rows,sample_size,last_analyzed from dba_tables WHERE table_name = 'MTL_SYSTEM_ITEMS_B';  

    output:
    NUM_ROWS:151210

    SAMPLE_SIZE:15121

    LAST_ANALYZED:2011-11-10

    Last_Analyzed的时间就是上次运行统计收集的时间。

    Sample_Size是采样的行数,Num_Rows是真实数据库表中的行数。Same_Size/Num_Rows = 15121/151210 = 10%,这个10%实际上就是Estimate Percent。

    另外下边的SQL可以查看制定表中列的统计情况

    1. SELECT last_analyzed,sample_size   
    2. FROM  dba_tab_columns   
    3. WHERE table_name = 'MTL_SYSTEM_ITEMS_B';  

    FND_STATS.GATHER_TABLE_STATS

    另外除了使用Gather Schema Statistics,也可以直接调用FND_STATS.GATHER_TABLE_STATS来重做统计.

    可以refer:http://docs.oracle.com/cd/E18727_01/doc.121/e12893/T174296T174306.htm

    也可以调用这个Package来只做某个特定表的统计,eg.

    1. EXEC FND_STATS.GATHER_TABLE_STATS(OWNNAME => 'INV',TABNAME => 'MTL_SYSTEM_ITEMS_B',PERCENT => 20);  

    DBMS_STATS.GATHER_TABLE_STATS

    Sample:

      1. EXEC DBMS_STATS.GATHER_TABLE_STATS('APPS','MTL_MATERIAL_TRANSACTIONS'CASCADE=>TRUE );  
  • 相关阅读:
    【整理】close 和 shutdown 的原理
    【理解】 Error 10053和 Error 10054
    【转载】 socket recv 和 read
    【转载】socket 的 connect、listen、accept 和全连接队列、半连接队列的原理
    【原创】MySQL 生产环境备份还原
    【原创】【问题记录】系统管理员设置了系统策略,禁止此安装的最终解决办法
    【原创】rabbitmq 学习
    mvc, web mvc, spring web mvc 区别
    Spring 读取配置文件的俩种方式
    移动端web开发技巧和常见问题
  • 原文地址:https://www.cnblogs.com/huak/p/3459813.html
Copyright © 2011-2022 走看看