硬件配置:赛扬300A(超频到4.5*100用)、内存224MB、硬盘4.3G昆腾火球八代、6.4G昆腾火球九代各一个(系统装在6.4G的盘上)
IIS4.0+sp6、Sql server7.0英文版(安装全文检索服务)
记录数293415(数据库大小1.24GB)、每页大小20条记录,共14671页。
下列时间由Sql server的getdate函数测得:
花费时间:
不搜索(直接定位页):
第一页: 90ms
第1000页: 2783ms
第2000页: 5516ms
第4000页: 11246ms
第8000页: 22020ms
第10000页:27430ms
第14671页:超时
上下翻页:90ms(由于上下翻页采用ID记录定位查找,时间跟页的前后没有关系,也就是从第1页翻到第2页跟从第10000页翻到第10001页所用的时间是一样的)
在此测试中:发现Sql server将绝大部分时间花在填充游标上,游标内记录条数越多,花时间越长;每条记录的内容越多,所花的时间越长。这就提醒在使用时,在Select语句中,尽量将不用的字段去掉,以增快速度。
执行贴子标题搜索时:
没找到时:14930ms,其中包括4056ms为计算记录条数时间。
找到293411条,显示第1页,21270ms,其中包括计算记录条数count(*)所用6276ms
找到293411条,显示第5000页,24153ms,其中包括计算记录条数count(*)所用5216ms
二次搜索(不计数)显示10000页,24066ms.
二次搜索后,上下翻页:130ms.
显示记录内容及相关标题:
当没有给rootid做索引时,用去了9秒左右;给rootid加上索引后,时间减为4.5秒左右;索引经过优化后,时间加快到2.7秒;将execute(@sql)改为直接执行相应的Select语句后,最后时间变为870ms左右。
忠告二:任何时候都要使用索引加快查找速度,还应该注意索引的优化。
发贴时,深度大了好象很慢……一层要用1秒左右?