SQL Server 2014 - 将xml数据插入varbinary字段

时间:2017-05-22 19:41:22

标签: sql-server xml varbinarymax

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

2 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

  

我将它存储在xml列中,但由于我无法控制的决定而被要求将其移至此新列

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

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

特别是在大型XML的情况下(或 - 更糟糕的是 - 其中很多)这是一个非常糟糕的决定!! 为什么要这样做?它将占用大致相同的存储空间量 你唯一能得到的就是糟糕的表现!你将成为那个以后必须修复它的人......

VARBINARY是数据的合适类型,您不关心内部的内容(例如图片)。如果这些XML只是普通的归档数据,并且您不想读取或操作它们,那么这可以是一种选择。但是根本没有优势!