專案組回報:單表僅 69 筆資料,用戶端執行 `SELECT *` 卻耗時 2 分 23 秒,但伺服器本機僅 2 秒。經分析,該表含 `image` 型別欄位存放圖片,單表 13 MB,跨專線 (6 Mbps) 傳輸導致嚴重網路延遲。本文示範如何用 SSMS 用戶端統計資訊 量化網路傳輸耗時,並給出優化策略。


SSMS 工具列 → 勾選 Include Client Statistics (或 Shift+Alt+S) → 再次執行查詢 → 結果面板切換至 Client Statistics 索引標籤。

| 類別 | 指標 | 實測值 | 含義 |
|---|---|---|---|
| Network Statistics | Server Roundtrips | 1 | 往返次數 |
| TDS Packets Sent from Client | 1 | 用戶端送出封包數 | |
| TDS Packets Received from Server | 1,012 | 伺服器回傳封包數 (大量資料分割) | |
| Bytes Sent from Client | 215 | 用戶端送出位元組 | |
| Bytes Received from Server | 14,428,921 | 接收 13.7 MB 資料 (含圖片) | |
| Time Statistics | Client Processing Time | 140,132 ms | 用戶端處理時間 ≈ 網路傳輸時間 |
| Total Execution Time | 143,xxx ms | 總耗時 | |
| Wait Time on Server Replies | ~3,000 ms | 伺服器端處理等待 (極短) |
結論: 伺服器端處理僅 ~3 秒,97% 以上時間耗在網路傳輸 13.7 MB 圖片資料。資料庫無效能問題,瓶頸在頻寬與傳輸量。

若在 `sys.dm_os_wait_stats` 觀察到大量 `ASYNC_NETWORK_IO`,代表 SQL Server 等待用戶端接收資料,同樣指向網路/用戶端處理速度不足。
心法: 效能調優需全域視角——CPU、I/O、執行計畫、網路頻寬、傳輸資料量 同等重要。別讓資料庫背負非其責的「慢查詢」黑鍋。