在 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 文件中。
错误:
我已经按照其他帖子中的建议进行了以下练习:
- Run This Script 启用 xp_cmdshell
- 在选项>>结果到网格
中将XML data capacity增加到无限
还是一样的错误!如何解决这个问题?
这是因为 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.这是容量的巨大提升。
参考文献:
我有一个查询可以提供大约 40 万条记录 [400000],最多 18mb。
我将输出解析为 XML 输出,使用:
for xml path('url'), Root('urlset')
现在,查询结果不显示完整XML。 当我尝试在 XML SQL window 中查看时,无法导出到 XML 文件中。
错误:
我已经按照其他帖子中的建议进行了以下练习:
- Run This Script 启用 xp_cmdshell
- 在选项>>结果到网格 中将XML data capacity增加到无限
还是一样的错误!如何解决这个问题?
这是因为 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.这是容量的巨大提升。
参考文献: