日期:2014-05-20  浏览次数:20390 次

数据库操作效率问题求教,在线等
现有如下语句创建的两张表:

CREATE   TABLE   [dbo].[分销业绩]   (
[id]   [int]   NOT   NULL   ,
[部门]   [nvarchar]   (50)   COLLATE   Chinese_PRC_CI_AS   NULL   ,
[子部门]   [nvarchar]   (50)   COLLATE   Chinese_PRC_CI_AS   NULL   ,
[username]   [nvarchar]   (50)   COLLATE   Chinese_PRC_CI_AS   NULL   ,
[日期]   [nvarchar]   (50)   COLLATE   Chinese_PRC_CI_AS   NULL   ,
[二级商]   [nvarchar]   (80)   COLLATE   Chinese_PRC_CI_AS   NULL   ,
[协议额]   [nvarchar]   (50)   COLLATE   Chinese_PRC_CI_AS   NULL   ,
[产品]   [nvarchar]   (50)   COLLATE   Chinese_PRC_CI_AS   NULL   ,
[数量]   [int]   NULL   ,
[价格]   [float]   NULL   ,
[金额]   [float]   NULL   ,
[备注]   [ntext]   COLLATE   Chinese_PRC_CI_AS   NULL   ,
)   ON   [PRIMARY]   TEXTIMAGE_ON   [PRIMARY]
GO

CREATE   TABLE   [dbo].[产品]   (
[id]   [int]   NOT   NULL   ,
[fid]   [int]   NULL   ,
[index1]   [int]   NULL   ,
[name]   [nvarchar]   (50)   COLLATE   Chinese_PRC_CI_AS   NULL   ,
[规格]   [nvarchar]   (50)   COLLATE   Chinese_PRC_CI_AS   NULL   ,
[price]   [float]   NULL   ,
[单位]   [nvarchar]   (50)   COLLATE   Chinese_PRC_CI_AS   NULL   ,
[是否积分]   [nvarchar]   (10)   COLLATE   Chinese_PRC_CI_AS   NULL  
)   ON   [PRIMARY]
GO

在asp.net中是datagrid绑定地分销业绩表,按产品表动态添加列,深成如下图的excel导出:
部门   办事处   分销代表   二级商   类别   一级商   协议额(万元)   月份   品种1     品种n   合计
---------------------------------------
销售部     北京       张三       xx公司     企业客户   xx公司       50   2006-2     单价20数量10   合计200.......       合计   n元  


分销业绩表中有2006年3万行数据,产品中有20个品种,数据采用手写标记填充单元格显示,现在的问题是在导出进行到一半时,服务器就停止了响应,其它机器也无法打开站点上的页面,请问如何提高这种页面的工作效率,求例子或思路


------解决方案--------------------
存储过程,建立分表
------解决方案--------------------
写出你的Sql语句看看
------解决方案--------------------
如果是导出Execle不应该用 web 来做,性能太低了.
如果数据量大的话,不推荐使用 DataGrid,性能也是相当的低.
DataGrid 分页功能需要把所有数据全部读出道 DataSet 中.....
建议使用定制的分页存储过程