INF: Using DBCC BUFCOUNT to Configure HASH BUCKETSID: Q151256
|
The DBCC BUFCOUNT command can be used to configure the HASH BUCKETS value where SQL Server is installed on computers with large amounts of memory.
HASH BUCKETS are an array of pointers to linked lists of buffers pointing
to pages in cache. Each page in cache has a structure used to manage it
known as a "buffer." If chains of buffers become too long, then performance
can suffer. On OS/2 SQL Server, the value was hard coded to 1024. On SQL
Server 4.2 for Windows NT, the value was hard coded to 8192. Now, "HASH
BUCKETS" is configurable from 4999 to 265003 and is the actual number of
entries.
The undocumented command DBCC BUFCOUNT is used to print up to the ten
longest chains and the average chain length. It has the syntax
DBCC BUFCOUNT(<N_CHAINS>)
1> sp_configure memory
2> go
name minimum maximum config_value run_value
------------------ ----------- ---------- ------------ -----------
memory 2800 1048576 409600 409600
1> sp_configure "hash buckets"
2> go
name minimum maximum config_value run_value
------------------ ----------- ----------- ------------ -----------
hash buckets 4999 265003 75000 75011
1> dbcc traceon(3604)
2> go
1> dbcc bufcount(1)
2> go
**** THE 1 LONGEST BUFFER CHAINS ****
bucket number = 26399 chain size = 10
The Smallest Chain Size is: 0
The Average Chain Size is: 2.277133
DBCC execution completed. If DBCC printed error messages, see your System
Administrator.
1>
MEMORY HASH BUCKETS
====== ============
25600 8192
51200 15000
102400 25000
204800 40000
409600 75000
Additional query words: SQL65 SQL6 DBCC MEMORY CONFIGURE SP_CONFIGURE
Keywords : kbusage SSrvAdmin SSrvProg
Version : winnt:6.5,7.0
Platform : winnt
Issue type : kbinfo
Last Reviewed: March 25, 1999