Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

SQL PASS Taiwan 七月份聚會-3

530 views

Published on

周妙謙 - 淺談開發中的效能調校

Published in: Technology
  • Be the first to comment

  • Be the first to like this

SQL PASS Taiwan 七月份聚會-3

  1. 1. 淺談開發中的效能調校 T-SQL篇 周妙謙 http://chousmiao.wordpress.com/ 7/19/2013 T-SQL Enhancements in SQL Server 2012
  2. 2. Agenda  問題  目前作法  範例介紹  經驗分享 7/19/2013 | T-SQL Enhancements in SQL Server 20122 |
  3. 3. 問題:網頁又跑不出來了 7/19/2013 | T-SQL Enhancements in SQL Server 20123 |
  4. 4. 目前作法 7/19/2013 | T-SQL Enhancements in SQL Server 20124 |  錄Profiler  尋找出問題的Stored Procedure  開始針對該Stored Procedure去查詢哪一句語 句花了最久的時間
  5. 5. 範例介紹-使用過多的資料表join 7/19/2013 | T-SQL Enhancements in SQL Server 2012  在一段陳述句中使用過多的join時,可以將其 拆成多段陳述句,先into到(#)Temp Table,同 時可以在Temp Table上建立適當的索引。這可 以避免過大的Working Table,並找出哪一段 join較慢 5 |
  6. 6. 範例介紹-過度使用User Function 7/19/2013 | T-SQL Enhancements in SQL Server 20126 |  在SELECT欄位時使用函數,會讓每一筆資料再 去呼叫一次函數(如果符合記錄很多筆時,它還 滿可怕的)  函數盡量不要在Where陳述句的欄位上使用,在 Where條件式的欄位上使用函數時,該陳述句不 能適當的使用索引
  7. 7. 7/19/2013 | T-SQL Enhancements in SQL Server 20127 | 經驗分享
  8. 8. 7/19/2013 | T-SQL Enhancements in SQL Server 20128 | 使用子查詢或JOIN的時機?  子查詢:撰寫程式方便  INNER JOIN  了解執行計畫的差異
  9. 9. 使用OR運算子必須特別小心  「所有的」條件都有索引,才能提升查詢速度  只要有一個條件 (欄位) 沒有可用的索引,則 其他所有的條件都有索引也沒用,會造成整 Table Scan或Index Scan 7/19/2013 | T-SQL Enhancements in SQL Server 20129 |
  10. 10. 其他  DISTINCT、ORDER BY 語法會讓資料庫做額 外的計算  UNION的使用,沒有剔除重複資料的需求, 使用 UNION ALL 會比 UNION 更佳  存取資料庫物件時,使用兩節式名稱。  遞迴資料可以考慮使用CTE語法撰寫,避免 Cursor 7/19/2013 | T-SQL Enhancements in SQL Server 201210 |
  11. 11. 使用索引的搜尋條件  可以使用索引的搜尋條件 = > > = < < = Between Like ‘xx%’  無法使用索引的搜尋條件 <> != !> !< OR NOT IN (可以考慮是否以Except 改寫, 觀察執行計畫是否改善效能) NOT LIKE IN NOT EXIST LIKE ‘%xx’ 7/19/2013 | T-SQL Enhancements in SQL Server 201211 |
  12. 12. 結論  一定會發生,還會再發生,一直發生  改商業需求、實作邏輯、資料庫設計、交易鎖 定、索引、硬體  不要傳回大量資料、要有快取、包裝資料存取 物件以保證交易與錯誤處理  Code Review、定期檢視索引的使用狀況,或 是否有系統建議索引 7/19/2013 | T-SQL Enhancements in SQL Server 201212 |
  13. 13. 7/19/2013 | T-SQL Enhancements in SQL Server 201213 |

×