赛迪网 > IT技术 数据库 > 精彩更新
  IT资讯搜索
 
IT产品搜索
[程序开发][网管世界][网络安全][数据库技术]
[操作系统][嘉宾聊天·在线访谈][活动集锦]
[精彩专题][Symantec专区][订阅IT技术周刊]
[开发论坛][网管论坛][安全论坛][数据库论坛]
[操作系统论坛][Sybase专区][IBM dW技术专区]
[病毒求助][病毒与漏洞播报][文档·源码下载]

Oracle中SQL语句执行效率的查找与解决 (3)

发布时间:2008.05.06 05:00     来源:赛迪网    作者:Ford

SORT- merge JOIN,将两表的连接列各自排序然后合并,只能用于连接列相等的情况,适合两表大小相若的情况(在缺乏数据的选择性或者可用的索引时,或者两个源表都过于庞大(超过记录数的5%)时,排序合并连接将比嵌套循环连更加高效。但是,排列合并连接只能用于等价连接(WHERE D.deptno=E.dejptno,而不是WHERE D.deptno>=E.deptno)。排列合并连接需要临时的内存块,以用于排序(如果SORT_AREA_SIZE设置得太小的话)。这将导致在临时表空间占用更多的内存和磁盘I/O。)

HASH JOIN在其中一表的连接列上作散列,因此只有另外一个表做排序合并,理论上比SORT JOIN会快些,需要有足够的内存,而且打开了SORT_JOIN_ENABLE参数。(当缺少有用的索引时,哈希连接比嵌套循环连接更加有效。哈希连接可能比排序合并连接更快,因为在这种情况下只有一张源表需要排序。哈希连接也可能比嵌套循环连接更快,因为处理内存中的哈希表比检索B_树索引更加迅速。和排序合并连接、群集连接一样,哈希连接只能用于等价连接。和排序合并连接一样,哈希连接使用内存资源,并且当用于排序内存不足时,会增加临时表空间的I/O(这将使这种连接方法速度变得极慢)。最后,只有基于代价的优化器才可以使用哈希连接。)

BNo2: AUTOTRACE

•set autotrace 使用步骤:

1、以system登录

2、创建plustrace角色; \sqlplus\admin\plustrce.sql

3、向常规用户授予权限:grant plustrace to

4、如果没有plan_table也要创建: \rdbms\admin\utlxplan.sql

• set autotrace 选项

on 显示查询结果,执行计划,统计数据

on statistics 显示查询结果,统计数据,不显示执行计划

on explain 显示查询结果,执行计划,不显示统计数据

traceonly 显示执行计划和统计结果,但不包括查询结果

traceonly statistics 仅显示统计数据

recursive calls 在用户级别和系统级别上生成的递归调用的数量。Oracle维护了一些用于内部处理的表。当oracle需要对这些表进行更改时,它就会在内部生成一个SQL语句,然后这个语句再生成一个递归调用。

db block gets 请求一个CURRENT块的次数

consistent gets 为一块请求consistent read的次数

physical reads 从磁盘读取得数据块总数。这个数量等于“直接物理读取”的值加上读入缓冲区的所有数据块

redo size 生成的重做的总数量(以字节为单位)

bytes sent via SQL * Net to client 从前台进程发送给客户的总字节数

bytes received via SQL * Net from client 通过Oracle Net从客户接收的总字节数

SQL*Net roundtrips to/from client 发送给客户和从客户接收的Oracle Net消息的总数

sorts (memory) 完全在内存中执行并且不需要任何磁盘写入的排序操作的数量

>

db block gets 请求一个CURRENT块的次数

consistent gets 为一块请求consistent read的次数

physical reads 从磁盘读取得数据块总数。这个数量等于“直接物理读取”的值加上读入缓冲区的所有数据块

redo size 生成的重做的总数量(以字节为单位)

bytes sent via SQL * Net to client 从前台进程发送给客户的总字节数

bytes received via SQL * Net from client 通过Oracle Net从客户接收的总字节数

SQL*Net roundtrips to/from client 发送给客户和从客户接收的Oracle Net消息的总数

sorts (memory) 完全在内存中执行并且不需要任何磁盘写入的排序操作的数量

(责任编辑:卢兆林)

<<上一页 1 2 3


[ 发表评论 ] 字体[  ] [ 打印 ] [ 进入博客 ] [ 进入论坛 ]  [ 推荐给朋友 ]
  相关文章
· 实例讲解Oracle数据库检查锁的参考脚本 (05-05) · 如何将Oracle数据库的普通表转换成分区表 (05-05)
· 用一个实例讲解Oracle的自定义聚集函数 (05-05) · 循序渐进讲解Oracle数据库的完整性概念 (05-05)
· 带你快速了解Oracle数据库提供的恢复机制 (05-05) · 讲解Oracle数据库应用程序中RAID的级别 (05-05)
· Oracle中释放flash_recovery_area (05-05) · 如何让Oracle始终保持优良性能 (05-05)
· Oracle数据库索引聚簇与哈希聚簇使用指南 (05-05) · Oracle数据库索引聚簇与哈希聚簇使用指南 (05-05)
  客户需求反馈表
* 姓  名:
更多资料  了解方案  认识厂商
* 单位名称:
* 联系电话:
* 电子邮件:
  赛迪推荐  
  手机·资费 ·新品·导购·评测·手机资费·宽带
手机搜索  诺基亚 N73 MOTO Z6
  IT产品 ·笔记本·台式机·服务器·打印·投影
IT产品搜索 
  IT技术 ·开发·网管·安全·数据库·操作系统
  信息化 ·热点·专题·访谈·周刊·方案案例
· 信息化市场百家争鸣 SaaS深陷争议“泥潭”
· 提高管理水平 "两栖"CIO应具备的六大能力
· 国产ITIL运维先行者 四大厂商角力BI市场
· 金融行业GSN专题解决方案 企业网解决方案
  IT博客 ·曾剑秋·项立刚·Java学习·网管
  IT技术论坛 ·开发·网管·安全·数据库·系统