一个多表查询,oralce根据什么规则选择连接方式的,
也就是说写多表查询里怎么预判是选择哪种连接方式,嵌套循环连接,hash连接,还是排序合并连接,是可以人为控制,
还是根据表的数据量,索引等条件由优化器自动选择?
也就是说写多表查询里怎么预判是选择哪种连接方式,嵌套循环连接,hash连接,还是排序合并连接,是可以人为控制,
还是根据表的数据量,索引等条件由优化器自动选择?
解决方案 »
- sql程序员经典怎么都是不完整版的,那位知道完整版得在哪儿下载吗?
- 两表连接问题,希望用一条sql解决
- oracel 9i的下载地址????
- 帮我看看哪个效率高?
- 请问pl/sql developer怎么查看当前数据库所有的计划任务?
- 登录问题
- 可以“rm /u01/app/oracle/product/10.1.0/db_1/network/admin/*bak”么?
- oracle错误问题
- 請問哪里有oracle 9 下載啊 謝謝
- 我怎么在SQL PLUS里运行过程,并能输出结果啊?
- shared memory realm does not exist
- 如何在存储过程中调用exp\imp或expdp\impdp?
/*+use hash(fact_sale,dim_city) */
* from fact_sale,dim_city where fact_sale.citycode=dim_city.city_code and dim_city.city_code=''
FILTER
MERGE JOIN Cost=12357 Cardinality=20000100 Bytes=5220026100
PARTITION RANGE ALL Cost=12044 Cardinality=2000010 Bytes=314001570
TABLE ACCESS FULL Object owner=SYS Object name=FACT_SALE Cost=12044 Cardinality=2000010 Bytes=314001570
SORT JOIN Cost=3 Cardinality=10 Bytes=1040
TABLE ACCESS FULL Object owner=SYS Object name=DIM_CITY Cost=2 Cardinality=10 Bytes=1040
具体选择什么连接方式具体情况而定的,(具体的连接方式左连接、右连接、内连接)具体要因情况而定的。
select
/*+USE_HASH(fact_sale,dim_city) */
* from fact_sale,dim_city where fact_sale.citycode=dim_city.city_code and dim_city.city_code=''