貌似还不对,查了下其他论坛的帖子,自己看下吧
http://www.itpub.net/thread-981789-1-1.html

解决方案 »

  1.   

    这就是hint的NO_EXPAND为了告诉优化器不进行自动扩展。
    The NO_EXPAND hint instructs the optimizer not to consider OR-expansion for queries having OR conditions or IN-lists in the WHERE clause. Usually, the optimizer considers using OR expansion and uses this method if it decides that the cost is lower than not using it. 
    http://docs.oracle.com/cd/E11882_01/server.112/e10592/sql_elements006.htm#SQLRF50502
      

  2.   

    no_expand一般用于where条件中有" OR "的SQL, 与其作用相反的是use_concat, 目的是为了避免Oracle在执行计划中自动把带OR的SQL费解成类似于"UNION"的sql,比如:select * from a where x=1 or x=2,在某些情况下,Oracle用类似如下的路径(catenation)来执行, no_expand是为了避免这种情况:select * from a where x=1
    union all
    select * from a where x=2