首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

SQL Server 查詢記憶體消耗分析 (2/2):參數化查詢與預存程序最佳化

     編輯:關於SqlServer

改用參數化查詢

調整 Java 程式使用 PreparedStatement,先執行 DBCC FREEPROCCACHE 清除快取:

String sql = "SELECT * FROM SalesOrderHeader WHERE SalesOrderID = ?";
PreparedStatement pstmt = conn.prepareStatement(sql);
for (int id : ids) {
    pstmt.setInt(1, id);
    ResultSet rs = pstmt.executeQuery();
}

再次查詢 DMV,發現單一參數化計畫被重用 20 次(usecounts = 20),有效節省記憶體與 CPU。

延伸效益

減少多餘計畫釋放共享記憶體池空間,讓資料快取與索引頁面獲得更多記憶體,提升整體效能。

建議:優先使用預存程序

  • 安全性:避免直接存取核心資料表。
  • 維護性:邏輯與資料模型解耦,業務變更時減少模型調整。
  • 計畫重用:預存程序天然參數化,計畫重用率最高。

無論選擇參數化查詢或預存程序,核心原則都是確保查詢計畫可重用,避免記憶體與 CPU 浪費。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved