更改视图加入实际表连接

时间:2017-02-21 11:39:37

标签: sql-server sql-server-2008 tsql

我正在使用一个与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.

谁能告诉我原因?

0 个答案:

没有答案