xml列如何存储在SQL Server 2008中?

时间:2012-11-30 17:34:10

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

我尝试了解SQL Server 2008如何存储xml列以尝试估算产品中的表格大小。

我正在使用DATALENGTH(xml_column)进行一些测试,结果令人不安:

Xml document length | Datalength | Bytes per character
175                 | 366        | 2.09
15                  | 38         | 2.53
314                 | 414        | 1.31

显然,xml列类型不是伪装的nvarchar(max),正如我在某处读过的那样。

它可能已经压缩并存储为二进制文件,但无法找到任何地方。

有人可以解释一下xml列是如何存储在SQL Server 2008中的吗?

2 个答案:

答案 0 :(得分:7)

XML列以“紧凑二进制格式”存储。

我怀疑微软会不会给你更多细节。

答案 1 :(得分:5)

正如rene所指出的,SQL Server 2008使用MS-BINXML - 一种紧凑的二进制格式 - 来存储xml列的内容。