資料庫開發可以更容易、更寬廣 - 談 SQL Server 2008 資料庫開發新知識
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

資料庫開發可以更容易、更寬廣 - 談 SQL Server 2008 資料庫開發新知識

on

  • 1,537 views

 

Statistics

Views

Total Views
1,537
Views on SlideShare
1,536
Embed Views
1

Actions

Likes
0
Downloads
7
Comments
0

1 Embed 1

http://www.slideshare.net 1

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • Self-explanatory.Stress that this can make the statistics more detailed and useful, especially for skewed data sets. Everything about maintaining filtered stats work the same way as for regular stats.
  • Stress that its asynchronous and works through a log reader.

資料庫開發可以更容易、更寬廣 - 談 SQL Server 2008 資料庫開發新知識 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. Pass the Data as XML
    // C#
    cmd.CommandType = CommandType.StoredProcedure;cmd.CommandText = "Test.spXML";cmd.Parameters.AddWithValue("@Values", doc.OuterXml);cmd.Execute…;
    -- What happens on the server?:
    EXEC Test.spXML @Values = N'<Orders><Order…
  • 13. Pass the Data as a 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. 以 Table Valued Parameter 傳遞資料
    優點
    強型別
    沒有 SQL Injection 的危險
    效能很好
    使用者端與伺服器端都容易使用
    缺點
    彈性較 XML 小;可能會需要傳遞多個 TVPs,同樣的情形可能一個 XML 參數就夠了
  • 15. 以 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;
  • 16. 使用 MERGE 命令執行多個作業
    Events
    MATCHED
    NOT MATCHED
    NOT MATCHED BY SOURCE
    Type of event
    $action
  • 17. 使用 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);
  • 18. 超越關聯式資料的特色概觀
    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
  • 19. SQL Server 2008 空間資料歸納
    特徵
    概觀
    • 2 種空間資料類型(CLR UDT)
    • 20. 豐富的空間方法
    • 21. 高效率的空間索引
    • 22. Management Studio 整合
    • 23. 支援 2D 向量資料
    • 24. Open Geospatial Consortium Simple
    Features for SQL compatible
    • SQL Server 的標準功能
    Express, Workgroup, Web, Standard, Enterprise 和 Developer
    • 支援非常大型的空間物件
    細節
    • 地球量測資料可使用 Geography 資料類型
    • 25. 平面空間可使用Geometry 資料類型
    • 26. 標準的空間方法
    STIntersects, STBuffer, STLength, STArea, etc.
    • 標準的空間資料定義
    WKT, WKB 和GML
    • 可廣泛部署使用的空間函式庫
    SQLSysClrTypes
    19
  • 27. 對多個 NULL 的資料欄為持唯一
    建立唯一過濾索引(unique filtered index),以剃除 NULLs
    CREATE UNIQUE NONCLUSTERED INDEX idx_col1_notnull
    ON dbo.T1(col1)
    WHERE col1 IS NOT NULL;
    20
  • 28. Filtered Statistics
    資料分佈統計內容更為詳細精確
    經由過濾條件傳回的資料可以建立統計(statistics )
    自動為 filtered indexes 建立
    可以手動為未建索引的欄位建立
    與一般的統計相同,會自動更新
  • 29. 對 .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資料庫引擎執行排序的成本
  • 30. Change Data Capture (CDC)
    SQL Agent jobs 週期性地掃描交易記錄,關注有啟動 CDC 的資料表之變動
    變動資料放置在變更資料表,交易記錄同時提供了時間進程
    透過 TVF 並指定交易的 LSN 或時間區段,可以取得變更資料
    可以取得變更的經過細節,或是淨變化
  • 31. 參考資料
    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