当前位置: 代码迷 >> Oracle认证考试 >> /*+ use_hash(b, a)*/用法,该如何解决
  详细解决方案

/*+ use_hash(b, a)*/用法,该如何解决

热度:2360   发布时间:2013-02-26 00:00:00.0
/*+ use_hash(b, a)*/用法
SELECT /*+ use_hash(b, a)*/
  1,
  NVL(b.AgentWorkGroup, ' '),
  ..............................
  from table1 a,
  table2 b
  where .....................


其中加 :/*+ use_hash(b, a)*/ 能提高查询速度,不知道执行原理,请高手指点~~~
 能否给我提供更多 语句(像:/*+ use_hash(b, a)*/。。。),在哪种情况使用能提高查询的;谢谢!!

------解决方案--------------------------------------------------------
我手里只有这个,你看看.

http://topic.csdn.net/u/20090303/14/b0822a2a-672c-42b8-9d08-1c5036063a4a
/*
需求: 
1、网址URL作为查询条件,无具体规律,如:http://forum.csdn.net/PointForum/Forum/PostTopic.aspx 形式 
2、表数据量在千万级 
3、表更新速度很快 

问题: 
1、如何表设计,是范式还是保持冗余,抑或其他更有效的方法 
2、如何有效设计索引 

实现需求不难,难的是如何最好的实现需求。 

*/

--建hash value列 
alter table TAB 
add URLHash as checksum(URL); 
go 

--在hash value上创建clustered index 
-- create a non-unqiue clustered index on the hashed column for collisions. 
create clustered index IX_URLHash 
on TAB(URLHash); 
go 

--查询处理 
select * 
from TAB 
where URLHash = checksum(@queryURL) 
and URL = @queryURL 
go 

--任何index无非是filter and refine的原理, hash来处理url比较合适,collision不会太多 


------解决方案--------------------------------------------------------

在SQL语句优化过程中,我们经常会用到hint,现总结一下在SQL优化过程中常见Oracle HINT的用法:
1. /*+ALL_ROWS*/
表明对语句块选择基于开销的优化方法,并获得最佳吞吐量,使资源消耗最小化.
例如:
SELECT /*+ALL+_ROWS*/ EMP_NO,EMP_NAM,DAT_IN FROM BSEMPMS WHERE EMP_NO='SCOTT';
2. /*+FIRST_ROWS*/
表明对语句块选择基于开销的优化方法,并获得最佳响应时间,使资源消耗最小化.
例如:
SELECT /*+FIRST_ROWS*/ EMP_NO,EMP_NAM,DAT_IN FROM BSEMPMS WHERE EMP_NO='SCOTT';
3. /*+CHOOSE*/
表明如果数据字典中有访问表的统计信息,将基于开销的优化方法,并获得最佳的吞吐量;
表明如果数据字典中没有访问表的统计信息,将基于规则开销的优化方法;
例如:
SELECT /*+CHOOSE*/ EMP_NO,EMP_NAM,DAT_IN FROM BSEMPMS WHERE EMP_NO='SCOTT';
4. /*+RULE*/
表明对语句块选择基于规则的优化方法.
例如:
SELECT /*+ RULE */ EMP_NO,EMP_NAM,DAT_IN FROM BSEMPMS WHERE EMP_NO='SCOTT';
。。。。。。


参考blog:常见Oracle HINT的用法http://blog.csdn.net/tianlesoftware/archive/2009/12/13/4969702.aspx



------------------------------------------------------------------------------ 
Blog: http://blog.csdn.net/tianlesoftware 
网上资源: http://tianlesoftware.download.csdn.net 
相关视频:http://blog.csdn.net/tianlesoftware/archive/2009/11/27/4886500.aspx 
Q Q 群:62697716