SQL的Join处理,是十字交叉相乘,把两个表的记录十字相乘得到一个庞大的记录集,然后再筛选出要求的结果,很明显只有在物理内存足以容纳两个表十字相乘结果的时候,它免去硬盘交换,才显得快,当数据表记录大的时候,那个结果相当恐怖(消耗不光看记录数,还看每条记录的总字节数),这就是SQL Server要求内存大、硬盘速度也快的根本原因,一旦涉及虚拟内存页面交换,它的效率立马下降,靠硬盘响应速度来补救。所以,在什么程度上SQL查询的效率高到哪里去,是可以推想得到的。平时在小数据量时,物理内存够大,你们没意识到这种问题而已,就总以为SQL查询的效率比vfp自己还快,殊不知FoxPro的快名不是吹的,在桌面数据库中,它认第二,无人敢认第一。如果不是要跑网络,受线路瓶颈限制,在单机上用SQL指令,一定是没见过什么是快的人。
[ 本帖最后由 TonyDeng 于 2015-1-23 20:18 编辑 ]
[ 本帖最后由 TonyDeng 于 2015-1-23 20:18 编辑 ]
授人以渔,不授人以鱼。