首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 冲浪宝典 > 网络资源 > 跟踪Oracle9i 的CPU和I/O使用代价
【标  题】:跟踪Oracle9i 的CPU和I/O使用代价
【关键字】:c,C,CPU,Oracle,Oracle9i,9i,Oracle9i,CPU
【来  源】:网络

跟踪Oracle9i 的CPU和I/O使用代价

当Oracle每一次新版本的发布,这一数据库就会变得更加的受关注,尤其是它的外部环境。Oracle在Oracle服务器上设置了很多基于CPU个数的重要的初始化参数,并且Oracle现在已经更加地意识到CPU运行循环周期和I/O操作的使用代价。


基于成本的SQL优化器(CBO)已经被提高到考虑外部的影响,尤其是当为一个SQL查询处理最佳执行的时候。因为数据库并非运行在一个不受其他因素影响的环境中,CBO将会成为影响每一次SQL操作的外部磁盘I/O代价和CPU运行周期代价的因素。这一重要的功能使得CBO成为全球多数成熟软件产品中的其中一个。CBO的工作就是为任何SQL操作选择一个最佳的执行计划。

根据Oracle文档,对于I/O和CPU的使用代价评价如下:

使用代价 =  (#SRds * sreadtim + #MRds * mreadtim + #CPUCycles
         -------------------------------------------------
                          cpuspeed )
         -------------------------------------------------
                          sreadtim

这里:

#SRDs – 单块读入的数目

#MRDs – 多块读入的数目
#CPUCycles – CPU运行周期的数目

sreadtim  - 单块读入的时间
mreadtim – 多块读入的时间
cpuspeed  -  每一秒的CPU运行次数


请注意外部使用代价受到磁盘读定的估计使用代价以及与每一次内部操作相联系的估计CPU代价的影响。Oracle保存有关SQL处理的许多成分代价的详细信息,并使用这些平均的代价来影响基于成本的SQL优化器的选择。以下是一些范例:

杂乱信号连接的代价──Oracle知道一个杂乱连接所消耗的RAM内存的平均数量。
分类──Oracle为了执行分类和集中操作而保持跟踪RAM。
列表扫描代价──Oracle保存关于执行一个多块读入需要时间的信息。
索引块访问代价──Oraclet知道引出一个单一的块所需要的平均时间。
请注意这些使用代价的评价依据是不同的,这主要取决于你对Oracle优化器的选择。如果你具有一个带有first_rows优化器模式的OLTP系统,CBO就能够更快地返回行操作。另一方面,如果你使用的是数据仓库的first_rows优化器模式,CBO将会被这些外部因素严重影响,因为first_rows模式被设计以减少资源消耗。

为了能够完整地理解Oracle的外部使用代价,让我们深入查阅这些新的外部影响和Oracle CBO如何使用外部使用代价。

CPU代价

现在CBO已经能够估计每一操作需要的机器运行周期的数量级,并影响执行计划计算的代价。与Oracle查询有关的CPU使用代价取决于当前的服务器载入情况。CPU代价通常并不是很重要,除非是整个Oracle程序使用过多的CPU资源。

IO代价

CBO可以估计每一操作的物理块读入的数量级。I/O代价与物理数据块读入成正比。然而,CBO不具备缓冲目录的优先权利,也不能区别一个逻辑读入和一个物理读入。因为这些缺点,CBO无法识别数据块是否已经读入RAM数据缓冲器。

并非完全的完美

注意到这些使用代价也是读入数量的功能,并与读入次数有关,也注意到外部代价并没有考虑到位于RAM数据缓冲器的数据块的数量,但新的CBO发布版本应该考虑到这一因素。

这里我们可以看到Oracle都使用了评测执行计划的CPU和I/O代价评估。相比于我们处理一些类似查询而言,这一评估会变得更加复杂,因为类似查询可以被许多并发的程序处理。

在我文章的下一栏中,我将会讲到CBO如何被统计数量所影响。为了能够做出最好的执行计划,CBO必须充分使用与查询有关的所有数据项目信息,因为你必须控制如何分配统计数量,这对CBO的调整是一个关键的方面。


SQL Server中读取XML文件的简单做法:【上一篇】
在Oracle9i中定义视图约束:【下一篇】
【相关文章】
  • 从Oracle迁移到SQL Server的陷阱
  • 使用代码刷新ODBC链接SQL SEVER表
  • SQL循序渐进(19)DISTINCT和排除复制
  • SQL循序渐进(9)SELECT语句
  • CorelDraw 10实例教程(六) 笔记本
  • CorelDraw 10实例教程(五) 王冠
  • CorelDraw 10实例教程(四) 星光点点
  • CorelDraw 10实例教程(三) 眼药水
  • CorelDraw 10实例教程(二) 绘图大师
  • CorelDraw 10实例教程(一) 举重若轻
  • 【随机文章】
  • 加密和安全 V 0.92
  • 杨杨钰莹首次公开与赖文峰感情故事
  • Creating a Stored Procedure or Function in oralce
  • ASN.1探索 - 2 基础知识(2)
  • 通信台站的电源改造和雷电防护
  • 目录操作
  • Unix/Linux常用命令- -
  • 12.5 Atomicity of variable references
  • nantpad
  • 获得系统版本
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 软讯网络 All Rigths Reserved.