Transcript 投影片 1

胡百敬(http://byronhu.spaces.live.com)
精誠公司 恆逸資訊
精確地使用日期和時間資訊
以疏鬆資料行有效地存放疏鬆擴展的資料
整合式全文檢索(Full-Text Indexes )提供高效能、擴充性和管理能力
以資料表值參數(Table-Valued Parameters)傳遞大量資料給函數或程序
使用 MERGE 命令執行多個作業
使用 HierarchyID 資料類型,將階層式資料模型化
使用空間資料類型(spatial data types)、空間方法(spatial methods)和空
間索引(spatial indexes),建立可感知位置的應用程式
提供檔案資料流 (Filestream) 有效管理檔案及文件資料
提供 GROUP BY 加速群組集合的查詢速度
提供篩選的索引 (Filtered Indexes ) 加速資料集的存取速度
對 .NET CLR 進一步支援
異動資料擷取(Change Data Capture(CDC))將資料庫變更追蹤自動化
2
資料類型
SQL
language
MERGE
撰寫程序
Table Value Parameter
Date & Time
GROUPING SET
宣告和初始化變數
Table value constructor
HierarchyID
Sparse column
Compound assignment
operators
Filtered index
Windows collations
全文檢索
3
Object dependency
Optimize
NULLs
4
White paper
5
sp_configure
'show advanced options', 1;
GO
RECONFIGURE;
GO
Arabic
Bengali
Brazilian
Bulgarian
Canadian
Catalan
Chinese (Simplified)
Chinese (Traditional)
Chinese (Hong
Kong)
Chinese (Macau)
Chinese (Singapore)
Croatian
Cyrillic
Danish
Dutch
English
English UK
French
6
German
Gujarati
Hebrew
Hindi
Icelandic
Indonesian
Italian
Japanese
Korean
Latvian
Lithuanian
Malay
Malayalam
Marathi
Neutral
Norwegian
Polish
Portuguese
Punjabi
Romanian
Russian
Serbian
Serbian Latin
Slovak
Slovenian
Spanish
Swedish
Tamil
Telugu
Thai
Turkish
Ukrainian
Urdu
Vietnamese
Present but
disabled
New for 2008
In 2005 but
replaced in 2008
Unchanged from
2005
批次
7
White paper
N 筆記錄 = N 句執行語法
N 筆記錄 = 1 句執行語法
8
N 筆記錄 = N 句執行語法
每執行一句觸發一次使用者端/伺服器端來回
9
N 筆記錄 = 1 句執行語法
將資料以逗號分隔字串傳遞
以 XML 傳遞資料
以 Table Valued Parameter 傳遞資料
其他的選項
使用 bulk copy
以多個參數傳遞資料
(當下的限制是 2,100)
10
// C#
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "Test.spDelimitedString";
cmd.Parameters.AddWithValue("@Values", @"…|…|…
…|…|…
…|…|…");
cmd.Execute…;
-- 伺服器端的作法
EXEC Test.spDelimitedString @Values = '…|…|…
…|…|…
…|…|…';
11
優點
強型別
沒有 SQL Injection 的危險
效能很好
使用者端與伺服器端都容易使用
缺點
彈性較 XML 小;可能會需要傳遞多個 TVPs,同樣的
情形可能一個 XML 參數就夠了
14
// C#
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "Test.spTVP";
var p = cmd.Parameters.Add("@Values",
SqlDbType.Structured);
p.TypeName = "Test.OrderTableType";
p.Value = dataTable;
cmd.Execute…;
-- What happens on the server?:
DECLARE @Values Test.OrderTableType;
INSERT @Values …
EXEC Test.spTVP @Values = @Values;
15
Events
MATCHED
NOT MATCHED
NOT MATCHED BY SOURCE
Type of event
$action
16
MERGE Test.Orders AS o
USING @Values AS v
ON v.OrderId = o.OrderId
WHEN MATCHED THEN
UPDATE SET
CustomerId = v.CustomerId
,OrderDate = v.OrderDate
,DueDate = v.DueDate
WHEN NOT MATCHED BY SOURCE THEN
DELETE
WHEN NOT MATCHED THEN
INSERT (OrderId, CustomerId, OrderDate)
VALUES(v.OrderId, v.CustomerId,
v.OrderDate);
17
SQL Server 2005
全文檢索
文檔 &
多媒體
SQL Server 2008
遠端 BLOB Store API
Filestream
整合式的全文檢索
完整支援 Geometry
和 Geography 資料
類型與功能
空間資料
XML資料類型與功
能
強化 XML
XML
User Defined Types
Relational
BR Support
18
大型 UDTs
Sparse Columns
Wide Tables/Column
Set
Filtered Indices
HierarchyID
概觀
• 2 種空間資料類型 (CLR UDT)
•豐富的空間方法
•高效率的空間索引
•Management Studio 整合
特徵
• 支援 2D 向量資料
• Open Geospatial Consortium Simple
Features for SQL compatible
•SQL Server 的標準功能
Express, Workgroup, Web, Standard,
Enterprise
和 Developer
• 支援非常大型的空間物件
細節
•地球量測資料可使用 Geography 資
料類型
•平面空間可使用 Geometry 資料類型
•標準的空間方法
STIntersects, STBuffer, STLength, STArea,
etc.
•標準的空間資料定義
WKT, WKB 和 GML
•可廣泛部署使用的空間函式庫
SQLSysClrTypes
19
19
建立唯一過濾索引(unique filtered index),
以剃除 NULLs
CREATE UNIQUE NONCLUSTERED INDEX idx_col1_notnull
ON dbo.T1(col1)
WHERE col1 IS NOT NULL;
20
20
資料分佈統計內容更為詳細精確
經由過濾條件傳回的資料可以建立統計
(statistics )
自動為 filtered indexes 建立
可以手動為未建索引的欄位建立
與一般的統計相同,會自動更新
21
可支援 .NET 的nullable變數型態。
增加可參照的 .NET 組件函式庫,例如
System.Core、System.XML.LINQ(也就是LINQ to
XML,沒有支援LINQ to SQL)
支援SQL Server新增的資料類型,如Date、
HierarchyID、空間資料類型…等
以.NET定義的資料類型與自訂彙總函數之資料量大
小;不再受限於8千位元組,最大可到 2G位元組
自訂彙總函數可以傳入多個參數
可以告知自訂資料表函數回傳的順序,以節省SQL
Server資料庫引擎執行排序的成本
22
SQL Agent jobs 週期性地掃描交易
記錄,關注有啟動 CDC 的資料表之
變動
變動資料放置在變更資料表,交易
記錄同時提供了時間進程
透過 TVF 並指定交易的 LSN 或時間
區段,可以取得變更資料
可以取得變更的經過細節,或是淨
變化
23
Introduction to New T-SQL Programmability
Features in SQL Server
2008(http://msdn.microsoft.com/enus/library/cc721270.aspx)
Apress Beginning Spatial with SQL Server
2008 Alastair Aitchison
24