分类: Oracle
2008-05-06 07:55:03
来源:赛迪网 作者: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角色;
3、向常规用户授予权限:grant plustrace to
4、如果没有plan_table也要创建:
• 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) 完全在内存中执行并且不需要任何磁盘写入的排序操作的数量 |