從 SQL Server 2000 的初步 XML 支援,到 2005 版原生 XML 資料類型的誕生,再到 2008 版的全面成熟,Microsoft 持續深化資料庫內建 XML 處理能力。理解這段演進歷程,有助於掌握 2008 版新特性的設計初衷與技術優勢。
SQL Server 2000 引入 FOR XML 與 OPENXML 關鍵字,開啟了關聯式資料與 XML 互轉的大門:
RAW、AUTO、EXPLICIT 三種模式sp_xml_preparedocument/sp_xml_removedocument 管理記憶體中的 XML DOM此階段 XML 僅作為資料交換格式,無法在資料庫中原生儲存、索引或查詢。
2005 版引入革命性的 xml 資料類型,奠定現代 XML 處理基礎:
query()、value()、exist()、nodes()、modify() 五大方法建立在 2005 版基礎上,2008 版針對企業級應用痛點進行針對性增強:
| 功能領域 | 2005 版限制 | 2008 版改進 |
|---|---|---|
| 索引策略 | 全文件索引,空間佔用大 | 選擇性 XML 索引,精準針對性路徑 |
| XQuery 相容性 | 部分標準支援 | 完整 XQuery 1.0 核心功能 |
| 日期時間處理 | 有限型別支援 | 新增 xs:dateTime、xs:duration 等 |
| 大量載入效能 | 索引維護開銷大 | 支援索引延遲重建與最小化記錄 |
| 驗證彈性 | 嚴格驗證模式 | lax 驗證允許部分 Schema 通過 |
下篇將詳細介紹:選擇性 XML 索引設計原則、複雜 XQuery 查詢優化技巧、XML Schema 版本演進策略、以及混合關聯/XML 查詢的效能調校方法。