sqlserver2005数据库有大概十几万条数据分页显示,页面总提示超时连接,请问有什么好的解决方法吗?
我用的分页存储过程如下
create view view_making_logininfo
as
select a.*,userid,
username,uName,email,
roles,userphone,entallname,
entsimname,[address],
ownername,postcode,fax,
entcode,trade,
licence,licenceprovider,
chargedept,kind,
makernumber,
asset,buildtime,preyearoutput,
PreYearGetIn,factoryname,
entmemo,entsite,
parentuserid,firstletter
technumber from ec_ing as a inner join logininfo as b 
on a.ec_ing_enterid = b.userid

解决方案 »

  1.   

    从楼主的code看来,这个是一次性读出来的吧...
      

  2.   

    啊   发错 代码了  分页代码 如下 
    create procedure [db_owner].[select_pagesize]
    @table_name varchar(100), 
    @select_list varchar(1000)='*', --不需要select 
    @where varchar(1000)='', --不需要where 
    @primary_key varchar(100), --当是表联合时,加表名前缀. 
    @order_by varchar(200), --需要完整的子句 order by ... 
    @page_size smallint, --每页记录 =20
    @page_index int=1, --页索引 =1
    @do_count bit --1只统计总数 =0
    as 
    /* 
    过程名:通用存储过程分页 
    使用示例: 
    单表sql调用:exec select_pagesize 'login_id,login_name','tb_login',' login_name like ''%%''','login_id',' order by login_dt desc',20,10 
    多表sql调用:exec select_pagesize 'a.login_id,a.login_name,b.pro_name','tb_login a,tb_code_province b',' a.pro_id=b.pro_id and a.login_name like ''%%''','a.login_id',' order by a.login_dt desc',20,10 
    备注:外部程序调用不需要转义单引号 
    原型: select top 20 select_list 
    from tablename 
    where z_id not in(select z_id from (select top 100 z_id from tablename order by order_by) temptable) 
    and ... 
    order by order_by 
    */ declare @sql_str varchar(8000) 
    declare @record_min int 
    declare @new_where varchar(1000),@newin_where varchar(1000) 
    if @where=''
    begin 
    select @new_where='' 
    select @newin_where='' 
    end 
    else 
    begin 
    select @new_where=' and '+@where 
    select @newin_where=' where '+@where 
    end if @do_count=1 
    select @sql_str='select count(*) from '+@table_name+@newin_where 
    else 
    if @page_index=1 
    if @where='' 
    select @sql_str='select top '+convert(varchar,@page_size)+ ' '+@select_list+' from '+@table_name+' '+@order_by 
    else 
    select @sql_str='select top '+convert(varchar,@page_size)+ ' '+@select_list+' from '+@table_name+' where '+@where+' '+@order_by 
    else 
    begin 
    select @record_min=(@page_index-1)*@page_size 
    select @sql_str='select top '+convert(varchar,@page_size)+' '+@select_list+' from '+@table_name+' where '+@primary_key+' not in (select '+stuff(@primary_key,1,charindex('.',@primary_key),'') 
    select @sql_str=@sql_str+' from (select top '+convert(varchar,@record_min)+' '+@primary_key+' from '+@table_name+@newin_where+' '+@order_by+') temptable0000)' 
    select @sql_str=@sql_str+@new_where+' '+@order_by 
    end