Memory tuning involves the detection of memory-constrained operations. The following memory bottleneck-monitoring guidelines will aid in determining such problems.
Note Be advised that the SQLServer: Cache Hit Ratio in Performance Monitor is an average calculated since boot time, not the value over the last n seconds. Therefore, if many data points accumulate, the graph will only sluggishly change to varying conditions.
Action: Either allocate more memory to SQL Server or increase the amount of system memory.
Action: Compare the SQLServer: Cache - Number of Free Buffers value against the LRUthreshold value. This value is derived by obtaining the total number of buffers allocated by the DBCC MEMUSAGE statement and multiplying this number by the LRUthreshold percentage. If the number of free buffers is close to the derived value then either allocate more memory to SQL Server or increase the amount of system memory.
Action: Increase the system memory or increase the memory dedicated to Windows NT by decreasing the memory allocated to SQL Server or other processes. You can also eliminate noncritical processes because these also use memory resources.
Action: Increase the memory allocated to SQL Server or decrease the procedure cache percentage, thereby increasing the data cache. If indexes are not being used, design intelligent indexes. If database tables are too wide (resulting in fewer data rows per data page), redesign the tables to be narrower.
Action: Increase the data cache size or the frequency of checkpoints. Checkpoints can be increased by decreasing the recovery interval value or by manual execution.
Note Although the memory allocation for keeping tempdb in RAM is not part of the memory configuration value, it may reduce the system memory available for the data and procedure cache.