实战:上亿数据如何秒查
作者:网络转载 发布时间:[ 2015/4/14 12:49:09 ] 推荐标签:数据库 秒查 SQL
--条件判断(逻辑分析)开始
IF EXISTS(SELECT 1 FROM#FinalLotName)--如果前面判断的查询条件有值
BEGIN
--查出SourceLotName对应的查询字段
SELECT a.SN AS SourceLotName,a.VendorID,a.DateCode,a.SNNote,a.MaterialID AS ComMaterials INTO#SourceLotNameTable FROM CO_SN_GENERATION a WITH(NOLOCK)WHERE EXISTS(SELECT 1 FROM#FinalLotName b WHERE a.SN=b.SourceLotName)
INSERT INTO#FinalCO_SN
SELECT a.LotName,a.SourceLotName,d.SNCust,b.MaterialID,c.ComMaterials,b.MESOrderID,b.OnPlantID,c.VendorID,c.DateCode,c.SNNote FROM#FinalLotName a
LEFT JOIN#WorkCO_SN1 b ON a.LotName=b.SN
LEFT JOIN#SourceLotNameTable c ON a.SourceLotName=c.SourceLotName
LEFT JOIN CO_SN_LINK_CUSTOMER d WITH(NOLOCK)ON a.LotName=d.SNMes
END
ELSE
BEGIN
--已知SN集合求解对应的SourceSN和SNCust集合------------------------------------------
SELECT LotPK,LotName INTO#WorkLotPK410 FROM MMLots WITH(NOLOCK)WHERE EXISTS(SELECT 1 FROM#WorkCO_SN1 b WHERE b.SN=MMLots.LotID)
SELECT a.LotPK,a.SourceLotPK into#WorkSourcePK420 FROM MMLotOperations a WITH(NOLOCK)WHERE EXISTS(SELECT 1 FROM#WorkLotPK410 b WHERE b.LotPK=a.LotPK)AND a.SourceLotPK IS NOT NULL
SELECT a.LotPK,a.SourceLotPK,b.LotName INTO#WorkSourcePK430 FROM#WorkSourcePK420 a JOIN#WorkLotPK410 b ON a.LotPK=b.LotPK
INSERT INTO#FinalLotName SELECT a.LotName,b.LotName AS SourceLotName,NULL FROM#WorkSourcePK430 a JOIN(SELECT LotPK,LotName FROM MMLots WITH(NOLOCK))b on a.SourceLotPK=b.LotPK--b的里面加不加WHERE RowDeleted=0待确定
SELECT a.LotName,a.SourceLotName,b.SNCust INTO#FinalLotNameX440 FROM#FinalLotName a LEFT JOIN CO_SN_LINK_CUSTOMER b WITH(NOLOCK)ON a.LotName=b.SNMes
DELETE FROM#FinalLotName
INSERT INTO#FinalLotName SELECT LotName,SourceLotName,SNCust FROM#FinalLotNameX440
-------------------------------------------------------------------------------------
SELECT a.SN AS SourceLotName,a.VendorID,a.DateCode,a.SNNote,a.MaterialID AS ComMaterials INTO#SourceLotNameTable2 FROM CO_SN_GENERATION a WITH(NOLOCK)WHERE EXISTS(SELECT 1 FROM#FinalLotName b WHERE a.SN=b.SourceLotName)
INSERT INTO#FinalCO_SN
SELECT a.LotName,a.SourceLotName,a.SNCust,b.MaterialID,c.ComMaterials,b.MESOrderID,b.OnPlantID,c.VendorID,c.DateCode,c.SNNote FROM#FinalLotName a
LEFT JOIN#WorkCO_SN1 b ON a.LotName=b.SN
LEFT JOIN#SourceLotNameTable2 c ON a.SourceLotName=c.SourceLotName
END
END
--2.2
IF@DateCode<>''
BEGIN
SELECT Val INTO#WorkDateCode FROM fn_String_To_Table(@DateCode,',',1)
--此@DataCode条件求解出来的是SourceSN
SELECT SN AS SourceSN,MaterialID AS ComMaterials,VendorID,DateCode,SNNote INTO#WorkSourceSNT1 FROM CO_SN_GENERATION a WITH(NOLOCK)WHERE EXISTS(SELECT 1 FROM#WorkDateCode b WHERE a.DateCode=b.Val)
----------------------------------------------------------------------------------------------------
--条件判断(逻辑分析)开始
IF EXISTS(SELECT 1 FROM#FinalCO_SN)--如果前面判断的查询条件有值
BEGIN
SELECT a.LotName,a.SourceLotName,a.SNCust,a.MaterialID,a.ComMaterials,a.MESOrderID,a.OnPlantID,a.VendorID,a.DateCode,a.SNNote INTO#TMP51 FROM#FinalCO_SN a WHERE EXISTS(SELECT 1 FROM#WorkDateCode b WHERE a.DateCode=b.Val)
DELETE FROM#FinalCO_SN
INSERT INTO#FinalCO_SN SELECT LotName,SourceLotName,SNCust,MaterialID,ComMaterials,MESOrderID,OnPlantID,VendorID,DateCode,SNNote FROM#TMP51
END
ELSE
BEGIN
IF EXISTS(SELECT 1 FROM#FinalLotName)
BEGIN
--查出SourceLotName对应的查询字段
SELECT a.SourceSN,a.VendorID,a.DateCode,a.SNNote,a.ComMaterials INTO#SourceLTX5 FROM#WorkSourceSNT1 a WHERE EXISTS(SELECT 1 FROM#FinalLotName b WHERE a.SourceSN=b.SourceLotName)
--查出SN对应的查询字段
SELECT SN,MaterialID,MESOrderID,OnPlantID INTO#WorkSNT510 FROM CO_SN_GENERATION a WITH(NOLOCK)
WHERE SNType='IntSN'AND SNRuleName='ProductSNRule'AND OnPlantID=@OnPlant
AND EXISTS(SELECT 1 FROM#FinalLotName b WHERE a.SN=b.LotName)
INSERT INTO#FinalCO_SN
SELECT a.LotName,a.SourceLotName,d.SNCust,b.MaterialID,c.ComMaterials,b.MESOrderID,b.OnPlantID,c.VendorID,c.DateCode,c.SNNote FROM#FinalLotName a
LEFT JOIN#WorkSNT510 b ON a.LotName=b.SN
LEFT JOIN#WorkSourceSNT1 c ON a.SourceLotName=c.SourceSN
LEFT JOIN CO_SN_LINK_CUSTOMER d WITH(NOLOCK)ON a.LotName=d.SNMes
END
ELSE
BEGIN
本文内容不用于商业目的,如涉及知识产权问题,请权利人联系SPASVO小编(021-61079698-8054),我们将立即处理,马上删除。
相关推荐
在测试数据库性能时,需要注意哪些方面的内容?测试管理工具TC数据库报错的原因有哪些?怎么解决?数据库的三大范式以及五大约束编程常用的几种时间戳转换(java .net 数据库)优化mysql数据库的几个步骤数据库并行读取和写入之Python实现深入理解数据库(DB2)缓冲池(BufferPool)国内三大云数据库测试对比预警即预防:6大常见数据库安全漏洞数据库规划、设计与管理数据库-事务的概念SQL Server修改数据库物理文件存在位置使用PHP与SQL搭建可搜索的加密数据库用Python写一个NoSQL数据库详述 SQL 中的数据库操作详述 SQL 中的数据库操作Java面试准备:数据库MySQL性能优化

sales@spasvo.com