【问题标题】:create and store large XML output in SQL在 SQL 中创建和存储大型 XML 输出
【发布时间】:2016-10-22 10:21:53
【问题描述】:

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

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

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

错误:

我按照其他帖子中的建议做了以下做法:

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

【问题讨论】:

  • 尝试在Increase XML data capacity to Unlimited in Options >> Result to Grid 之后重新启动 SSMS 或创建新的查询窗口并在那里执行您的查询

标签: sql-server xml sql-server-2008 ssms


【解决方案1】:

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

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

只有在重新启动 SSMS 后才能使用。

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

引发了“System.OutOfMemoryException”类型的异常。

更新:

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

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

注意: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

【讨论】:

    【解决方案2】:

    这是因为 SSMS 无法在结果窗口中显示大量数据。 您可以编写一个实用程序并将数据转储到文件中以获得更好的可读性。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-09-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-10
      • 2016-07-28
      • 2017-03-11
      相关资源
      最近更新 更多