【发布时间】:2011-08-04 12:48:53
【问题描述】:
是否有人对如何在以下情况下提高性能有任何提示/技巧:
- 我有一个大约记录集。 500,000 行。
- 为此查询提取了大量数据。为了尽量减少查询时间,我将其分解为几个较小的查询;所有存储在带有索引等的临时表中。在末尾;我将所有较小的查询组合到一个临时表中,作为最终查询的“主”记录。
- 上述步骤的当前执行时间约为 2 分钟(考虑到要提取的数据量,还不错)
- 最终结果需要以 XML 格式交付。在编写最终查询时,我使用
FOR XML EXPLICIT将其转换为正确的格式。 - 我遇到的问题是上述 XML 查询需要 30 多分钟,在这种情况下太长了。
所以,我确实有几个选择:
- 我可以将这些数据“预加载”到一个实际的表中,然后查询它而不是使用临时表。我不确定这是否会为我争取很多时间,因为问题不在于加载数据,而在于生成 XML 需要很长时间。
- 上述 XML 最终将被加载到我们的 C# 代码库中,以上传到其最终目的地。将记录集简单地加载到 C# 中并在那里进行 XML 转换而不是在数据库端进行转换是否更有意义?
- 现在我正在使用
FOR XML EXPLICIT;使用任何其他 XML 模式(RAW、AUTO、PATH)是否有任何性能优势?
再次感谢。
~吉姆
【问题讨论】:
标签: xml performance sql-server-2005 c#-4.0