改进 FOR XML 显式性能
尽管使用 SQL FOR XML EXPLICIT 很麻烦,但我发现自己经常使用它。 因为它允许完全控制生成的 XML 文档。
我的问题是性能,有时生成一个 XML 文档来描述一个月的一些财务数据(发票、账单等)需要 5 分钟以上!
所以我一直在寻找提高其性能的技巧。 或者甚至是其他可以提供性能优势的替代方法。
Although using SQL FOR XML EXPLICIT is cumbersome, I find myself using it often. Since it allows full control over the generated XML document.
My problem is with perfomance, sometimes it would take more than 5 minutes to generate an XML document describing some financial data (invoices, bills .. etc.) for just one month!
So I was looking for tips to imrpove its performance. Or even other ways to replace it that give a performance advantage.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果 XML 在生成后被传递到某个应用程序(例如 Web 应用程序)进行处理,一种替代方法是仅在 SQL 中生成普通记录集,并让调用应用程序创建 XML 文档。 或者,SQL 可以使用 FOR XML AUTO 生成比您需要的更简单的 XML 形式,然后调用应用程序可以使用 XSLT 样式表将其转换为正确的 XML 格式。
当然,您需要确保原始 SQL 不存在潜在的性能问题,无论它是否格式化为 XML(即您的数据库是否缺少某些索引?)
If the XML is being passed to some application for processing after being produced (such as a web application), one alternative is to just generate normal record sets in the SQL, and let the calling application create the XML document. Or perhaps the SQL can use FOR XML AUTO to generate a simpler form of XML than you require, and then the calling application can transform it into the correct XML format using an XSLT stylesheet.
Of course, you need to make sure there are no underlying performance issues with the original SQL whether it is formatting to XML or not (i.e. Is your database missing some indexes, perhaps?)