TechDays 2012 記錄 0920

  • 2317
  • 0

TechDays 2012 記錄 0920

來到最後一天,筆者選擇了二堂跟SQL有關的課程,一堂Windows Phone課程,一堂多類別庫開發的課程

以及一堂部署ASP.NET 應用程式至Azrue Lab的課程。

 

SQL Power Tools 擴充事件使用與效益提升實戰 ( 講師:許致學 )

  • Extended Events Manager : Add-in for SSMS 2008 / 建立擴充事件物作的指令碼 / 檢視功能
  • 看更詳細的資訊 : sqlserver package (Page splits/begin ~ end transaction / Tempdb)
  • 統計分析報表
  • 未來不再Support sql profiler,以擴充事件取代之
  • SQL Load Generator(download)
  • Extendent Event Manager Add on SQL 2008(download)
  • Using SQL Server 2008 Extended Events

 

Windows Phone 開發應用實戰 ( 講師:董大偉 )

  • Windows Phone 7 應用程式可繼續執行
  • 與Windows 8 共享核心 (驅動程式、安全性、網路層、影像及多媒體
  • 三種解析度(WVGA、WXGA、720p)
  • 支援NFC分享、電子錢包
  • In-App-Purchases(IAP)
  • 可透過C#/VB、Natvie C/C++、HTML5 browser control開發
  • 公司專屬應用程式
  • 除非使用到新的API,否則您的APP均可使用WP7.1 SDK進行(持續)開發

image

 

  • Windows Azure目前提供的服務

image

 

  • WP與雲端運算-身分驗證架構

image

 

  • WP與雲端運算-訊息服務/動態磚更新

image

 

  • WP可透過哪些技術存取雲端

image

 

  • Windows Azure Toolkit for Windows Phone 7 (WAT) & Azure Mobile
    Service 降低開發所需技術門檻

image

 

  • WP7中存取blob

image

image

image

 

  • Windows Phone Cloud Application Template : 直接支援Azure Blob /
    Table / Queue存取 ; Push Notification ; Single Sign On 身分整合驗證

image

 

  • Azure ACS : Windows Azure Access Control Service / 支援WP7(使用WAT)
    / 用以實現Single Sign On
  • Windows Mobile Service : 新公布的Azure新服務 / 透過Azure運算技術提供
    穩定可靠立即可用的行動裝置服務 / 便利的遠端資料庫存取 / 身分驗證
    / 推播訊息(Push Notifications to users)

image

image

image

 

T-SQL執行計畫深入探討 ( 講師:顏瑞宏 )

  • 檢視T-SQL執行計劃可以知道:index使用的狀態 / 資料透過何種方式讀取 /
    資料表透過何種方式進行聯結 / 每項操作的處理筆數及估計使用成本 /
    是否使用平行處理及資料排序狀況
  • 執行成本:由查詢最佳化工具(Query Optimizer)自動做計算的 / 主要判斷因數
    (每一個層級進行處理的資料列總數,稱為[基數];查詢中使用的運算子所指
    定的演算法成本模型[Index Seek,Index Scan...])
  • 改善基數便能產生更好的估計成本,進而有更快的執行計劃

image

 

  • 輸出文字格式的估計執行計劃,適合語法較複雜的執行計劃

image

image

 

  • 圖形式執行計劃:由右向左解讀,從上向下解讀,最左方的圖示為該執行計劃
    樹系的根,子樹成本為該節點以下的成本總和
  • 巢狀迴圈外部及內部資料表說明

image

 

  • 不同聯結運算子的差異

image

 

  • 如何判斷執行計劃是否合適:查詢中牽涉的資料表及資料行數量是否正確 / 聯結的條件是否
    可以明確限定資料範圍 / 搜尋條件是否有明確指定 / 叢集索引和非叢集索引是否正確 / 不應
    單獨只觀注查詢成本,IO及CPU實際成本為何
  • 判斷執行計是否合適:確認預計筆數和實際筆數差異的比較

image

 

  • 判斷執行計是否合適:Index Seek or Index Scan

image

 

  • 判斷執行計是否合適:Nested Loops or Hash(Merge) Join

image

 

  • 先透過Where條件篩選掉欲聯結資料二邊不需要的記錄,使得做聯結的記錄集小一點
    ,會大幅降低聯結的消耗提高查詢效能
  • 確認聯結的on條件是否明確
  • 檢查執行計劃是否及時先做了篩選資料的動作
  • 執行計劃沒有一定的對錯,在不同的查詢參數條件下,有可能是合適的

image

 

  • SQL執行語句的前置作業 : 語法解析 -> 語意解析 -> 編譯 -> 產生執行計劃
  • 執行計劃建立時機: 第一次執行T-SQL、批次(Batch)、Stored Procedure or Trigger
    ,相同T-SQL但傳遞不同參數值,舊執行計劃Cache被清除時
  • 執行計劃重用時機

image

 

  • 執行計劃重新編譯時機

image

 

  • sp_executesql可有效執行參數化時詢,不需要編譯後讀相同的參數化查詢陳述式
    / 當陳述式參數值的變更是唯一的數數時,以sp_executesql取代預存程序
  • 鎖定

image

 

  • 無法精確估算基數、成本和執行計劃

image

 

  • 統計資訊影響執行計劃

image

 

  • 更新統計資訊建議做法

image

image

 

  • 索引設計提示

image

image

 

  • 強制選擇特定的聯結方式

image

 

  • 強迫T-SQL語法重新編譯

image

 

  • 課程總結

image

 

多平台類別函式庫開發實戰 ( 講師:黃忠成 )

  • Share Library with Binary
  • Visual Studio 2010 with Extension
  • 收集所有平台(.NET / Silverlight / Windows Phone / Xbox360)可使用的Namespace
    ,Class形成另一組.Net Framework Subset
  • WebClient 不存在於Windows Runtime,改用WebRequest / WebResponse
  • System.Threading.Thread不存在於Windows Runtime,改用ThreadPool
  • Thread.Sleep不存在於Windows Runtime,改使用ManualResetEvent.WaitOne
  • Portable Library依賴的關鍵設計-Retargetable,在.NET Compact Framework時代就
    存在Retargetable Flags
  • Windows Store App,mscorlib被retarget to System.Runtime
  • .NET Framework 4.5 mscorlib retarget to mscorlib 4.0
  • Windows Phone,mscorlib retarget to mscorlib 2.0.5.0
  • 另一個關鍵的設計 .class extern forwarder
  • Windows Runtime,System.Runtime取代了原本mscorlib的地位
  • System.Runtime多數的類別宣告都是.class extern forwarder
  • System.Runtime其實會串連回mscorlib
  • 當使用System.Text.StringBuilder(System.Runtime)就是使用System.Text.StringBuilder(mscorlib)
  • Retargetable的對象是Assembly / class forward的對象是類別
  • ThreadPool的秘密

image

 

  • 哪些東西應該變成Portable Library : 非UI的邏輯程式碼(Model) / 部份UI的邏輯程式碼
    (View Model Base) / 與WCF/RESET溝通的程式碼(WCF Proxy Clinet)
  • Windows Store Apps不充許存取COM Object
  • Windows RT版本不充許自訂COM存在,存取COM Object有一定的風險
  • 非要存取COM Object就要自定Portable Library (忠成老師現場演示精彩黑之章)
    (解譯mscorlib / 修改 / 重新編譯)
  • 存取COM Object無法通過WACK檢測,無法上架至Windows Store
  • Windows 8 Enterprise 支援LOB應用程式,可不用通過WACK檢測及由Windows Store安裝換
    言之企業內部運用可以,但風險自負

 

若本文對您有所幫助,歡迎轉貼,但請在加註【轉貼】及來源出處,並在附上本篇的超連結,感恩您的配合囉。

By No.18