oracle案例:分析10053跟踪文件
2008-12-31 13:07:56 来源:WEB开发网使用公式
综合的Resc Cost = (RSC_CPU cost / _cpu_to_io) + RSC_IO Cost
计算 _cpu_to_io:
_cpu_to_io = RSC_CPU Cost / (Combined Cost - RSC_IO Cost)
= 2865229980 / (55630 - 52693)
= 975563.49 CPU cycles per IO
D)计算多块读除数
当CBO估算全表扫描或者索引快速全扫描的成本时,它会使用除数去除表或者索引的总块数,这个除数估算了每次从磁盘上进行的物理读时将要读入的块数(这里称为多块读除数MBDivisor)。以前,参数"DB_FILE_MULTIBLOCK_READ_COUNT”是估算多块读除数的一个基数(为了补偿实际环境下的限制,它的值通过公式进行减少的计算),在9.2及其以后的版本中,多块读除数的值的估算在统计信息收集了的情况下,有很大的变化。
在分析10053之前,计算出CBO使用的这个除数,能帮助我们快速了解它的值是不是合理的。较低的值会导致CBO使用FTS和IFF时候的成本较索引访问路径要昂贵,较高的值,会使FTS和IFF的成本较低廉。
为了获得这个除数,找一个简单的表访问路径入口,获取表扫描("tsc")的资源成本("Resc")。然后查找表包含的总块数。计算公式如下:
tsc cost = Num Blocks / MBDivisor
MBdivisor = Num Blocks / tsc cost
例如:
在"Base Statistical Information"部分:
Table stats Table: CERTIFICATE Alias: A12
PARTITION [95] CDN: 3164453 NBLKS: 125272 AVG_ROW_LEN: 617
TOTAL :: CDN: 3164453 NBLKS: 125272 AVG_ROW_LEN: 617
在"Single Table Access Path"部分:
SINGLE TABLE ACCESS PATH
...
TABLE: CERTIFICATE ORIG CDN: 3164453 ROUNDED CDN: 2089 CMPTD CDN: 2089
Access path: tsc Resc: 116982 Resp: 29052
Mdivisor = Nblks / tsc
Mdivisor = 125272 / 116982 = 1.07
- ››oracle 中 UPDATE nowait 的使用方法
- ››Oracle ORA-12560解决方法
- ››Oracle 10g RAC 常用维护命令
- ››Oracle如何在ASM中定位文件的分布
- ››Oracle的DBMS_RANDOM.STRING 的用法
- ››oracle 外部表导入时间日期类型数据,多字段导入
- ››Oracle中查找重复记录
- ››oracle修改用户登录密码
- ››Oracle创建删除用户、角色、表空间、导入导出等命...
- ››Oracle中登陆时报ORA-28000: the account is lock...
- ››Oracle数据库在配置文件中更改最大连接数
- ››Oracle中在pl/sql developer修改表的两种方式
更多精彩
赞助商链接