我用SQL SERVER 数据库内有上万条数据, 读取速度很慢
不知有没有什么好的方法可以解决读取速度慢的问题..
在些谢过各位帮助我的高手.
数据量过大的情况,个人认为最好用分页技术,分页读取,这样可能速度会快一些。
提高速度的办法有很多钟
首先必须要分页显示,无论你做任何提速方法,不分页显示速度都会很慢。
然后做提速的几种:
1.优化代码:优化代码就是把可能存在的死循环,和多余走弯路的程序进行精简。
2.创建索引:创建索引可以提高查询速度。
3.创建视图:最好把创建视图和创建索引同时运用,这样速度会大大提高,都是提高查询速度。
4.调用存储过程:个人感觉,存储过程有点难,但效率的确很高,是做网站提速的最好办法。
GetRows的用法详解
2007年01月25日 星期四 11:55
本文作者:Loveyuki
大家应该都知道 Recordset 有个 GetRows 属性,但是真正使用的不多,我也是最近才用的!汗……
其实这个属性很简单,就是把数据集输出到一个数组中。但是实用性可不小,在这里我举一个例子说明一下GetRows的使用方法,大家举一反三能想到更多的用法!
比如一个分类的表 T_Cate,结构和数据如下:
ID | Title | Intro
-----------------------------------------
1 | 新闻 | 这里是新闻
2 | 教程 | 这里是教程
3 | 下载 | 这里是下载
好了,表建立好了,数据也有了,下面我们就要用到GetRows咯!
Dim Rs_Cate
Dim Arr_Cate
Set Rs_Cate=Conn.ExeCute("Select ID,Title,Intro FROM T_Cate orDER BY ID ASC")
Arr_Cate=Rs_Cate.GetRows
Set Rs_Cate=Nothing
好了表数据已经导出到数组了!下面我们将遍历这个数组
Dim Arr_CateNumS,Arr_CateNumI
Arr_CateNumS=Ubound(Arr_Cate,2) '得到数组中数据的下标
For Arr_CateNumI=0 To Arr_CateNumS
Response.Write("ID:"&Arr_Cate(0,Arr_CateNumI)&" | 标题:"&Arr_Cate(1,Arr_CateNumI)&" | 介绍:"&Arr_Cate(2,Arr_CateNumI)&"<br>")
Next
呵呵,好了,输出的数据为:
ID:1 | 标题:新闻 | 介绍:这里是新闻
ID:2 | 标题:教程 | 介绍:这里是教程
ID:3 | 标题:下载 | 介绍:这里是下载
好了,具体就写这么多吧!文采不行,如果大家有什么不明白的,多用用就可以了,呵呵~~
用这个方法!读取10万数据耗时187.500毫秒,总测试平均值在0.2秒左右
哈哈哈..楼上办法实现不错呀..我把查询语句这么写:
SELECT TOP(@PageSize) col1,col2 FROM (SELECT TOP(@PageIndex * @PageSize) col1,col2 FROM table1 ORDER BY id DESC) ORDER BY id ASC