我正在使用一个与View一起加入的SQL查询。
View包含两个表简单连接。
所以我用连接替换了基表连接的视图。
早期查询
SELECT DISTINCT sts.st_id,md.MarketId,fc.ct_desc MarketName
INTO #tempReviewMarketIds
FROM #MarketIds md
JOIN [dbo].[table1] fc ON md.MarketId = fc.ct_id
JOIN [dbo].[viewname] sts ON fc.ct_pkey = sts.ct_pkey
观点结构:
create view viewname as
select s.st_id, c.ct_pkey from
table1 c
join table2 a on c.ct_pkey = a.ae_ctpkey
join table3 s on a.ae_pkey = s.st_aepkey;
最终查询:
SELECT DISTINCT s.st_id,md.MarketId,fc.ct_desc MarketName
FROM #MarketIds md
JOIN [dbo].[table1] fc ON md.marketid = fc.ct_id
JOIN table2 a ON fc.ct_pkey = a.ae_ctpkey
JOIN table3 s ON a.ae_pkey = s.st_aepkey;
之前该查询成本为80%,但现在查询成本增加到86%。
我将值放在临时表中。主要的插入选项在%age中增加。
我已经了解到,加入视图总是会减慢查询速度和更多I / O,O / P.
谁能告诉我原因?