在进行多表联合查询时,数据库可能会采取MERGEJOINS、NESTED LOOP、HASH JOIN。其中,不论什么时候哈希联结要比另两种联结开销要小。
可以使用哈希联结代替MERGEJOINS、NESTED LOOP联结、因此,在应用中,可添加一些设置使得数据库在有多大联合查询发生时使用哈希联结。其方法是:以 oracle用户身份登录数据库服务器,在initosid.ora文件中添加:
HASH_JOIN_ENABLED=TRUE
HASJ_AREA_SIZE=26000
修改完后,重新启动数据库,使这些参数值生效。