网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 数据库 > Oracle教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
数据库:数据库教程,数据库技巧,Oracle教程,MySQL教程,Sybase教程,Access教程,DB2教程,数据库安全,数据库文摘
本月文章推荐
.Oracle 9i Data Guard进行数据库.
.ROLLBACK相关的统计信息.
.Qmail如何设置把无法识别接受者的.
.Oracle快速删除数据字典管理的表.
.Oracle 9i服服务器的启动.
.Oracle使用若干技术.
.NT下如何彻底删除Oracle?.
.oracle 使用杂记二.
.Oracle 10g Installer 创建临时文.
.你不能不知道的小技巧.
.DBA如何以别人的身份注册数据库.
.如何使用户没有telnet和ftp权限.
.教你如何快速转移Oracle中海量数.
.如何在OEMS中成功提交作业.
.BLOB/CLOB/LONG/LongRaw数据类型.
.ORA-01650.
.用DBMS_DDL包重新编译PL/SQL对象.
.Redhat Linux AS4 安装Oracle 10.
.在slackware 10下安装Oracle 10.
.ORA FAQ 性能调整系列之——Orac.

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

发表日期:2008-2-9



  当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的调整是一个要害的方面。
上一篇:尝试一些UNIX的提示和技巧 人气:508
下一篇:存储过程应注意的几个问题 人气:1336
浏览全部Oracle教程的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐