【问题标题】:FOR XML and PerformanceFOR XML 和性能
【发布时间】:2011-08-04 12:48:53
【问题描述】:

是否有人对如何在以下情况下提高性能有任何提示/技巧:

  • 我有一个大约记录集。 500,000 行。
  • 为此查询提取了大量数据。为了尽量减少查询时间,我将其分解为几个较小的查询;所有存储在带有索引等的临时表中。在末尾;我将所有较小的查询组合到一个临时表中,作为最终查询的“主”记录。
  • 上述步骤的当前执行时间约为 2 分钟(考虑到要提取的数据量,还不错)
  • 最终结果需要以 XML 格式交付。在编写最终查询时,我使用FOR XML EXPLICIT 将其转换为正确的格式。
  • 我遇到的问题是上述 XML 查询需要 30 多分钟,在这种情况下太长了。

所以,我确实有几个选择:

  • 我可以将这些数据“预加载”到一个实际的表中,然后查询它而不是使用临时表。我不确定这是否会为我争取很多时间,因为问题不在于加载数据,而在于生成 XML 需要很长时间。
  • 上述 XML 最终将被加载到我们的 C# 代码库中,以上传到其最终目的地。将记录集简单地加载到 C# 中并在那里进行 XML 转换而不是在数据库端进行转换是否更有意义?
  • 现在我正在使用FOR XML EXPLICIT;使用任何其他 XML 模式(RAWAUTOPATH)是否有任何性能优势?

再次感谢。

~吉姆

【问题讨论】:

    标签: xml performance sql-server-2005 c#-4.0


    【解决方案1】:

    这是您的选择。 XML 转换在 C# 中将比在 SQL 中高效得多。

    上面的 XML 最终会被加载到我们的 C# 代码库中 上传到最终目的地。简单的更有意义吗 将记录集加载到 C# 中,并在那里进行 XML 转换, 而不是在数据库端做?

    【讨论】:

      猜你喜欢
      • 2010-09-17
      • 1970-01-01
      • 2021-11-24
      • 2011-09-21
      • 2011-12-12
      • 2021-08-26
      • 1970-01-01
      • 2012-08-06
      • 2012-02-04
      相关资源
      最近更新 更多