[英]XML Data Column in SQL Server
使用SQL Server 2008 R2
我想用以下各列創建一個表
[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和時間戳。
但是,我注意到我無法將xml_data添加到索引中的INCLUDE語句中。 悲傷的表情,因為當用戶搜索user_id和date時,這將導致RID查找。
存儲要查詢的xml數據的最佳方法是什么?
我認為我的選擇是
注意:我懷疑是否可以將字符串的長度限制為甚至8000。
如果您有XML-將其存儲為XML
,原因有兩個:
它針對XML存儲進行了優化-它不僅存儲為純文本,而且實際上是標記化的,比純文本更有效地存儲
當將XML存儲為XML
類型時,您實際上可以查詢 XML
但是:您不能僅像這樣索引XML列。 SQL Server中的任何索引最大長度為900字節-XML列的大小最大為2 GB。
如果要對XML列建立索引,請查看SQL Server 2005中的XML索引 -它是一種單獨的索引類型,旨在非常高效地處理對XML的查詢。
加快XML查詢速度的另一種方法是,通過存儲函數從XML中提取信息並將其存儲為父表,從而將您經常查詢的XML某些部分“浮現”到父表上。計算父表上的持久化列。 一旦將其存儲在此處,您就可以像查詢其他任何列一樣對其進行查詢,也可以對其進行索引! 但是,它僅適用於單條信息(例如,訂單中的OrderNumber
您只能擁有其中之一)-不能將其應用於數據集合。
您可以使用XQuery查詢xml字段。 看這里 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.