视图带条件查询非常慢,不带条件很快,单独把视图的语句拿出来再加条件也很快

a547020679 2019-05-05 08:28:54
视图带条件查询非常慢,318行数据查了32秒,不带条件很快,2w多条查了2秒,单独把视图的语句拿出来再加条件也很快,不到1秒,请问是怎么回事。
这是视图的语句
SELECT   Color, MesPlanNo, DMSNo, VIN, ColorName, productflag, BatchNo, Qty, MesPTStatusNo, MesSortNo, MesStartTime, 
MesEndTime, StationTime_1, StationTime_2, StationTime_3, StationTime_4, StationTime_5, StationTime_6,
MesStatusNo, WorkShopCode, StationTime_7, StationTime_8, StationTime_9, StationTime_10, StationTime_11,
StationTime_12, StationTime_13, StationTime_14, StationTime_15, StationTime_16, StationTime_17, StationTime_18,
StationTime_19, StationTime_20, StationTime_21, StationTime_22, StationTime_23, StationTime_24, StationTime_25,
StationTime_26, StationTime_27, StationTime_28, ProductCode, BulletinNo, PTStatusNo, ManufactureCode, EngineCode,
EngineType, ProductFlagCode, JOBNo, ManualCompleted, ManualUser, ManualDate, TuZhuangDMSNo,
CheShenDMSNo, CheJiaDMSNo
FROM (SELECT ppps.Color, ppmc.MesPlanNo, ppps.DMSNo, ppps.VIN, mc.ColorName, mw.[Content] AS productflag,
ppps.BatchNo, ppps.Qty, mw.[Content] AS MesPTStatusNo, ppmc.MesSortNo, ppmc.MesStartTime,
ppmc.MesEndTime, ppmc.StationTime_1, ppmc.StationTime_2, ppmc.StationTime_3, ppmc.StationTime_4,
ppmc.StationTime_5, ppmc.StationTime_6, ppps.MesStatusNo, ppmc.WorkShopCode, ppmc.StationTime_7,
ppmc.StationTime_8, ppmc.StationTime_9, ppmc.StationTime_10, ppmc.StationTime_11,
ppmc.StationTime_12, ppmc.StationTime_13, ppmc.StationTime_14, ppmc.StationTime_15,
ppmc.StationTime_16, ppmc.StationTime_17, ppmc.StationTime_18, ppmc.StationTime_19,
ppmc.StationTime_20, ppmc.StationTime_21, ppmc.StationTime_22, ppmc.StationTime_23,
ppmc.StationTime_24, ppmc.StationTime_25, ppmc.StationTime_26, ppmc.StationTime_27,
ppmc.StationTime_28, ppps.ProductCode, ppps.BulletinNo, ppmc.MesPTStatusNo AS PTStatusNo,
RED.ManufactureCode, RED.EngineCode, RED.EngineType, ppps.ProductFlag AS ProductFlagCode,
ppps.JOBNo, ppmc.ManualCompleted, ppmc.ManualUser, CONVERT(varchar(100), ppmc.ManualDate, 20)
AS ManualDate, ppps.TuZhuangDMSNo, ppps.CheShenDMSNo, ppps.CheJiaDMSNo
FROM dbo.R_ProductionMaster_ZongZhuang AS ppmc LEFT OUTER JOIN
dbo.P_ProductPlanMaster AS ppps ON ppmc.DMSNo = ppps.DMSNo LEFT OUTER JOIN
dbo.M_ColorMaster AS mc ON mc.Color = ppps.Color LEFT OUTER JOIN
dbo.M_WordBookMaster AS mw ON mw.WordBookNo = ppps.ProductFlag AND mw.WordBookNo = ppmc.MesPTStatusNo
LEFT OUTER JOIN
(SELECT A.VIN, A.ManufactureCode, A.EngineCode, A.EngineType
FROM dbo.R_EngineDetail AS A INNER JOIN
(SELECT MAX(SeqNo) AS SeqNo
FROM dbo.R_EngineDetail
GROUP BY VIN) AS B ON B.SeqNo = A.SeqNo) AS RED ON RED.VIN = ppps.VIN) AS A_1

这是不带条件查询视图

这是带条件查询视图

这是把视图的语句单独拿出来带上条件在查

求解答,这里面涉及的表都加了索引了。
...全文
448 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
浪子的情怀 2019-05-05
  • 打赏
  • 举报
回复
分别查看下执行计划呢,是不是有不同的执行计划
Dear SQL(燊) 2019-05-05
  • 打赏
  • 举报
回复
想办法去掉嵌套查询

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧