針對大數據量、高併發、高效能要求的專案,SP 開發需遵循嚴格規範並持續優化。優化後 SP 效能可較差 SP 提升數百倍。
資料庫開發工程師、架構師、對資料庫效能有濃厚興趣的技術人員。
database.dbo.table,sp_depends 無法追蹤跨庫相依性,影響影響分析。SET SHOWPLAN_ON 分析查詢計劃,自查索引缺失、掃描、隱式轉換等問題。HOLDLOCK,提升併發。WHERE 條件順序遵循索引順序、範圍由大到小。WHERE 子句「=」左邊不可加函數/運算,否則索引失效。EXISTS 代替 COUNT(1);統計全表行數才用 COUNT(1)(優於 COUNT(*))。>= 替代 >(利用索引邊界)。OR 與 UNION ALL 互換、連接欄位資料型別一致、參數與欄位型別匹配。INDEX(index_name) 強制指定。DISTINCT, ORDER BY, GROUP BY, HAVING, JOIN, COMPUTE 降低 tempdb 壓力。SELECT INTO 避免記錄 Log 提速;小量用 CREATE TABLE + INSERT 緩解系統表鎖定。TRUNCATE TABLE → DROP TABLE 清理暫存表,避免系統表長時間鎖定。結合 SET STATISTICS IO ON, SET STATISTICS TIME ON, SET SHOWPLAN ON 等 ASE 調優命令,多種演算法實測比較,選資源消耗最少、效率最高者。