62,071
社区成员
发帖
与我相关
我的任务
分享
/*RT:
我现在数据库有A表(主表),B表(子表).A表里有20W条记录,B表有40W条.以后肯定会是好几百万条.
数据逻辑层数据是通过映射的,取数据还蛮快的.A表取出来20W在10秒内(里面把B表挂在A下的记录也一并取出了),
因为我数据逻辑层是服务器端的数据.而给客户端的数据要经过一个转换层的操作(数据有延迟加载的,如果不经过一个层来转换,到时通过WebService传到客户端在广域网上很耗时的).
问题是:当我A表有20W条记录时.数据转换层也就要执行20W次转换操作.这样别说人,电脑也受不了
征求大师们的意见.怎么让它在转换层这里速度快一些(注意:转换层是一定要的.框架结构就是这样的)
非常希望得到你们的想法.我一定好好学习.在此感激不尽.结贴时可加分.谢谢!*/
ALTER PROCEDURE [dbo].[USP_TransOrder_Select](
@Method varchar (50),
@TransOrderID uniqueidentifier ,
@InputTime datetime,
@Updater varchar (20) ,
@UpdateTime datetime,
@Status int ,
@IsCancel int,
@Remark varchar (500) ,
@Inputer varchar (20) ,
@TransOrderNO varchar (20) ,
@ConsignMan varchar (100) ,
@ReceiveMan varchar (100) ,
@OrderTotalFee varchar(50),
@ConsignDate datetime,
@OrderLoading varchar (100) ,
@OrderUnloading varchar (100)
)
as
if @Method='ByID' /*通过关键字查找*/
BEGIN
SELECT TOP (1) [TransOrderID],[InputTime],[Updater],[UpdateTime],[Status],[IsCancel],[Remark],[Inputer],[TransOrderNO],[ConsignMan],[ReceiveMan],[OrderTotalFee],[ConsignDate],[OrderLoading],[OrderUnloading] FROM [TransOrder] WHERE ([TransOrderID]=@TransOrderID)
END
if @Method='ByConsignMan' /*通过拖运人查找*/
BEGIN
SELECT [TransOrderID],[InputTime],[Updater],[UpdateTime],[Status],[IsCancel],[Remark],[Inputer],[TransOrderNO],[ConsignMan],[ReceiveMan],[OrderTotalFee],[ConsignDate],[OrderLoading],[OrderUnloading] FROM [TransOrder] WHERE ([ConsignMan]=@ConsignMan)
END