带索引的数据库,用count for自动启用Rushmore优化加速,速度哪里会慢。没有索引,SQL也同样的慢,而且比手动的编码还要慢。最耗费资源的就是SQL指令(如果表事先没有索引,SQL只是自动地为查询建立临时索引,用后自动清理,那种爆发性的内存和磁盘需求,根本是你无法想像的),没有足够的内存,看它怎么慢过蜗牛。
SQL有智能优化功能,用起来是很方便,但那是靠空间和资源来换取的,单机下,这种东西与传统优化手段没多大的差别,效率(综合空间和时间来衡量)甚至不如。SQL的优势,在于远程网络上,客户端把查询指令很短的一个字符串传送在网络上,到达服务端,由服务器消耗资源来查询出较少数据量的结果集,再沿网路传送回来,这样挤占狭窄网路资源的数据少了,才显得高效(传统的操作指令要把服务端的所有数据都传送到客户端才能操作),但这种高效的代价是把压力聚集在服务器,所以对服务器的配置要求很高——当并发查询较多时,服务器就不胜负荷了。
VB使用RecordSet检索数据,就有很明显的呆滞,因为这种数据集是不知道数据量的,即不能一下子到达结束处(亦即无法GOTO BOTTOM),所以在这种环境中编写程序,要用一次多少条记录那样的方式来传送数据,靠客户端暂停来缓解用户无法响应的感受,看看所有网络的数据查询,都极力限制一页显示30条以上的记录,就知道那是怎么回事。
http://baike.baidu.com/view/7872593.htm
[
本帖最后由 TonyDeng 于 2013-1-23 19:16 编辑 ]