datetime century date into pad dynamic cursor money percent sp job isnumeric isdate over update
SQLUSA.com
SQL 2008 GRAND SLAM ON 49 CD
FREE TRIAL  CLICK HERE TO ORDER  SEARCH
SQL Server Training SQL 2005 Scripts SQL 2008 Articles
SQL JOBS News Format Developer

Microsoft SQL Server 2000 Articles

 

How to Pin a Table into Memory?
By Kalman Toth, M.Phil., M.Phil., MCDBA

February 28, 2005

While SQL Server 2000 has a sophisticated memory buffer management, it may lead to performance gain if we help out SQL server with something we know: keep TableX in memory all the time. The result will be that TableX pages will not be flushed out, whatever comes in, will stay in memory. If the table is used frequently, the result is improved performance.

This is the code sample:

use pubs
DECLARE @db_id int, @tbl_id int
SET @db_id = DB_ID('pubs')
SET @tbl_id = OBJECT_ID('pubs..authors')
DBCC PINTABLE (@db_id, @tbl_id)

This is the message:
Warning: Pinning tables should be carefully considered. If a pinned table is larger, or grows larger, than the available data cache, the server may need to be restarted and the table unpinned.
DBCC execution completed. If DBCC printed error messages, contact your system administrator.

We can check if a table is pinned or not by:

SELECT OBJECTPROPERTY(OBJECT_ID('pubs..authors'),'TableIsPinned')

Which returns 1 if pinned and 0 if not.


To see how many buffers are pinned execute:

DBCC memorystatus

The "inram" entry indicates the pinned tables buffer usage.


What happens if the table in memory grows too large? That is a real danger with pinning. Eventually over-pinning stops the server altogether. The overload sequence start with various strange server messages in the server log, all related to memory utilization.

This is the code sample to unpin a table:

use pubs
DECLARE @db_id int, @tbl_id int
SET @db_id = DB_ID('pubs')
SET @tbl_id = OBJECT_ID('pubs..authors')
DBCC UNPINTABLE (@db_id, @tbl_id)

For practical purposes, no more than half of the SQL server available memory should be used for pinning. Very frequently used tables should be pinned. Perfomance gain should be monitored. If no gain, pinning should be discontinued.

 

Order SQL 2008 GRAND SLAM Today!
SQLUSA.com Home Page
SQL Server Training at www.sqlusa.com.
Microsoft SQL Server 2012 Training Videos at www.sqlusa.com.
SQL Server 2008 Video Training at www.sqlusa.com.
SQL Server 2005 Training Videos at www.sqlusa.com.
Accounting
Administrative
Advertising
Arts
Architecture
Banking
Business Intelligence
Career Jobs
Celebrity
Computer
Consulting
Customer Service
Education
Engineering
Entertainment
Entry Level
Executive
Federal
Finance
Government
Hardware
Healthcare
Hospital
Human Resources
Information Technology
Insurance
Internet
Job Openings
Laboratory
Law Enforcement
Legal
Logistics
Manufacturing
Marketing
Medical
Military
Nursing
Pharmaceutical
Physician
Public Relations
Publishing
Real Estate
Restaurant
Retail
Sales
Social Media
Software
SQL Database
Telecomm
Therapist
Training
Transportation
Truck Driver
Travel
Web
Work from Home

FREE SS SQL / BI OLAP Short Videos on YOUTUBE.com

Microsoft Community Contributor 2011 Microsoft Community Contributor 2012

Search SQLUSA FREE SQL Server Articles & FREE T-SQL Scripts

JOIN US ON TWITTER

Copyright 2005-2012, SMI Corp. All Rights Reserved.

SQL Server 2012 is a program product of Microsoft Corporation.
SQL Server 2008 is a program product of Microsoft Corporation.
SQL Server 2005 is a program product of Microsoft Corporation.
SQL Server 2000 is a program product of Microsoft Corporation.