使用SQL Server 2008 R2在SQL Server中的XML数据列
我想创建一个表具有以下的列
[id] INT IDENTITY(1,1) NOT NULL,
[user_id] INT NOT NULL,
[date] DATE NOT NULL,
[timestamp] DATETIME NOT NULL,
[xml_data] XML NOT NULL
与标识列主键和一个非聚集user_id上的索引和覆盖xml_data和timestamp的日期。
但是,我注意到我不能将xml_data添加到索引中的INCLUDE语句。悲伤的脸,因为当用户搜索user_id和日期时,这将导致RID查找。
什么是最好的方式来存储将被查询的XML数据?
我认为我的选择是
- 棒XML和已经格式良好的数据,但需要查询命中
- 使用VARCHAR(MAX)与未知的优点/缺点
- 使用VARBINARY (MAX)与未知的优点/缺点
注:我怀疑我将能够限制字符串的长度,甚至像8000
非常详细的答案,非常感谢。所以,基本上,我必须吃SELECT的性能? – 2012-03-06 15:49:44
@Norla:如果你不需要,就不要'选择'XML列。另外:因为它是以优化的方式存储的 - 它实际上比**存储为'VARCHAR(MAX)'更快** – 2012-03-06 16:24:47