【问题标题】:Alternatives to Unions in SQL ServerSQL Server 中联合的替代方案
【发布时间】:2011-12-29 15:49:47
【问题描述】:

我有许多模式绑定视图,我想为这些视图添加索引以提高性能。

问题是他们有多个union alls。

我正在寻找一些通用的重构建议/方法来替换 union alls 以允许在视图上创建索引。

基本上,当前视图中使用的联合有两种逻辑场景:

  1. 我们有一个由视图表示的 EntityA。该实体的来源来自许多不同的表。即有的EntityA记录在TableA中,有的EntityA记录在TableB中。

  2. 我们有 EntityA,它由视图表示。 TableA 来源 EntityA。 TableA中的每一行都需要在视图中产生多个EntityAs。

谢谢。

【问题讨论】:

  • 看看你现在拥有的 SQL 可能会有所帮助,这样我们就可以看到需要重构的内容......
  • @JeffN825:在场景 1 中,您是否会同时看到一个实体记录在 TableA 和 TableB 上?
  • @JeffN825:在场景 2 中,查询如何确定要返回多少个 EntityAs?
  • 我想我会被要求提供一些样品。我很高兴很快发布一些内容,但我有点担心它们会混淆事物,因为其中一些视图非常庞大且复杂。
  • 是否可以为每个联合部件创建单独的索引视图并创建一个未索引的视图来联合结果,或者嵌套的联合部件是否受到分组或排序的影响?

标签: sql sql-server database materialized-views


【解决方案1】:

我不确定这是否更快,但是您可以创建一个以您想要的方式索引的临时表,而不是执行union alls,然后从@987654322 的每个部分插入您需要的值@?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-29
    相关资源
    最近更新 更多