使用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