軟件測試開發技術SQL Server 2008數據引擎的新功能 SQL Server 數據庫
關鍵字:SQL Server 2008 數據引擎
【IT168 專稿】
概述
SQL Server 2008針對應用程序開發大幅擴充了許多功能,除了完整支持Visual Studio 2008/.NET Framework 3.5 SP1后所提供的LINQ、ADO.NET Entity Data Model/Framework、ADO.NET Data Service、Sync Framework/Service…等功能外,針對數據引擎本身,也新增的繁多的功能,如下:
新數據形態
日期/時間數據類型:新增date、time、datetime2、datetimeoffset 等日期格式。另外,time、datetime2、datetimeoffset等類型的數據長度可變動,讓你可在精確度與節省空間兩者間選擇。
空間(Spatial)數據類型:可在數據庫內結合地理資訊,并搭配空間索引(Spatial Index)的特殊階層式索引結構,以有效存儲數據。實體的數據類型分為一下兩種:
geometry (平面):符合開放式地理空間協會(Open Geospatial Consortium,OGC)的SQL簡單特征規格1.1.0版,存放幾何空間的X、Y等坐標數據。
geography (測地):存儲橢圓體(圓形地球)數據,例如:GPS的經緯度坐標。
上述兩種數據類型實際是通過SQL CLR編寫,同時提供了豐富的函數,諸如:STLength、STArea、STStartPoint、STEndpoint、STCrosses、STWithin、STOverlaps…等,讓你不論是以T-SQL或是.NET程序語言開發,都可以一致的操作方式存取該資料記錄或物件執行個體。
FileStream:將大量數據通過SQL Server 存回 NTFS檔案目錄,而非數據庫檔案內。讓大型數據不受限于2G位元組大小的限制,還可同時維持交易一致性、整合的管理架構,如:備份/還原、SQL Server 安全性等。
Hierarchyid階層結構數據類型:以SQLCLR UDT實做的特殊數據形態,預設提供許多維護階層結構的方法。以便利操作如檔案、組織階層等結構。
數據表類型的參數(Table-value Parameter):可以先定義數據表類型,再在預存程序聲明該類型參數。在這個版本,傳遞數據表形態的參數是只讀的。
Sparse Column:適用于數據表的字段數量非常多,但大部分記錄該字段的內容都是空的。若聲明成Sparse字段,當內容是null時,完全不占空間。例如Windows Sharepoint Services在存儲文管的數據時,有一大堆檔案格式,每種檔案格式的屬性皆不同,因此有一大堆字段,對應各種不同的文件屬性,當新增任一份檔案時,大部分的屬性字段都可以null,僅少數幾欄適用于該類型檔案描述的屬性有設值。
Sparse Column同時可以搭配過濾條件的索引(Filtered Index),以更省空間、更有效率的放出處理Sparse字段。
新索引結構
空間索引(Spatial Index):對于空間地理資訊建制特殊的索引結構。
設定過濾條件的索引:對符合Where條件的值建立索引,例如:建立索引時限制字段值不可null,則針對Sparse Column建出來的索引資料量就小很多。
T-SQL語法增強
簡化T-SQL語句的編寫:可宣布變量并同時初始化,例如:DECLARE @i INT=4。以及附和運算,例如:+= 、 -= 、 *= 、/= 、%= 等。
Values子句提供資料列構建函式:可用在單一INSERT陳述式內,同時插入多組值,例如
INSERT INTO tb VALUES (1, 'Fred'), (2, 'Jim'), (3, 'Sue');
Merge語句:遵循ANSI SQL 2006 的 Merge定義并加以延伸。比較來源與目的資料后,以一句Merge語句同時完成新增、修改、刪除等操作。如同單一句SQL語句自動含在交互內,通過Merge語句所有更新的資料都包在一個交互內,不像以往需明確定義交互,然后包含多句變更資料的DML語句。
Group By 子句支持 ANSI 標準的 Grouping Sets:簡化組合各種群組的語句,并可搭配 Rollup、Cube。例如,以往若要分別呈現群組不同字段,需要寫如下的查詢:
原文轉自:http://www.anti-gravitydesign.com