[轉]如何寫出高效能TSQL -深刻淺出SQL Server Relational Engine (含 SQL 2014 in-memory Engine)

[轉]如何寫出高效能TSQL -深刻淺出SQL Server Relational Engine (含 SQL 2014 in-memory Engine)sql

http://blogs.technet.com/b/chinatechnet/archive/2015/01/16/tsql-sql-server-relational-engine-sql-2014-in-memory-engine.aspx安全

TSQL on Azure 若有你有使用Azure SQL Database的話,那麼在撰寫TSQL時須要留意如下幾個重點。 1. 善用數據表值參數 SQL 2014有增強數據表值參數(SQL Azure 也同樣),就是數據表值參數可使用索引來提升查詢效能,之前你們可能比較經常使用temp table來處理元數據,但在Azure上須要小心使用過多的tempdb資源,畢竟tempdb只有一個 (你們共享),因此當使用過多tempdb資源時,Azure可能會自動切斷聯機,因此建議使用數據表值參數取代temp數據表來處理元數據。 2. 減小數據網絡來回次數 因爲網絡質量咱們沒法掌握,因此必定要減小數據在Azure和Client之間的往來次數,同時也要創建一套安全retry機制,基本上都建議採起批處理 (如一次撈所需的數據結果集),少用row by row方式 (這也增長 Azure 費用成本) 來查詢數據或進行數據異動 (如c ursor),且全部TSQL請使用try.. catch包起來,如遇到問題 (如網絡斷線..等)才能夠有相對應處理方法。 3. 善用快取 能夠在數據表中新增 rowversion 字段,這樣咱們就能夠輕易使用該字段(注意該字段不建議成爲索引鍵值)來判斷上次讀取數據列後,數據列中任何值是否有改變,若是沒有改變的話就讀取本地快取數據,不然就讀取Azure上數據,這不只能夠大幅提升效能,同時也能夠省下很多 Azure 費用成本。
相關文章
相關標籤/搜索