扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:赛迪网 limeinan 来源:天新网 2008年4月23日
关键字: 数据库 Mssql SQL Server SQL
总结一下,在哪种情况下用哪种连接方法比较好:
排序 - - 合并连接:
(a) 对于非等值连接,这种连接方式的效率是比较高的。
(b) 如果在关联的列上都有索引,效果更好。
(c) 对于将2个较大的row source做连接,该连接方法比NL连接要好一些。
嵌套循环
(a) 如果driving row source(外部表)比较小,并且在inner row source(内部表)上
有唯一索引,或有高选择性非唯一索引时,使用这种方法可以得到较好的效率。
(b) NESTED LOOPS有其它连接方法没有的的一个优点是:可以先返回已经
连接的行,而不必等待所有的连接操作处理完才返回数据,
这可以实现快速的响应时间。
哈希连接(Hash Join, HJ):
(a) 这种方法是在Oracle7后来引入的,使用了比较先进的连接理论,
一般来说,其效率应该好于其它2种连接,但是这种连接只能用在
CBO优化器中,而且需要设置合适的hash_area_size参数,
才能取得较好的性能。
(b) 在2个较大的row source之间连接时会取得相对较好的效率,在一个
row source较小时则能取得更好的效率。
(c) 只能用于等值连接中
笛卡儿乘积
注意在下面的语句中,在2个表之间没有连接。
|
CARTESIAN关键字指出了在2个表之间做笛卡尔乘积。假如表emp有n行,dept表有m行,笛卡尔乘积的结果就是得到n * m行结果。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。