网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
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教程,数据库安全,数据库文摘
本月文章推荐
.两小时搞定RHAS 3.0上的Oracle 9.
.一些常用的计划脚本(2).
.Oracle常见等待事件说明.
.Oracle数据库为了数据的完整性的.
.监控数据库性能的SQL.
.oracle体系结构必须先了解的两个.
.量身订作一个 OS.
.A little test for index.
.外部程序使一切变得简单.
.archive 相关语法.
.Oracle Spatial自定义临时表实现.
.DBA 该做的和不该做的.
.ORACLE ERP导数据.
.SQL Server中访问Oracle服务器的.
.RedHat 7.0下Oracle 8.1.6 的安装.
.保证Oracle数据库安全性的策略和.
.Oracle数据库管理员的利器EXP、I.
.ORACLE SQL性能优化系列 (八).
.复杂查询语句的使用.
.系统启动脚本分析(6)--其它一些.

[技术]sql 调优整理

发表日期:2008-2-9



载自itpub xbxing
很好,很全面的一篇关于Oracle sql调优的文章。文章非常长,大家可一有空就看一点。
1. 选用适合的ORACLE优化器
    ORACLE的优化器共有3种:
   a.  RULE (基于规则)   b. COST (基于成本)  c. CHOOSE (选择性)
    设置缺省的优化器,可以通过对init.ora文件中OPTIMIZER_MODE参数的各种声明,如RULE,COST,CHOOSE,ALL_ROWS,FIRST_ROWS . 你当然也在SQL句级或是会话(session)级对其进行覆盖.
   为了使用基于成本的优化器(CBO, Cost-Based Optimizer) , 你必须经常运行analyze 命令,以增加数据库中的对象统计信息(object statistics)的准确性.
   假如数据库的优化器模式设置为选择性(CHOOSE),那么实际的优化器模式将和是否运行过analyze命令有关. 假如table已经被analyze过, 优化器模式将自动成为CBO , 反之,数据库将采用RULE形式的优化器.
   在缺省情况下,ORACLE采用CHOOSE优化器, 为了避免那些不必要的全表扫描(full table scan) , 你必须尽量避免使用CHOOSE优化器,而直接采用基于规则或者基于成本的优化器.
  2.       访问Table的方式
  ORACLE 采用两种访问表中记录的方式:
a.       全表扫描 
            全表扫描就是顺序地访问表中每条记录. ORACLE采用一次读入多个数据块(database block)的方式优化全表扫描.
    b.       通过ROWID访问表
       你可以采用基于ROWID的访问方式情况,提高访问表的效率, , ROWID包含了表中记录的物理位置信息..ORACLE采用索引(INDEX)实现了数据和存放数据的物理位置(ROWID)之间的联系. 通常索引提供了快速访问ROWID的方法,因此那些基于索引列的查询就可以得到性能上的提高.
 3.       共享SQL语句
为了不重复解析相同的SQL语句,在第一次解析之后, ORACLE将SQL语句存放在内存中.这块位于系统全局区域SGA(system global area)的共享池(shared buffer pool)中的内存可以被所有的数据库用户共享. 因此,当你执行一个SQL语句(有时被称为一个游标)时,假如它
和之前的执行过的语句完全相同, ORACLE就能很快获得已经被解析的语句以及最好的
上一篇:Oracle DBA最常碰到的10个Oracle错误 人气:707
下一篇:Oracle 中的OOP概念 人气:664
浏览全部Oracle教程的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐