速度太慢了 这个存储过程如何优化
CREATE proc dbo.UP_RcptMng_DC_Login
@Para_ID int,
@Para_REQDATE datetime,
@Para_SuppCD int,
@Para_RESISTTIME datetime,
@Para_RCPTMNGSTATUS int
as
declare @InspDate datetime
declare @ProductCD varchar(13)
begin
-----------------------------------------------------------------
declare Product_cursor cursor
for
select
-- @InspDate=INSPDATE ,
-- @ProductCD = PRODUCTCD
INSPDATE,
PRODUCTCD
from
DBMainStream.dbo.TB_VENDORSTOCK
where
PURSTATUS in(0,1)
and
WORKFLOWREPRECD=10
and
convert(varchar(10),REQDATE,120) like convert(varchar(10),@Para_REQDATE,120)
and
SUPPCD = @Para_SuppCD
and
CONVERT(char(24),RESISTTIME,120) = CONVERT(char(24),@Para_RESISTTIME,120)
and
RCPTMNGSTATUS = @Para_RCPTMNGSTATUS
open Product_cursor
fetch next from Product_cursor
into @InspDate,@ProductCD
while @@fetch_status = 0
begin
if exists
(
select null
from DBHTSystem.dbo.TB_ARRIVINSPREADY
where
convert(varchar(10),InspDate,120) like convert(varchar(10),@InspDate,120)
and
ProductCD=@ProductCD
and
SuppCD=@Para_SuppCD
and
convert(varchar(10),REQDATE,120) like convert(varchar(10),@Para_REQDATE,120)
)
begin
update
DBHTSystem.dbo.TB_ARRIVINSPREADY
set
OrderQty = OrderQty + (
select OrderQty
from
(
SELECT
k.INSPDATE,
k.PRODUCTCD,
k.SUPPCD,
k.REQDATE as ReqDate,
k.CASEINUNIT,
k.PRODUCTNAME,
sum(k.REQQTY) as OrderQty,
isnull(k.ITFCD,'') as ITFCD,
k.DIVISIONCD
,k.DEPARTMENTCD,
k.LINECD,
k.SUPPNAME,
k.WAREHOUSECD,
k.MAKERCD,
case
when lm.productcd is null or (lm.ShapeStatusCD=0 and lm.productcd is not null)
then 0
else 1
end as ProcPropertyRegType,
1 as ConsignerDivision,
@Para_ID as Auther,
getdate() as ResistTime
FROM
DBMainStream.dbo.TB_VENDORSTOCK k
left join
DBLocalMaster.dbo.LMST_WAREHOUSEPRODUCTS lm
on
lm.PRODUCTCD=k.PRODUCTCD
where
k.PRODUCTCD=@ProductCD
and
k.PURSTATUS in(0,1)
and
k.WORKFLOWREPRECD=10
and
convert(varchar(10),k.REQDATE,120) like convert(varchar(10),@Para_REQDATE,120)
and
k.SUPPCD = @Para_SuppCD
and
CONVERT(char(24),k.RESISTTIME,120) = CONVERT(char(24),@Para_RESISTTIME,120)
and
k.RCPTMNGSTATUS = @Para_RCPTMNGSTATUS
-- and not exists(
-- select tba.INSPDATE,
-- tba.PRODUCTCD,
-- tba.SUPPCD
-- from
-- DBHTSystem.dbo.TB_ARRIVINSPREADY as tba
-- where
-- k.INSPDATE=tba.INSPDATE
-- and
-- k.PRODUCTCD=tba.PRODUCTCD
-- and
-- k.SUPPCD=tba.SUPPCD
-- and
-- k.REQDATE=tba.ReqDate
-- )
group by
k.inspdate,
k.productcd,
k.suppcd,
k.REQDATE,
k.CaseInUnit,
k.productname,
k.ITFCD,
k.DivisionCD,
k.DepartmentCD,
k.LineCD,
k.SUPPNAME,
k.warehousecd,
k.MakerCD,
k.productcd,
lm.productcd,
lm.ShapeStatusCD
) as du
),
Auther = @Para_ID,
ResistTime =getdate()
end
else
begin
INSERT INTO DBHTSystem.dbo.TB_ARRIVINSPREADY
(InspDate,
ProductCD,
SuppCD,
ReqDate,
CaseInUnit,
ProductName,
OrderQty,
ITFCD,
DivisionCD,
DepartmentCD,
LineCD,
SuppName,
WarehouseCD,
MakerCD,
ProcPropertyRegType,
ConsignerDivision,
Auther,
ResistTime
)
SELECT
k.INSPDATE,
k.PRODUCTCD,
k.SUPPCD,
k.REQDATE as ReqDate,
k.CASEINUNIT,
k.PRODUCTNAME,
sum(k.REQQTY) as OrderQty,
isnull(k.ITFCD,'') as ITFCD,
k.DIVISIONCD
,k.DEPARTMENTCD,
k.LINECD,
k.SUPPNAME,
k.WAREHOUSECD,
k.MAKERCD,
case
when lm.productcd is null or (lm.ShapeStatusCD=0 and lm.productcd is not null)
then 0
else 1
end as ProcPropertyRegType,
1 as ConsignerDivision,
@Para_ID as Auther,
getdate() as ResistTime
FROM
DBMainStream.dbo.TB_VENDORSTOCK k
left join
DBLocalMaster.dbo.LMST_WAREHOUSEPRODUCTS lm
on
lm.PRODUCTCD=k.PRODUCTCD
where
k.PRODUCTCD=@ProductCD
and
k.PURSTATUS in(0,1)
and
k.WORKFLOWREPRECD=10
and
convert(varchar(10),k.REQDATE,120) like convert(varchar(10),@Para_REQDATE,120)
and
k.SUPPCD = @Para_SuppCD
and
CONVERT(char(24),k.RESISTTIME,120) = CONVERT(char(24),@Para_RESISTTIME,120)
and
k.RCPTMNGSTATUS = @Para_RCPTMNGSTATUS
-- and not exists(
-- select tba.INSPDATE,
-- tba.PRODUCTCD,
-- tba.SUPPCD
-- from
-- DBHTSystem.dbo.TB_ARRIVINSPREADY as tba
-- where
-- k.INSPDATE=tba.INSPDATE
-- and
-- k.PRODUCTCD=tba.PRODUCTCD
-- and
-- k.SUPPCD=tba.SUPPCD
-- and
-- k.REQDATE=tba.ReqDate
-- )
group by
k.inspdate,
k.productcd,
k.suppcd,
k.REQDATE,
k.CaseInUnit,
k.productname,
k.ITFCD,
k.DivisionCD,
k.DepartmentCD,
k.LineCD,
k.SUPPNAME,
k.warehousecd,
k.MakerCD,
k.productcd,
lm.productcd,
lm.ShapeStatusCD
end
fetch next from Product_cursor
into @InspDate,@ProductCD
end
close Product_cursor
DEALLOCATE Product_cursor
--★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆
insert into DBMainStream.dbo.TB_RESULTRCPTMNG_DC
(
Auther,
ConsignerDivision,
CREATETIME,
InspDate,
Maintainer,
ModifyTime,
RCPTMngStatus,
ReqDate,
ResistTime,
SuppCD,
WAREHOUSECD
)
select
distinct
AUTHER,
1,
RESISTTIME,
INSPDATE,
@Para_ID,
getdate(),
2,
REQDATE,
RESISTTIME,
SUPPCD,
WAREHOUSECD
from
DBMainStream.dbo.TB_VENDORSTOCK
where
convert(varchar(10),REQDATE,120) like convert(varchar(10),@Para_REQDATE,120)
and
SUPPCD = @Para_SuppCD
and
CONVERT(char(24),RESISTTIME,120) = CONVERT(char(24),@Para_RESISTTIME,120)
and
RCPTMNGSTATUS = @Para_RCPTMNGSTATUS
update DBMainStream.dbo.TB_VENDORSTOCK
set
RCPTMNGSTATUS=2,
MAINTAINER = @Para_ID,
MODIFYTIME = getdate()
where
convert(varchar(10),REQDATE,120) like convert(varchar(10),@Para_REQDATE,120)
and
SUPPCD = @Para_SuppCD
and
CONVERT(char(24),RESISTTIME,120) = CONVERT(char(24),@Para_RESISTTIME,120)
and
RCPTMNGSTATUS = @Para_RCPTMNGSTATUS
end
go
--★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆
...全文
相关推荐
MYSQL分页limit速度太慢的优化方法
主要介绍了MYSQL分页limit速度太慢的优化方法,需要的朋友可以参考下
pip install速度太慢的多种解决方案
在使用 Python 进行开发时,我们经常需要使用 pip 来安装第三方库。然而,由于 pip 默认使用 PyPI 的国外服务器,国内用户在下载时常常会遇到速度慢的问题。以下是一些解决方案,可以帮助你加速 pip install 的过程。
SQL(及存储过程)跑得太慢怎么办?
SPL,新的SQL处理玩法!
上网速度太慢怎么办 21个全面提速技巧
目前,我国的因特网事业正在迅猛发展,上网人数尤其是拨号上网用广与日惧增。但线路拥挤或带宽不足是上网者面临的一个客观现实。如何充分地利用现有条件,提高七阿速度.是人们十分关心的话题。那么究竟是什么原因影响了拨号上网的速度?又有哪些相应的对策呢?本文就目前普遍流行的一些做法,
Maven添加依赖速度太慢的解决办法-附件资源
Maven添加依赖速度太慢的解决办法-附件资源


