1,看一下表里相关的索引上的处理。
2,如果这个操作很频繁,尽量不要用通用的分页存储过程,因为要通用,所以表名,列名,排序列等等都是参数传入的,去构造sql语句,动态执行,这样的存储过程无法缓存计划,而且每次执行时都要重编译,没有效率性优势,可以考滤专为它写一个分页存储过程,以便有效利用索引,减少重新编译及查询计划时间等 。
3,根具数据的变动,定期重新编译你修改过的存储过程。因为一个计划可能随着具体数据的不同而不再是最优的计划。
4,看一下分页算法上是否有可改进的地方。
5,说你同事的asp代码比你的.net代码快, 原因可能有以下几个方面:
  a,可能一些orm转换,在前端代码里执行对象的创建等等,有所消耗
  b,数据库连接上的一些问题.
  c,数据加载至显示层时的一些转换的消耗。
说实在的,如果前端程序代码不复杂,那么只比从数据库里取数据再显示的话,asp确定不比.net慢.

解决方案 »

  1.   

    说一下我搜索的情况:
    这是一个产品搜索 涉及到产品表(Info,info_id,showname,gsid(用户ID)), 用户表corporation,id,username首先要把跟搜索条件有关的公司列出来,每个公司显示最新的一条数据. (公司不能重复)
    这步要占几个页面。 得用到max
    语句是: select max(info_id) as infoid from info inner join corporation on id=info_id ---表A要这样把数据搜索出来,所以现在三表合起来搜索 Info,corporation,表A (我是用 inner join的)当把这些数据显示完后,以下的几页,就用通用的分页存储过程来写. (这是公司可重复.)分页是用select top + min来实现的.------------------------------------------------
    不知道大家对这种多表,以及这种情况是怎么来实现的.
      

  2.   

    如果用的Order By太多也会很影响速度的,
    下面是一些常见的存储过程分页,希望对楼主有帮助,
    http://www.mzsmc.com/bbs/viewthread.php?tid=17&extra=page%3D1
      

  3.   

    1.检查你的 web.config 文件.
    设置 debug="false"2.Net程序一般第一遍是比较慢的.运行第二遍就好了.
      

  4.   

    SET SHOWPLAN_TEXT 
    看看?
      

  5.   


    楼主结贴语: 大家可以用SQL 2005 为某个搜索专门写个存储过程, 最好不要用构造SQL语句.可能涉及的问题: 请看
    http://blog.sina.com.cn/s/blog_5116ad5f0100ahpo.html (整合)http://blog.sina.com.cn/s/blog_5116ad5f0100abzk.html (碰到条件为空时, 在不用构造SQL语句时用.)