楼上的方法很好,也可以在后台将INSERT表和SELECT表分开,并且要注意ISOLATION LEVEL.

解决方案 »

  1.   

    分页的过程CREATE PROCEDURE Get_Customers_By_Page
    @CurrentPage int,
    @PageSize int,
    @TotalRecords int output
    asSELECT identity(int,1,1) as id ,* into  #TempTable from 表DECLARE @FirstRec int, @LastRec int
    SELECT @FirstRec = (@CurrentPage - 1) * @PageSize
    SELECT @LastRec = (@CurrentPage * @PageSize + 1)SELECT 
      *
    FROM 
      #TempTable
    WHERE 
      ID > @FirstRec 
    AND
      ID < @LastRecSELECT @TotalRecords = COUNT(*) FROM 表
    declare @a intexec TheorySearch 1,15000,@a output 
      

  2.   

    hehe 楼上的这个方法好,但是限制你的查询条件,比如你要根据单据的属性(某个地区的单据)等等动态查询的时候,所得到的结果集中的id 号可能是不连续的,所以你最好由应用程序返回始末的id号的,对于前后翻页的问题,你再设一个参数(排序方式)就可以解决了。这种我刚写了一大堆,人都要疯了。
      

  3.   

    除了上面所说,我觉得数据结构更重要。比如,类似仓存的安排,专门建一个存放月初库存数的表,利用月初库存数的表再和本月进出运算,(所涉及的数据量每个月都差不多,并且不会多到那里去),再利用编号、单号之类的参数,速度一定会快起来。
    VFP做前台,问题比较多,如果有时间及精力的话,建议去PB。