日期:2014-05-18  浏览次数:20512 次

优化SQL语句时,下面关于大表(记录条数多的表)放在小表后面查询速度快的解释,对吗?
从网上看到人家这样的解释:

A、B两表Inner   Join查询时,假设:      
    A       10记录       合格数据5条,B       100记录       合格数据50条      
    表A       join       表B          
    连接查询数据总数为       5*50       =250       条      
                    查询次数为       5*       100次       =       500次      
    表B       join       表A          
    连接查询数据总数为       5*50       =250       条      
                    查询次数为       50*       5次       =       250       次

--------------------------------------
我认为表B       join       表A时,应该:
    连接查询数据总数为       5*50       =250       条      
                    查询次数为       50*       10次       =       500     次

不知道是我的理解错了,还是他解释错了?请大家裁判一下吧!谢谢了先。

------解决方案--------------------
SQL Server会自动优化,所以不需要考虑这个问题。
------解决方案--------------------
取决于执行计划,当执行计划使用嵌套循环的话,用小表循环一个在关联字段上有索引(索引的选择性越高越好)的大表性能会比较好.