|
|||||||||||||||
|
|
|||||||||||||||
|
Home > Databases
Understanding SQL Server Memory Internals Like all database servers, Microsoft SQL Server thrives on memory. Each instance of Microsoft SQL Server has its own memory address space. The SQL Server address space (Virtual memory allocation by Windows) consists of two main components: executable code and memory pool. Let's examine each of these components in more details. SQL Server executable codeExecutable code is basically SQL Server's own EXEs and DDLs that are loaded into the address space. The following is breakdown of the various components:
The memory pool is the unit of memory that an instance of SQL Server uses to create and manage data structures relating to client requests. The following data structures are allocated in the memory pool of an instance of SQL Server:
The buffer cache, procedure cache, and log caches are the only memory elements whose size is controlled by SQL Server. A very important aspect to watch for is whether SQL Server is using the maximum memory available on the system (assuming the system is dedicated to SQL Server). A system with a fully utilized memory may be prone to performance bottlenecks when competition for resources increases. Prepared Transact-SQL statements, for example, may suffer when the procedure cache is unable to expand due to fully utilized buffer caches. Analyzing cache hit ratios over time with Teratrax Performance MonitorTeratrax Performance Monitor tracks the history of the buffer and procedure cache hit ratios so you can view the trends of the ratios over time. Performance Monitor provides two counters for cache hit ratios: Cache Hit Ratio (Buffer cache) and Proc Cache Hit Ratio (Procedure cache). It also provides a variety of views ranging from real-time charting of cache hit ratios all the way to daily, weekly, and monthly charts. This article has been taken from teratrax.com. |
|
|||||||||||||
|
|||||||||||||||