習慣一:生產環境禁用 SELECT *
理由非解析開銷,而是:
- 擴充風險:新增欄位自動被查出,導致非預期資料傳輸。
- 額外 I/O:觸發書籤查找或掃描,圖示對比 `SELECT *` vs `SELECT col1,col2` 的查詢計畫成本差異(圖 1)。

圖 1. SELECT * 帶來的不必要 I/O
習慣二:宣告變數必指定長度
未指定長度預設為 1,導致資料截斷(圖 2)。

圖 2. 未指定長度導致資料遺失
正確:`DECLARE @v VARCHAR(100) = 'long string';`