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

SQL Server 資料表釘選記憶體(DBCC PINTABLE)設定與驗證

     編輯:關於SqlServer

SQL Server 提供 DBCC PINTABLE 將指定資料表的資料頁標記為「記憶體常駐」,避免被緩衝區淘汰,適合小型、高頻存取的查閱表(如代碼表、設定表)。本文說明語法、操作範例、驗證指令與風險提醒。

語法與範例

-- 釘選表 Department
DECLARE @db_id INT, @tbl_id INT;
USE MyDatabase;
SET @db_id = DB_ID('MyDatabase');
SET @tbl_id = OBJECT_ID('Department');
DBCC PINTABLE (@db_id, @tbl_id);

-- 取消釘選
DBCC UNPINTABLE (@db_id, @tbl_id);

驗證是否生效

SELECT OBJECTPROPERTY(OBJECT_ID('Department'), 'TableIsPinned');
-- 回傳 1 表示已釘選,0 表示未釘選

運作原理與限制

  • PINTABLE 不會立即讀入資料,而是當資料頁被查詢讀入緩衝區時標記為常駐頁,後續不會被淘汰。
  • 更新仍會寫入磁碟,但緩衝區保留複本直到 UNPINTABLE。
  • 風險:釘選大表或過多表會佔滿緩衝區,導致其他查詢效能驟降,甚至需重啟 SQL Server 才能解除。僅建議用於小型、頻繁存取的表格。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved