回 帖 发 新 帖 刷新版面

主题:[讨论]asp大数据量问题问题?

我的数据库里有大约10万数据,我如果想分页,但是显示速度又不能太慢.
我应该怎么分?[em18]

回复列表 (共3个回复)

沙发

难度好高

板凳

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 楼

支持使用存储过程
!

我来回复

您尚未登录,请登录后再回复。点此登录或注册