CHAPTER 2
N
SYSTEM PERFORMANCE ANALYSIS
19
Dynamic Management Views
/Ê}iÌÊ> immediate snapshot of a large amount of data that was formerly available only
Ê*iÀvÀ>ViÊÌÀ]Ê-+Ê-iÀÛiÀÊÜÊvviÀÃÊÌiÊÃ>iÊ`>Ì>ÊÌiÀ>ÞÊÌÀÕ}Ê>ÊÃiÌ of
`Þ>VÊ>>}iiÌÊÛiÜÃÊ6îÊ>`Ê`Þ>VÊ>>}iiÌÊvÕVÌÃÊî°Ê/iÃiÊ>ÀiÊ
iÝÌÀiiÞÊÕÃivÕÊiV>ÃÃÊvÀÊV>«ÌÕÀ}Ê>ÊÃ>«ÃÌÊvÊÌiÊVÕÀÀiÌÊ«iÀvÀ>ViÊvÊÞÕÀÊ
ÃÞÃÌi°Ê½ÊÌÀ`ÕViÊÃiÛiÀ>ÊvÊÌiÃiÊÌÀÕ}ÕÌÊÌiÊL]ÊLÕÌʽÊvVÕÃÊÊ>ÊviÜÊÌ>ÌÊ>ÀiÊÌiÊ
most important for monitoring performance and for establishing a baseline.
/iÊouo*`i[ko[lanbkni]j_a[_kqjpano view displaysÊÌiÊ-+Ê-iÀÛiÀÊVÕÌiÀÃÊÜÌÊ>Ê
µÕiÀÞ]Ê>Ü}ÊÞÕÊÌÊ>««ÞÊÌiÊvÕÊÃÌÀi}ÌÊvÊ/-+ÊÌÊÌiÊ`>Ì>Êi`>ÌiÞ°ÊÀÊiÝ>«i]Ê
this simple query will return the current value for Hkcejo+oa_:
OAHA?P_jpn[r]hqa
BNKIouo*`i[ko[lanbkni]j_a[_kqjpano
SDANAK>FA?P[J=IA9#IOOMH CB.,,46Cajan]hOp]peope_o#
=J@_kqjpan[j]ia9#Hkcejo+oa_#
/ÃÊÀiÌÕÀÃÊÌiÊÛ>ÕiÊvÊ£xÊvÀÊÞÊÃiÀÛiÀ°ÊÀÊÞÕÀÊÃiÀÛiÀ]ÊÞÕ½Êii`ÊÌÊÃÕLÃÌÌÕÌiÊÌiÊ
appropriate server name in the K>FA?P[J=IA comparison.
/iÀiÊ>ÀiÊ>Ê>À}iÊÕLiÀÊvÊ6ÃÊ>`ÊÃÊÌ>ÌÊV>ÊLiÊÕÃi`ÊÌÊ}>ÌiÀÊvÀ>ÌÊ
about the server. Rather than cover them all, I’ll introduce one more that you will find yourself
accessing on a regular basis, ouo*`i[ko[s]ep[op]po°Ê/ÃÊ6ÊÃÜÃÊ>Ê>}}Ài}>Ìi`ÊÛiÜÊvÊ
ÌiÊÌÀi>`ÃÊÜÌÊ-+Ê-iÀÛiÀÊÌ>ÌÊ>ÀiÊÜ>Ì}ÊÊÛ>ÀÕÃÊÀiÃÕÀViÃ]ÊViVÌi`ÊÃViÊÌiÊ>ÃÌÊ
ÌiÊ-+Ê-iÀÛiÀÊÜ>ÃÊÃÌ>ÀÌi`ÊÀÊÌiÊVÕÌiÀÃÊÜiÀiÊÀiÃiÌ°Ê`iÌvÞ}ÊÌiÊÌÞ«iÃÊvÊÜ>ÌÃÊÌ>ÌÊ>ÀiÊ
occurring within your system is one of the easiest mechanisms to begin identifying the source
vÊÞÕÀÊLÌÌiiVðÊ9ÕÊV>ÊÃÀÌÊÌiÊ`>Ì>ÊÊÛ>ÀÕÃÊÜ>ÞÃ]ÊLÕÌÊvÀÊÌiÊvÀÃÌÊiÝ>«i]ʽÊÊ>ÌÊ
the waits that have the longest current count using this simple query:
OAHA?PPKL$-,%
&
BNKIouo*`i[ko[s]ep[op]po
KN@AN>Us]ep[peia[io@AO?
}ÕÀiÊÓÓÊ`ë>ÞÃÊÌiÊÕÌ«ÕÌ°
Figure 2-2. Output from ouo*`i[ko[s]ep[op]po
You can see not only the cumulative time that particular waits have occurred but also
>ÊVÕÌÊvÊÜÊvÌiÊÌiÞÊ>ÛiÊVVÕÀÀi`Ê>`ÊÌiÊ>ÝÕÊÌiÊÌ>ÌÊÃiÌ}Ê>`ÊÌÊ
Ü>Ì°ÊÀÊiÀi]ÊÞÕÊV>Ê`iÌvÞÊÌiÊÜ>ÌÊÌÞ«iÊ>`ÊLi}ÊÌÀÕLiÃÌ}°Ê"iÊvÊÌiÊÃÌÊ
CHAPTER 2
N
SYSTEM PERFORMANCE ANALYSIS
20
VÊÌÞ«iÃÊvÊÜ>ÌÃÊÃÊÉ"°ÊvÊÞÕÊÃiiÊ=OUJ?D[EK[?KILHAPEKJ, EK[?KILHAPEKJ, HKCICN,
SNEPAHKC, or L=CAEKH=P?D in your top tenÊÜ>ÌÊÌÞ«iÃ]ÊÞÕÊ>ÞÊLiÊiÝ«iÀiV}ÊÉ"ÊVÌiÌ]Ê
>`ÊÞÕÊÜÊÜÊÜiÀiÊÌÊÃÌ>ÀÌÊÜÀ}°ÊÀÊ>ÊÀiÊ`iÌ>i`Ê>>ÞÃÃÊvÊÜ>ÌÊÌÞ«iÃÊ>`ÊÜÊ
ÌÊÕÃiÊÌiÊ>ÃÊ>ÊÌÀ}ÊÌÊÜÌÊ-+Ê-iÀÛiÀ]ÊÀi>`ÊÌiÊVÀÃvÌÊÜÌiÊ«>«iÀʺ-+Ê
-iÀÛiÀÊÓääxÊ7>ÌÃÊ>`Ê+ÕiÕiûÊdppl6++sss*ie_nkokbp*_ki+pa_djap+lnk`pa_djkh+omh+
^aopln]_pe_a+lanbkni]j_a[pqjejc[s]epo[mqaqao*iolt®°ÊÌÕ}ÊÌÊÜ>ÃÊÜÀÌÌiÊvÀÊ-+Ê
-iÀÛiÀÊÓääx]ÊÌÊÃÊiµÕ>ÞÊ>««V>LiÊÌÊ-+Ê-iÀÛiÀÊÓään°
Hardware Resource Bottlenecks
/Þ«V>Þ]Ê-+Ê-iÀÛiÀÊ`>Ì>L>Ãi performance is affected by stress on the following hardware
resources:
Ê UÊ iÀÞ
Ê UÊ ÃÊÉ"
Ê UÊ *ÀViÃÃÀ
Ê UÊ iÌÜÀ
-ÌÀiÃÃÊLiÞ`ÊÌiÊV>«>VÌÞÊvÊ>Ê>À`Ü>ÀiÊÀiÃÕÀViÊvÀÃÊ>ÊLÌÌiiV°Ê/Ê>``ÀiÃÃÊÌiÊ
ÛiÀ>Ê«iÀvÀ>ViÊvÊ>ÊÃÞÃÌi]ÊÞÕÊii`ÊÌÊ`iÌvÞÊÌiÃiÊLÌÌiiVÃ]ÊLiV>ÕÃiÊÌiÞÊvÀÊÌiÊ
limit on overall system performance.
Identifying Bottlenecks
/iÀiÊÃÊÕÃÕ>ÞÊ>ÊÀi>ÌëÊLiÌÜiiÊÀiÃÕÀViÊLÌÌiiVðÊÀÊiÝ>«i]Ê>Ê«ÀViÃÃÀÊ
LÌÌiiVÊ>ÞÊLiÊ>ÊÃÞ«ÌÊvÊiÝViÃÃÛiÊ«>}}ÊiÀÞÊLÌÌiiV®ÊÀÊ>ÊÃÜÊ`ÃÊ`ÃÊ
LÌÌiiV®°ÊvÊ>ÊÃÞÃÌiÊÃÊÜÊÊiÀÞ]ÊV>ÕÃ}ÊiÝViÃÃÛiÊ«>}}]Ê>`Ê>ÃÊ>ÊÃÜÊ`Ã]ÊÌiÊ
iÊvÊÌiÊi`ÊÀiÃÕÌÃÊÜÊLiÊ>Ê«ÀViÃÃÀÊÜÌÊ}ÊÕÌâ>ÌÊÃViÊÌiÊ«ÀViÃÃÀÊ>ÃÊÌÊëi`Ê
>ÊÃ}vV>ÌÊÕLiÀÊvÊ*1ÊVÞViÃÊÌÊÃÜ>«Ê«>}iÃÊÊ>`ÊÕÌÊvÊÌiÊiÀÞÊ>`ÊÌÊ>>}iÊ
ÌiÊÀiÃÕÌ>ÌÊ}ÊÕLiÀÊvÊÉ"ÊÀiµÕiÃÌðÊ,i«>V}ÊÌiÊ«ÀViÃÃÀÊÜÌÊ>Êv>ÃÌiÀÊiÊ>ÞÊi«Ê
>ÊÌÌi]ÊLÕÌÊÌÊÜÕ`ÊÌÊLiÊÌiÊLiÃÌÊÛiÀ>ÊÃÕÌ°ÊÊ>ÊV>ÃiÊiÊÌÃ]ÊVÀi>Ã}ÊiÀÞÊÃÊ>Ê
ÀiÊ>««À«À>ÌiÊÃÕÌ]ÊLiV>ÕÃiÊÌÊÜÊ`iVÀi>ÃiÊ«ÀiÃÃÕÀiÊÊÌiÊ`ÃÊ>`Ê«ÀViÃÃÀÊ>ÃÊÜi°Ê
ÛiÊÕ«}À>`}ÊÌiÊ`ÃÊÜÊ«ÀL>LÞÊLiÊ>ÊLiÌÌiÀÊÃÕÌÊÌ>ÊÕ«}À>`}ÊÌiÊ«ÀViÃÃÀ°
N
Note
The most common performance problem is usually I/O, either from memory or from the disk.
"iÊvÊÌiÊLiÃÌÊÜ>ÞÃÊvÊV>Ì}Ê>ÊLÌÌiiVÊÃÊÌÊ`iÌvÞÊÀiÃÕÀViÃÊÌ>ÌÊ>ÀiÊÜ>Ì}ÊvÀÊ
some other resource to complete its operation. You can use Performance Monitor counters
ÀÊ6ÃÊÃÕVÊ>ÃÊouo*`i[ko[s]ep[op]poÊÌÊ}>ÌiÀÊÌ>ÌÊvÀ>Ì°Ê/iÊÀiëÃiÊÌiÊvÊ>Ê
request served by a resource includes the time the request had to wait in the resource queue,
>ÃÊÜiÊ>ÃÊÌiÊÌiÊÌ>iÊÌÊiÝiVÕÌiÊÌiÊÀiµÕiÃÌ]ÊÃÊi`ÊÕÃiÀÊÀiëÃiÊÌiÊÃÊ`ÀiVÌÞÊ«À«À-
tional to the amount of queuing in a system.
CHAPTER 2
N
SYSTEM PERFORMANCE ANALYSIS
21
ÀÊiÝ>«i]ÊVÃ`iÀÊÌ>ÌÊÌiÊ`ÃÊÃÕLÃÞÃÌiÊ>ÃÊ>Ê`ÃʵÕiÕiÊi}ÌÊvÊ£ä°Ê-ViÊÌiÊ
`ÃÊÃÕLÃÞÃÌiÊ>Ài>`ÞÊ>ÃÊ«i`}Ê`ÃÊÀiµÕiÃÌÃÊÊÌ]Ê>ÊiÜÊ`ÃÊÀiµÕiÃÌÊ>ÃÊÌÊÜ>ÌÊÕÌÊÌiÊ
«ÀiÛÕÃÊ`ÃÊÀiµÕiÃÌÃÊV«iÌi°ÊvÊÌiÊÌiÊÌ>iÊLÞÊ>Ê>ÛiÀ>}iÊ`ÃÊÌÀ>ÃviÀÊÃÊiÊÃiV`]Ê
ÌiÊÌiÊiÜÊ`ÃÊÀiµÕiÃÌÊ>ÃÊÌÊÜ>ÌÊvÀÊ>LÕÌÊÌiÊÃiV`ÃÊLivÀiÊ}iÌÌ}ÊÌiÊ>ÌÌiÌÊvÊÌiÊ
`ÃÊÃÕLÃÞÃÌi°Ê/iÀivÀi]ÊÌiÊÌÌ>ÊÀiëÃiÊÌiÊvÊÌiÊ`ÃÊÀiµÕiÃÌÊÜÊLiÊÌiÊÃiV`ÃÊÜ>ÌÊ
Ìi]Ê«ÕÃÊiÊÃiV`Ê`ÃÊÌÀ>ÃviÀÊÌi°
iÊ>Ü>ÀiÊÌ>ÌÊÌiÊ>LÃiViÊvÊ>ʵÕiÕiÊ`iÃÊÌÊi>ÊÌ>ÌÊÌiÀiÊÃÊÊLÌÌiiV°Ê7iÊ
µÕiÕiÊi}ÌÃÊÃÌ>ÀÌÊ}ÀÜ}]ÊÜiÛiÀ]ÊÌÊÃÊ>ÊÃÕÀiÊÃ}ÊÌ>ÌÊÌiÊÃÞÃÌiÊÃÊÌÊ>LiÊÌÊii«ÊÕ«Ê
with the demand.
ÌÊ>ÊÀiÃÕÀViÃÊ>ÛiÊëiVvVÊVÕÌiÀÃÊÌ>ÌÊÃÜʵÕiÕ}ÊiÛiÃ]ÊLÕÌÊÃÌÊÀiÃÕÀViÃÊ
>ÛiÊÃiÊVÕÌiÀÃÊÌ>ÌÊÀi«ÀiÃiÌÊ>ÊÛiÀVÌÌ>ÊvÊÌ>ÌÊÀiÃÕÀVi°ÊÀÊiÝ>«i]ÊiÀÞÊ
has no such counter, but a large number of hard page faults represents the overcommittal of
«ÞÃV>ÊiÀÞÊ>À`Ê«>}iÊv>ÕÌÃÊ>ÀiÊiÝ«>i`Ê>ÌiÀÊÊÌiÊV>«ÌiÀÊÊÌiÊÃiVÌʺ*>}iÃÉÃiVÊ
>`Ê*>}iÊ>ÕÌÃÉÃiVÊÕÌiÀû®°Ê"ÌiÀÊÀiÃÕÀViÃ]ÊÃÕVÊ>ÃÊÌiÊ«ÀViÃÃÀÊ>`Ê`Ã]Ê>ÛiÊëiVvVÊ
VÕÌiÀÃÊÌÊ`V>ÌiÊÌiÊiÛiÊvʵÕiÕ}°ÊÀÊiÝ>«i]ÊÌi counter L]caHebaAtla_p]j_u
`V>ÌiÃÊÜÊ}Ê>Ê«>}iÊÜÊÃÌ>ÞÊÊÌiÊLÕvviÀÊ«ÊÜÌÕÌÊLi}ÊÀiviÀiVi`°Ê/ÃÊÃÊ>Ê
`V>ÌÀÊvÊÜÊÜiÊ-+Ê-iÀÛiÀÊÃÊ>LiÊÌÊ>>}iÊÌÃÊiÀÞ]ÊÃViÊ>Ê}iÀÊviÊi>ÃÊÌ>ÌÊ
>Ê«iViÊvÊ`>Ì>ÊÊÌiÊLÕvviÀÊÜÊLiÊÌiÀi]Ê>Û>>Li]ÊÜ>Ì}ÊvÀÊÌiÊiÝÌÊÀiviÀiVi°ÊÜiÛiÀ]Ê
>ÊÃÀÌiÀÊviÊi>ÃÊÌ>ÌÊ-+Ê-iÀÛiÀÊÃÊÛ}Ê«>}iÃÊÊ>`ÊÕÌÊvÊÌiÊLÕvviÀʵÕVÞ]Ê«ÃÃLÞÊ
ÃÕ}}iÃÌ}Ê>ÊiÀÞÊLÌÌiiV°
You will see which counters to use inÊ>>Þâ}Êi>VÊÌÞ«iÊvÊLÌÌiiVÊÃÀÌÞ°
Bottleneck Resolution
"ViÊÞÕÊ>ÛiÊ`iÌvi`ÊLÌÌiiVÃ]ÊÞÕÊV>ÊÀiÃÛiÊÌiÊÊÌÜÊÜ>ÞÃ\
Ê UÊ 9ÕÊV>ÊVÀi>ÃiÊÀiÃÕÀViÊÌÀÕ}«ÕÌ°
Ê UÊ 9ÕÊV>Ê`iVÀi>ÃiÊÌiÊ>ÀÀÛ>ÊÀ>ÌiÊvÊÀiµÕiÃÌÃÊÌÊÌiÊÀiÃÕÀVi°
VÀi>Ã}ÊÌiÊÌÀÕ}«ÕÌÊÕÃÕ>ÞÊÀiµÕÀiÃÊiÝÌÀ>ÊÀiÃÕÀViÃÊÃÕVÊ>ÃÊiÀÞ]Ê`ÃÃ]Ê«À-
ViÃÃÀÃ]ÊÀÊiÌÜÀÊ>`>«ÌiÀðÊ9ÕÊV>Ê`iVÀi>ÃiÊÌiÊ>ÀÀÛ>ÊÀ>ÌiÊLÞÊLi}ÊÀiÊÃiiVÌÛiÊ>LÕÌÊ
ÌiÊÀiµÕiÃÌÃÊÌÊ>ÊÀiÃÕÀVi°ÊÀÊiÝ>«i]ÊÜiÊÞÕÊ>ÛiÊ>Ê`ÃÊÃÕLÃÞÃÌiÊLÌÌiiV]ÊÞÕÊV>Ê
iÌiÀÊVÀi>ÃiÊÌiÊÌÀÕ}«ÕÌÊvÊÌiÊ`ÃÊÃÕLÃÞÃÌiÊÀÊ`iVÀi>ÃiÊÌiÊ>ÕÌÊvÊÉ"ÊÀiµÕiÃÌð
VÀi>Ã}ÊÌiÊÌÀÕ}«ÕÌÊi>ÃÊ>``}ÊÀiÊ`ÃÃÊÀÊÕ«}À>`}ÊÌÊv>ÃÌiÀÊ`ÃðÊiVÀi>Ã-
}ÊÌiÊ>ÀÀÛ>ÊÀ>ÌiÊi>ÃÊ`iÌvÞ}ÊÌiÊV>ÕÃiÊvÊ}ÊÉ"ÊÀiµÕiÃÌÃÊÌÊÌiÊ`ÃÊÃÕLÃÞÃÌiÊ>`Ê
>««Þ}ÊÀiÃÕÌÃÊÌÊ`iVÀi>ÃiÊÌiÀÊÕLiÀ°Ê9ÕÊ>ÞÊLiÊ>LiÊÌÊ`iVÀi>ÃiÊÌiÊÉ"ÊÀiµÕiÃÌÃ]Ê
vÀÊiÝ>«i]ÊLÞÊ>``}Ê>««À«À>ÌiÊ`iÝiÃÊÊ>ÊÌ>LiÊÌÊÌÊÌiÊ>ÕÌÊvÊ`>Ì>Ê>VViÃÃi`ÊÀÊ
by partitioning a tableÊLiÌÜiiÊÕÌ«iÊ`Ãð
Memory Bottleneck Analysis
Memory can be aÊ«ÀLi>ÌVÊLÌÌiiVÊLiV>ÕÃiÊ>ÊLÌÌiiVÊÊiÀÞÊÜÊ>viÃÌÊÊ
ÌiÀÊÀiÃÕÀViÃ]ÊÌ°Ê/ÃÊÃÊ«>ÀÌVÕ>ÀÞÊÌÀÕiÊvÀÊ>ÊÃÞÃÌiÊÀÕ}Ê-+Ê-iÀÛiÀ°Ê7iÊ-+Ê
-iÀÛiÀÊÀÕÃÊÕÌÊvÊV>ViÊÀÊiÀÞ®]Ê>Ê«ÀViÃÃÊÜÌÊ-+Ê-iÀÛiÀÊV>i`Êlazy writer®Ê>Ã
ÌÊÜÀÊiÝÌiÃÛiÞÊÌÊ>Ì>ÊiÕ}ÊvÀiiÊÌiÀ>ÊiÀÞÊ«>}iÃÊÜÌÊ-+Ê-iÀÛiÀ°Ê/ÃÊ
VÃÕiÃÊiÝÌÀ>Ê*1ÊVÞViÃÊ>`Ê«iÀvÀÃÊ>``Ì>Ê«ÞÃV>Ê`ÃÊÉ"ÊÌÊÜÀÌiÊiÀÞÊ«>}iÃÊ
L>VÊÌÊ`ð
CHAPTER 2
N
SYSTEM PERFORMANCE ANALYSIS
22
SQL Server Memory Management
-+Ê-iÀÛiÀÊ>>}ià memory for databases, including memory requirements for data and
µÕiÀÞÊiÝiVÕÌÊ«>Ã]ÊÊ>Ê>À}iÊ«ÊvÊiÀÞÊV>i`ÊÌiÊmemory pool°Ê/iÊiÀÞÊ«Ê
consists of a collection of 8KB buffers to manage data pages and plan cache pages, free pages,
>`ÊÃÊvÀÌ°Ê/iÊiÀÞÊ«ÊÃÊÕÃÕ>ÞÊÌiÊ>À}iÃÌÊ«ÀÌÊvÊ-+Ê-iÀÛiÀÊiÀÞ°Ê-+Ê
-iÀÛiÀÊ>>}iÃÊiÀÞÊLÞÊ}ÀÜ}ÊÀÊÃÀ}ÊÌÃÊiÀÞÊ«ÊÃâiÊ`Þ>V>Þ°
You canÊVv}ÕÀiÊ-+Ê-iÀÛiÀÊvÀÊ`Þ>VÊiÀÞÊ>>}iiÌÊÊ-+Ê-iÀÛiÀÊ>>}i-
iÌÊ-ÌÕ`Ê---®°ÊÊÌÊÌiÊiÀÞÊv`iÀÊvÊÌiÊ-iÀÛiÀÊ*À«iÀÌiÃÊ`>}ÊLÝ]Ê>ÃÊÃÜÊÊ
}ÕÀiÊÓΰ
Figure 2-3. SQL Server memory configuration
/iÊ`Þ>VÊiÀÞÊÀ>}iÊÃÊVÌÀi`ÊÌÀÕ}ÊÌÜÊVv}ÕÀ>ÌÊ«À«iÀÌiÃ\Ê
Iejeiqi$I>% and I]teiqi$I>%.
CHAPTER 2
N
SYSTEM PERFORMANCE ANALYSIS
23
ÊUÊIejeiqi$I>%]Ê>ÃÊÜÊ>ÃÊiejoanraniaiknu]ÊÜÀÃÊ>ÃÊ>ÊvÀÊÛ>ÕiÊvÀÊÌiÊiÀÞÊ
«°Ê"ViÊÌiÊiÀÞÊ«ÊÀi>ViÃÊÌiÊÃ>iÊÃâiÊ>ÃÊÌiÊvÀÊÛ>Õi]Ê-+Ê-iÀÛiÀÊV>Ê
VÌÕiÊVÌÌ}Ê«>}iÃÊÊÌiÊiÀÞÊ«]ÊLÕÌÊÌÊV>ÌÊLiÊÃÀÕÊÌÊiÃÃÊÌ>Ê
ÌiÊvÀÊÛ>Õi°Ê ÌiÊÌ>ÌÊ-+Ê-iÀÛiÀÊ`iÃÊÌÊÃÌ>ÀÌÊÜÌÊÌiÊiejoanraniaiknu con-
figuration value but commits memory dynamically, as needed.
ÊUÊI]teiqi$I>%]Ê>ÃÊÜÊ>Ã i]toanraniaiknu, serves as a ceiling value to limit the
>ÝÕÊ}ÀÜÌÊvÊÌiÊiÀÞÊ«°Ê/iÃiÊVv}ÕÀ>ÌÊÃiÌÌ}ÃÊÌ>iÊivviVÌÊi-
diately and do not require a restart.
VÀÃvÌÊÀiVi`ÃÊÌ>ÌÊÞÕÊÕÃiÊ`Þ>VÊiÀÞÊVv}ÕÀ>ÌÊvÀÊ-+Ê-iÀÛiÀ]Ê
where iejoanraniaiknu will be 0 and i]toanraniaiknuÊÜÊLiÊÌiÊ>ÝÕÊ«ÞÃV>Ê
memory of the system, assuming a single instance on the machine. You should not run other
iÀÞÌiÃÛiÊ>««V>ÌÃÊÊÌiÊÃ>iÊÃiÀÛiÀÊ>ÃÊ-+Ê-iÀÛiÀ]ÊLÕÌÊvÊÞÕÊÕÃÌ]ÊÊÀiV-
mend you first get estimates on how much memory is needed by other applications and then
Vv}ÕÀiÊ-+Ê-iÀÛiÀÊÜÌÊ>Êi]toanraniaiknu value set to prevent the other applications
vÀÊÃÌ>ÀÛ}Ê-+Ê-iÀÛiÀÊvÊiÀÞ°Ê"Ê>ÊÃÞÃÌiÊÜiÀiÊ-+Ê-iÀÛiÀÊÃÊÀÕ}ÊÊÌÃÊÜ]ÊÊ
«ÀiviÀÊÌÊÃiÌÊÌiÊÕÊÃiÀÛiÀÊiÀÞÊiµÕ>ÊÌÊÌiÊ>ÝÊÛ>ÕiÊ>`ÊëÞÊ`ë>ÌVÊÜÌÊ
`Þ>VÊ>>}iiÌ°Ê"Ê>ÊÃiÀÛiÀÊÜÌÊÕÌ«iÊ-+Ê-iÀÛiÀÊÃÌ>ViÃ]ÊÞÕ½Êii`ÊÌÊ>`ÕÃÌÊ
ÌiÃiÊiÀÞÊÃiÌÌ}ÃÊÌÊiÃÕÀiÊi>VÊÃÌ>ViÊ>ÃÊ>Ê>`iµÕ>ÌiÊÛ>Õi°ÊÕÃÌÊ>iÊÃÕÀiÊÞÕ½ÛiÊ
ivÌÊiÕ}ÊiÀÞÊvÀÊÌiÊ«iÀ>Ì}ÊÃÞÃÌiÊ>`ÊiÝÌiÀ>Ê«ÀViÃÃiÃ]Ê>ÃÊÜiÊ>ÃÊLÕvviÀ
pool memory (which used to be called IaiPkHa]ra®°
iÀÞÊÜÌÊ-+Ê-iÀÛiÀÊV>ÊLiÊÀÕ}ÞÊ`Û`i`ÊÌÊLÕvviÀÊ«ÊiÀÞ]ÊÜVÊÀi«-
ÀiÃiÌÃÊ`>Ì>Ê«>}iÃÊ>`ÊvÀiiÊ«>}iÃ]Ê>`ÊLÕvviÀÊiÀÞ]ÊÜVÊVÃÃÌÃÊvÊÌÀi>`Ã]ÊÃ]Ê
i`ÊÃiÀÛiÀÃ]Ê>`ÊÌiÀðÊÃÌÊvÊÌiÊiÀÞÊÕÃi`ÊLÞÊ-+Ê-iÀÛiÀÊ}iÃÊÌÊÌiÊLÕvviÀÊ«°
N
Note
SQL Server does consume more memory than simply that specified by the
i]t[oanran[iaiknu
setting.
You can also manage the configuration values for iejoanraniaiknu and i]toanran
iaiknu by using the ol[_kjbecqnaÊÃÞÃÌiÊÃÌÀi`Ê«ÀVi`ÕÀi°Ê/ÊÃiiÊÌiÊVv}ÕÀ>ÌÊÛ>ÕiÃÊvÀÊ
ÌiÃiÊ«>À>iÌiÀÃ]ÊiÝiVÕÌiÊÌiÊol[_kjbecqna stored procedure as follows:
ata_ol[_kjbecqna#iejoanraniaiknu$I>%#
ata_ol[_kjbecqna#i]toanraniaiknu$I>%#
}ÕÀiÊÓ{ÊÃÜÃÊÌiÊÀiÃÕÌÊvÊÀÕ}ÊÌiÃiÊV>`ð
Figure 2-4. SQL Server memory configuration properties