1 / 22

資料庫開發更容易,更寬廣 談 SQL Server 2008 資料庫開發新知識

資料庫開發更容易,更寬廣 談 SQL Server 2008 資料庫開發新知識. 胡百敬 (http://byronhu.spaces.live.com) 精誠公司 恆逸資訊. 大綱. 精確地使用日期和時間資訊 以疏鬆資料行有效地存放疏鬆擴展的資料 整合式全文檢索 (Full-Text Indexes ) 提供高效能、擴充性和管理能力 以資料表值參數 (Table-Valued Parameters) 傳遞大量資料給函數或程序 使用 MERGE 命令執行多個作業 使用 HierarchyID 資料類型,將階層式資料模型化

ormand
Download Presentation

資料庫開發更容易,更寬廣 談 SQL Server 2008 資料庫開發新知識

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 資料庫開發更容易,更寬廣 談SQL Server 2008資料庫開發新知識 胡百敬(http://byronhu.spaces.live.com) 精誠公司 恆逸資訊

  2. 大綱 • 精確地使用日期和時間資訊 • 以疏鬆資料行有效地存放疏鬆擴展的資料 • 整合式全文檢索(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))將資料庫變更追蹤自動化

  3. SQL Server 2008 強化的 T-SQL

  4. 使用Sparse Columns 有效地儲存資料 Optimize NULLs White paper

  5. 為 ad hoc 負載最佳化 sp_configure 'show advanced options', 1; GO RECONFIGURE; GO

  6. SQL Server 2008: Wordbreakers Portuguese Punjabi Romanian Russian Serbian Serbian Latin Slovak Slovenian Spanish Swedish Tamil Telugu Thai Turkish Ukrainian Urdu Vietnamese German Gujarati Hebrew Hindi Icelandic Indonesian Italian Japanese Korean Latvian Lithuanian Malay Malayalam Marathi Neutral Norwegian Polish • 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 Present but disabled New for 2008 In 2005 but replaced in 2008 Unchanged from 2005

  7. 使用 TVP 載入大資料集合 批次 White paper

  8. 傳遞集合資料給 SQL Server • N 筆記錄 = N 句執行語法 • N 筆記錄 = 1 句執行語法

  9. 傳遞集合資料給 SQL Server • N 筆記錄 = N 句執行語法 • 每執行一句觸發一次使用者端/伺服器端來回

  10. 傳遞集合資料給SQL Server • N 筆記錄 =1 句執行語法 • 將資料以逗號分隔字串傳遞 • 以 XML 傳遞資料 • 以 Table Valued Parameter 傳遞資料 • 其他的選項 • 使用 bulk copy • 以多個參數傳遞資料(當下的限制是 2,100)

  11. 以逗號分隔字串傳遞資料 // C# cmd.CommandType = CommandType.StoredProcedure;cmd.CommandText = "Test.spDelimitedString";cmd.Parameters.AddWithValue("@Values", @"…|…|… …|…|… …|…|…");cmd.Execute…; -- 伺服器端的作法 EXEC Test.spDelimitedString @Values = '…|…|… …|…|… …|…|…';

  12. 以 Table Valued Parameter 傳遞資料 • 優點 • 強型別 • 沒有 SQL Injection 的危險 • 效能很好 • 使用者端與伺服器端都容易使用 • 缺點 • 彈性較 XML 小;可能會需要傳遞多個 TVPs,同樣的情形可能一個 XML 參數就夠了

  13. 以 Table Valued Parameter 傳遞資料 // 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;

  14. 使用 MERGE 命令執行多個作業 • Events • MATCHED • NOT MATCHED • NOT MATCHED BY SOURCE • Type of event • $action

  15. 使用 MERGE 命令執行多個作業 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);

  16. 超越關聯式資料的特色概觀 SQL Server 2008 SQL Server 2005 • 遠端 BLOB Store API • Filestream • 整合式的全文檢索 全文檢索 文檔 & 多媒體 • 完整支援 Geometry 和 Geography 資料類型與功能 XML資料類型與功能 • 強化 XML Relational BR Support 大型 UDTs Sparse Columns Wide Tables/Column Set Filtered Indices HierarchyID 空間資料 XML User Defined Types

  17. SQL Server 2008 空間資料歸納 特徵 概觀 • 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

  18. 對多個 NULL 的資料欄為持唯一 • 建立唯一過濾索引(unique filtered index),以剃除 NULLs CREATE UNIQUE NONCLUSTERED INDEX idx_col1_notnull ON dbo.T1(col1) WHERE col1 IS NOT NULL; 20

  19. Filtered Statistics • 資料分佈統計內容更為詳細精確 • 經由過濾條件傳回的資料可以建立統計(statistics ) • 自動為 filtered indexes 建立 • 可以手動為未建索引的欄位建立 • 與一般的統計相同,會自動更新

  20. 對 .NET CLR 進一步支援 • 可支援 .NET 的nullable變數型態。 • 增加可參照的 .NET 組件函式庫,例如System.Core、System.XML.LINQ(也就是LINQ to XML,沒有支援LINQ to SQL) • 支援SQL Server新增的資料類型,如Date、HierarchyID、空間資料類型…等 • 以.NET定義的資料類型與自訂彙總函數之資料量大小;不再受限於8千位元組,最大可到 2G位元組 • 自訂彙總函數可以傳入多個參數 • 可以告知自訂資料表函數回傳的順序,以節省SQL Server資料庫引擎執行排序的成本

  21. Change Data Capture (CDC) • SQL Agent jobs 週期性地掃描交易記錄,關注有啟動 CDC 的資料表之變動 • 變動資料放置在變更資料表,交易記錄同時提供了時間進程 • 透過 TVF 並指定交易的 LSN 或時間區段,可以取得變更資料 • 可以取得變更的經過細節,或是淨變化

  22. 參考資料 • Introduction to New T-SQL Programmability Features in SQL Server 2008(http://msdn.microsoft.com/en-us/library/cc721270.aspx) • Apress Beginning Spatial with SQL Server 2008 Alastair Aitchison

More Related