Union All查询视图更改表寻求扫描

时间:2017-04-08 00:44:47

标签: tsql

我有一个View,它使用2个select语句之间的联合。 select语句在桌面上,有数百万行,与4-5个小表连接。

有一个过程对视图有一些查询和一些where子句。

我认为在我的视图中使用Union ALl会比Union更快(结果保证不同),但如果我使用Union ALl而不是Union,我的过程需要相当长的时间。 我检查了查询计划,我注意到的主要区别是

  1. 当我在我的视图计划中使用Union时,包含所有搜索表。
  2. 当我在我的视图中使用Union all时,需要扫描所有表格(60%的费用)
  3. 查看select语句的条件为MainTable.Column<> 10,如果我使用Union计划显示为MainTable.Column> 10或MainTable.Column< 10.联盟所有计划显示<>条件。即使我明确表达了我的条件>或者< ,联盟所有计划显示为<>
  4. 如何知道为什么将联盟更改为联合所有计划生成的扫描而不是搜索。

0 个答案:

没有答案