在 SQL 中创建和存储大型 XML 输出

create and store large XML output in SQL

我有一个查询可以提供大约 40 万条记录 [400000],最多 18mb
我将输出解析为 XML 输出,使用:

for xml path('url'), Root('urlset')

现在,查询结果不显示完整XML。 当我尝试在 XML SQL window 中查看时,无法导出到 XML 文件中。

错误:

我已经按照其他帖子中的建议进行了以下练习:

还是一样的错误!如何解决这个问题?

这是因为 SSMS 无法在结果中显示大量数据 window。 您可以编写实用程序并将数据转储到文件中以提高可读性。

过了一会儿,我尝试了@gofr1 在他的评论中提到的内容。

以上做法在打开新查询时无效window/刷新数据库连接。

它仅在重新启动 SSMS 后有效。

更新 注意:使用此解决方案,您可以在网格 中看到 结果,但如果您尝试将其导出到 XML 文件。你会得到同样的错误。

Exception of type 'System.OutOfMemoryException' was thrown.

更新:

所以,在这里我决定将 XML 输出传递给应用程序,并让 C# 在所需文件夹中生成 XML 文件。

因为 Google sitemap XML limit 是:50,000。因此,应该创建多个站点地图,每个站点地图最多包含 50k 条记录。

注意:Google 每个域允许 1000 个站点地图文件

编辑:

Google 已将最大限制从 1,000 个站点地图增加到 50,000 个站点地图,站点地图文件大小上限为 50mb.这是容量的巨大提升。

参考文献:

  1. seroundtable/archives/021559
  2. searchengineland/google-bing-increase-file-size-limit-sitemaps-files
  3. searchenginejournal/google-bing-increase-sitemap-file-size-limit-50