• 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 );  
  • 相关阅读:
    最强U盘修复工具
    使用手机安装Windows系统------DriveDroid
    Windows 下mysqldump备份1045错误解决办法
    Mysql 5.6创建新用户并授权指定数据库相应权限
    Mysql 启动错误
    Mysqldump备份提示没有权限
    Mysql安装错误
    两台Linux服务器文件同步
    Linux下修改mysql的root密码
    Linux系统下部署项目流程
  • 原文地址:https://www.cnblogs.com/huak/p/3459813.html
Copyright © 2020-2023  润新知