0

在我的存储过程中,我正在创建一个 XML 文件,该文件可能非常大,大于 1GB。数据需要插入到 varbinary 列中,我想知道在 SQL Server 2014 中执行此操作的最有效方法是什么?

4

2 回答 2

0

我会考虑使用文件表:https ://docs.microsoft.com/en-us/sql/relational-databases/blob/filetables-sql-server

并查看此插入 blob:How to insert a blob into a database using sql server management studio

于 2017-05-22T19:51:43.687 回答
0

我将它存储在一个 xml 列中,但由于我无法控制的决定而被要求将其移动到这个新列

如果你有一点机会与这些人交谈,你应该这样做!

您必须知道,XML 不是存储为您看到的字符串表示,而是存储为分层组织的树。读取或操作这些数据的速度快得惊人!如果将 XML 存储为BLOB,则将其保存为字符串格式(希望这是 unicode/ UCS-2!)。读取这些数据需要先转换为 to NVARCHAR(MAX),然后再转换为 to XML,这意味着对整个文档进行完整解析以获取层次结构树。完成后,您可以使用XML 数据类型方法,如.value.nodes)。您将一遍又一遍地需要这个非常昂贵的过程......

尤其是在大型 XML 的情况下(或者 - 甚至更糟 - 其中许多),这是一个非常糟糕的决定!为什么要这样做???它将占用大致相同数量的存储空间。
你唯一会得到的就是糟糕的表现!而你将成为稍后必须修复的人......

VARBINARY是数据的适当类型,您不关心里面的内容(例如图片)。如果这些 XML 只是普通的存档数据并且您不想读取或操作它们,那么这是一个选择。但是一点优势都没有!

于 2017-05-23T08:19:31.740 回答