执行一个sql数据查询,需要2~3分钟.
现在C#总是提示超时.  除非了设置connection连接串的timeout外 还有什么办法么?現在sql語句已經沒什么办法改进了.因为
根据1000多个成品号,然后用游标一个一个成品号的去展Bom表,从成品阶一直展到最尾阶材料.这里是很耗时的.declare @datestate datetime
                            set @datestate='2000/7/6'
                            declare @dateend datetime
                            set @dateend='2015/7/6'
                            declare @date datetime--Bom表中元件品號失效日期
                            set @date='2010/7/6'
                            CREATE TABLE #table
                            (MD001 char(40)COLLATE Chinese_Taiwan_Stroke_BIN,
                             MD003 char(40)COLLATE Chinese_Taiwan_Stroke_BIN,
                             Amount numeric(18,5),
                             level int)
                            CREATE TABLE #t
                            (MD001 char(40)COLLATE Chinese_Taiwan_Stroke_BIN,
                             MD003 char(40)COLLATE Chinese_Taiwan_Stroke_BIN,
                             Amount numeric(18,5),
                             level int)
                            declare @level int
                            declare @id nvarchar(50)
                            declare @Amount int
                            declare MyCusror Cursor
                            For Select [成品碼],sum(isnull([數量],0)) from 備料簽呈.dbo.訂單單身 where [成品碼] is not null and ([預計出貨日]>=@datestate  and [預計出貨日]<=@dateend) group by [成品碼]
                            For Read Only
                            OPEN MyCusror
                                FETCH NEXT from MyCusror into @id,@Amount
                                WHILE @@FETCH_STATUS = 0
                                BEGIN
                             set @level=1
                             insert into #t
                             select MD001,MD003,MD006/MD007*@Amount,@level from BOMMD where MD001=@id and (MD012>convert(varchar(8),@date,112) or MD012='        ')
                             while @@rowcount>0 
                            begin
                              set @level=@level+1
                              insert into #t
                              select a.MD001,a.MD003,a.MD006/a.MD007*b.Amount,@level
                              from BOMMD as a,#t as b
                              where (a.MD001=b.MD003
                              and b.level=@level-1) and (a.MD012>convert(varchar(8),@date,112)  or a.MD012='        ')
                            end
                             insert into #table select MD001,MD003,Amount,level from #t
                             delete #t
                                FETCH NEXT from MyCusror into @id,@Amount
                                END
                            CLOSE   MyCusror 
                            select a.*,b.MB025 品號屬性,c.MC002 庫存名稱,c.sumMC007 庫存,d.sumTC006 計劃採購,(e.sumTD008-e.sumTD015) 預計進貨,f.sumTB009 預計請購,g.sumTB007 計劃領料,(h.sumTB004-h.sumTB005) 預計領料 from 
                            (select MD003,sum(Amount) 用量 from #table group by MD003) a 
                            left join INVMB b on a.MD003=b.MB001
                            left join (select MC001,MC002,sum(isnull(MC007,0)) sumMC007 from INVMC group by MC001,MC002) c on a.MD003=c.MC001 
                            left join (select TC002,sum(isnull(TC006,0)) sumTC006 from LRPTC group by TC002) d on a.MD003=d.TC002
                            left join (select TD004,sum(isnull(TD008,0)) sumTD008,sum(isnull(TD015,0)) sumTD015 from PURTD group by TD004) e on a.MD003=e.TD004
                            left join (select TB004,sum(isnull(TB009,0)) sumTB009 from PURTB group by TB004) f on a.MD003=f.TB004
                            left join (select TB002,sum(isnull(TB007,0)) sumTB007 from LRPTB group by TB002) g on a.MD003=g.TB002
                            left join (select TB003,sum(isnull(TB004,0)) sumTB004,sum(isnull(TB005,0)) sumTB005 from MOCTB group by TB003)  h on a.MD003=h.TB003
                            where b.MB025 like '%%%' and c.MC002 like '%%%'
                            DEALLOCATE MyCusror 
                            drop table #table
                            drop table #t