Category Archives: Performance

效能監控

感謝承修提醒了一個效能監控軟體 Windows Performance Analyzer 的連結討論,

http://www.qa-knowhow.com/?cat=67

它的安裝畫面與 blog 中稍有不同

image

效能

批次不要單筆
精確不要大量
快取不要來回
獨立不要相依

交易中儘量避免

  • 商業邏輯
  • 多次網路來回
  • 大範圍
  • 更新資料沒有 Where,Where 欄位沒有索引

專業分工不要什麼都會
多方測試不要單一解法
持續學習新概念與技術

當應用程式要呈現大量資料時

若使用者下的條件太寬鬆,導致符合的資料太多,務必一開始就要求 SQL Server 只處理一定數量的筆數,例如 SELECT TOP n 或 SET ROWCOUNT n,這個 n 讓使用者可以設定,例如符合條件的紀錄可能 100 萬筆,但只挑 1000 筆處理

呈現時要分頁,SQL 只取符合分頁的記錄傳回,例如 100 筆一頁,則只傳回 100 筆,不要傳回 1000 筆讓 AP Server 挑出其中的 100 筆傳回

為 VSTS 2008 Load Test 換 Controller 的負載測試存放區

VSTS 2008 Load Test Controller 的負載測試存放區預設放在其一起安裝的 SQLExpress 內,若要更換:

在目標資料庫連接執行 C:Program FilesMicrosoft Visual Studio 9.0Common7IDE 目錄下的 loadtestresultsrepository.sql 檔,預設會建立一個名為 LoadTest 的資料庫,並在其內建立相關資料庫物件。

選擇"測試"->"管理 Test Controller"選項,設定覆載測試結果存放區到先前建立的 LoadTest

image

僅在 View 中把 Order By 拿掉,從 8 秒變成不到 1 秒

Order By 在 View 中根本沒用,只能搭配 Top 關鍵字,傳回資料時不具備排序能力,但居然會如此耗效能…

用 SSMS Designer 設計,它允許設計Order By, Designer 自動加了 TOP(100) Percent,在 Designer 檢視時有幫助,實際在查詢 View 時沒有用

使用 Visual Studio Profiler 找出應用程式的瓶頸

SQLIO Disk Subsystem Benchmark Tool

簡單好用的 console 小工具程式,可以測試硬體 IO 的運作效能:SQLIO

安裝完畢後,到 C:Program FilesSQLIO 目錄下讀 Readme.txt 有執行說明

可搭配 Windows 的 Performance Monitor 調整 SQLIO 不同參數,觀察 Performance Counter 的反應,以模擬各種狀況下,系統將呈現的現象