Microsoft SQL Server 2005/2008:XML vs text / varchar数据类型


如果将xml存储在xml类型的列中,那么数据将不会被存储为简单文本,就像在nvarchar案例中那样,它将存储在某种分析数据树中,而这种数据树又会比未分析的xml版本更小。 这不仅可以减小数据库的大小,还可以为您提供其他优势,如验证,轻松操作等(即使您没有使用任何这些方法,它们仍然可以用于将来使用)。

另一方面,服务器必须在插入时解析数据,这可能会降低数据库的速度 - 您必须做出速度与大小的决定。

编辑:

就我个人而言,我认为数据库中的数据只有在结构很难在关系模型中实现时(例如布局,样式描述等),才应该将其存储为xml。通常这意味着数据不会太多,不是一个问题,因此增加了XML功能,如数据验证和操作能力(最后但并非最不重要的是,可以在管理工作室中单击值并查看格式化的XML - 我真的很喜欢该功能!),增加成本。

我没有在数据库中存储大量XML的直接经验,如果我有选择,我不会那样做,因为关系模型几乎总是比较慢,但如果是这样的话, d建议分析这两个选项,并在最适合您需求的尺寸和速度之间进行选择。


我的快速调查显示,MS SQL 2005(快捷版)

Microsoft SQL Server 2005 - 9.00.3073.00(Intel X86)Aug 5 2008 12:31:12 Copyright(c)1988-2005 Microsoft Corporation Express Edition在Windows NT 6.0(Build 6000:)上

存储XML约70%的开销(可能为更快的处理/解析)。

转换前的数据:rows = 160320,reserved = 178576 KB,data = 178184 KB,index_size = 272 KB,未使用= 120 KB

转换后的数据:rows = 160320,reserved = 309702 KB,data = 307216 KB,index_size = 1672 KB,未使用= 184 KB

因此,如果您不打算在数据库端使用XML技术,那么将XML数据存储为XML数据类型没有任何意义。


我正在广泛使用xml来与手持设备进行通信,并且在大多数存储过程中都使用XQuery来只从我需要的XML中检索数据。 它的作品非常棒! 我只是担心存储空间,因为只有十万条记录,数据库大小为1到2 GB。 我们预计会有数百万条用于记录和客户使用的记录。因此,直到我看到它在空间使用方面实际将要做的事情时,这将是令人担忧的。

链接地址: http://www.djcxy.com/p/66417.html

上一篇: Microsoft SQL Server 2005/2008: XML vs text/varchar data type

下一篇: Javascript Marquee to replace <marquee> tags