主题:[讨论]asp大数据量问题问题?
zjutsxj
[专家分:140] 发布于 2007-03-12 16:15:00
我的数据库里有大约10万数据,我如果想分页,但是显示速度又不能太慢.
我应该怎么分?[em18]
回复列表 (共3个回复)
沙发
homter [专家分:80] 发布于 2007-03-13 10:27:00
难度好高
板凳
霜 [专家分:3370] 发布于 2007-03-13 15:28:00
1 如果是sql2000的话可以使用存储过程
2 建立索引
3 分页的sql语句,速度很快,可以试试
Function GetPageSql(TblName,FldName,PageSize,PageIndex,OrderType,StrWhere)
Dim StrTemp,StrSql,StrOrder
'根据排序方式生成相关代码
If OrderType = 0 Then
StrTemp = "> (Select Max([" & FldName & "])"
StrOrder = " Order By [" & FldName & "] Asc"
Else
StrTemp = "< (Select Min([" & FldName & "])"
StrOrder = " Order By [" & FldName & "] Desc"
End If
'若是第1页则无须复杂的语句
If PageIndex = 1 Then
StrTemp = ""
If StrWhere <> "" Then
Strtmp = " Where " & StrWhere
End If
StrSql = "Select Top " & PageSize & " * From [" & TblName & "]" & Strtmp & StrOrder
Else '若不是第1页,构造sql语句
StrSql = "Select Top " & PageSize & " * From [" & TblName & "] Where [" & FldName & "]" & StrTemp & _
" From (Select Top " & (PageIndex-1) * PageSize & " [" & FldName & "] From [" & TblName & "]"
If StrWhere <> "" Then
StrSql = StrSql & " Where " & StrWhere
End If
StrSql = StrSql & StrOrder & ") As Tbltemp)"
If StrWhere <> "" Then
StrSql = StrSql & " And " & StrWhere
End If
StrSql = StrSql & StrOrder
End If
GetPageSql = StrSql '返回sql语句
End Function
3 楼
longlong16 [专家分:10670] 发布于 2007-03-13 17:28:00
支持使用存储过程
!
我来回复