如何將SQL Server表駐留記憶體和檢測

來源:互聯網
上載者:User

將SQL Server資料表駐留記憶體是SQL Server提供的一項功能,在一般小型系統的開發過程中估計很少會涉及到。這裡整理了相關文檔資料,示範如何把SQL Server中一個表的所有資料都放入記憶體中,實現記憶體資料庫,提高即時性。

1, DBCC PINTABLE

Marks a table to be pinned, which means Microsoft SQL Server does not flush the pages for the table from memory.

Syntax
DBCC PINTABLE ( database_id , table_id )
To determine the database ID, use the DB_ID function.
To determine the table ID, use the OBJECT_ID function.

注釋

DBCC PINTABLE 不會導致將表讀入到記憶體中。當表中的頁由普通的 Transact-SQL 陳述式讀入到快取中時,這些頁將標記為記憶體駐留頁。當 SQL Server 需要空間以讀入新頁時,不會清空記憶體駐留頁。SQL Server 仍然記錄對頁的更新,並且如有必要,將更新的頁寫回到磁碟。然而,在使用 DBCC UNPINTABLE 語句使該表不駐留之前,SQL Server 在快取中一直儲存可用頁的複本。

DBCC PINTABLE 最適用於將小的、經常引用的表儲存在記憶體中。將小表的頁一次性讀入到記憶體中,將來對其資料的所有引用都不需要從磁碟讀入。

注意 DBCC PINTABLE 可以提供效能改進,但是使用時務必小心。如果駐留大表,則該表在開始時會使用一大部分快取,而不為系統中的其它表保留足夠的快取。如果所駐留的表比快取大,則該表會填滿整個快取。sysadmin 固定伺服器角色的某個成員必須關閉而後重新啟動 SQL Server,然後使表不駐留。駐留太多的表和駐留比快取大的表會產生同樣的問題。

樣本:

Declare @db_id int, @tbl_id int
Use DATABASE_NAME
Set @db_id = DB_ID('DATABASE_NAME')
Set @tbl_id = Object_ID('Department')
DBCC pintable (@db_id, @tbl_id)
可將表Department設定為駐留記憶體。
<CENTER><ccid_nobr>
<table width="400" border="1" cellspacing="0" cellpadding="2" bordercolorlight = "black" bordercolordark = "#FFFFFF" align="center">
<tr>
  <td bgcolor="e6e6e6" class="code" style="font-size:9pt">
  <pre><ccid_code> 
Declare @db_id int, @tbl_id int
Use DATABASE_NAME
Set @db_id = DB_ID('DATABASE_NAME')
Set @tbl_id = Object_ID('Department')
DBCC UNpintable (@db_id, @tbl_id)

可將表Department取消設定為駐留記憶體。

可以使用如下的SQL指令來檢測執行情況:

Select ObjectProperty(Object_ID('Department'),'TableIsPinned')

如果返回結果為1:則表示該表已經設定為駐留記憶體;0:則表示沒有設定為駐留記憶體。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.