Tải bản đầy đủ (.pdf) (10 trang)

Tài liệu Apress - SQL Server 2008 Query Performance Tuning Distilled (2009)02 ppt

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (317.77 KB, 10 trang )

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Ê>>}iiÌÊÛiÜÃÊ­6îÊ>`Ê`Þ>VÊ>>}iiÌÊvÕVÌÃÊ­î°Ê/iÃiÊ>ÀiÊ
iÝÌÀiiÞÊÕÃivÕÊiV>ÃÃÊvÀÊV>«ÌÕÀ}Ê>ÊÃ>«ÃÌÊvÊÌiÊVÕÀÀiÌÊ«iÀvÀ>ViÊvÊÞÕÀÊ
ÃÞÃÌi°Ê½ÊÌÀ`ÕViÊÃiÛiÀ>ÊvÊÌiÃiÊÌÀÕ}ÕÌÊÌiÊL]ÊLÕÌÊ½ÊvVÕÃÊÊ>Ê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
BNKIouo*`i[ko[lanbkni]j_a[_kqjpano
SDANAK>FA?P[J=IA9#IOOMH CB.,,46Cajan]hOp]peope_o#
=J@_kqjpan[j]ia9#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Ã]ÊViVÌ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ÌÌiiVðÊ9ÕÊV>ÊÃÀÌÊÌiÊ`>Ì>ÊÊÛ>ÀÕÃÊÜ>ÞÃ]ÊLÕÌÊvÀÊÌiÊvÀÃÌÊiÝ>«i]Ê½ÊÊ>ÌÊ
the waits that have the longest current count using this simple query:
OAHA?PPKL$-,%
&
BNKIouo*`i[ko[s]ep[op]po


KN@AN>Us]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}ÊÌÀÕLiÃÌ}°Ê"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ÀiV}ÊÉ"Ê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>LiÊÌÊ-+Ê-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ÌÌiiV°Ê/Ê>``ÀiÃÃÊÌiÊ
ÛiÀ>Ê«iÀvÀ>ViÊvÊ>ÊÃÞÃÌi]ÊÞÕÊii`ÊÌÊ`iÌvÞÊÌiÃiÊLÌÌiiVÃ]ÊLiV>ÕÃiÊÌiÞÊvÀÊÌiÊ
limit on overall system performance.
Identifying Bottlenecks
/iÀiÊÃÊÕÃÕ>ÞÊ>ÊÀi>ÌÃ«ÊLiÌÜiiÊÀiÃÕÀViÊLÌÌiiVðÊÀÊiÝ>«i]Ê>Ê«ÀViÃÃÀÊ
LÌÌiiVÊ>ÞÊLiÊ>ÊÃÞ«ÌÊvÊiÝViÃÃÛiÊ«>}}Ê­iÀÞÊLÌÌiiV®ÊÀÊ>ÊÃÜÊ`ÃÊ­`ÃÊ

LÌÌiiV®°ÊvÊ>ÊÃÞÃÌiÊÃÊÜÊÊiÀÞ]ÊV>ÕÃ}ÊiÝViÃÃÛiÊ«>}}]Ê>`Ê>ÃÊ>ÊÃÜÊ`Ã]ÊÌiÊ
iÊvÊÌiÊi`ÊÀiÃÕÌÃÊÜÊLiÊ>Ê«ÀViÃÃÀÊÜÌÊ}ÊÕÌâ>ÌÊÃViÊÌiÊ«ÀViÃÃÀÊ>ÃÊÌÊëi`Ê
>ÊÃ}vV>ÌÊÕLiÀÊvÊ*1ÊVÞViÃÊÌÊÃÜ>«Ê«>}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ÌÌiiVÊÃÊÌÊ`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ÃiViÊvÊ>ʵÕiÕiÊ`iÃÊÌÊi>ÊÌ>ÌÊÌiÀiÊÃÊÊLÌÌiiV°Ê7iÊ
µÕiÕiÊi}ÌÃÊÃÌ>ÀÌÊ}ÀÜ}]ÊÜiÛiÀ]ÊÌÊÃÊ>ÊÃÕÀiÊÃ}ÊÌ>ÌÊÌiÊÃÞÃÌiÊÃÊÌÊ>LiÊÌÊii«ÊÕ«Ê
with the demand.
ÌÊ>ÊÀiÃÕÀViÃÊ>ÛiÊëiVvVÊ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ÊëiVvVÊ
VÕÌiÀÃÊÌÊ`V>ÌiÊÌiÊiÛiÊvʵÕiÕ}°ÊÀÊiÝ>«i]ÊÌi counter L]caHebaAtla_p]j_u
`V>ÌiÃÊÜÊ}Ê>Ê«>}iÊÜÊÃÌ>ÞÊÊÌiÊLÕvviÀÊ«ÊÜÌÕÌÊLi}ÊÀiviÀiVi`°Ê/ÃÊÃÊ>Ê
`V>ÌÀÊvÊÜÊÜiÊ-+Ê-iÀÛiÀÊÃÊ>LiÊÌÊ>>}iÊÌÃÊiÀÞ]ÊÃViÊ>Ê}iÀÊviÊi>ÃÊÌ>ÌÊ
>Ê«iViÊvÊ`>Ì>ÊÊÌiÊLÕvviÀÊÜÊLiÊÌiÀi]Ê>Û>>Li]ÊÜ>Ì}ÊvÀÊÌiÊiÝÌÊÀiviÀiVi°ÊÜiÛiÀ]Ê
>ÊÃÀÌiÀÊviÊi>ÃÊÌ>ÌÊ-+Ê-iÀÛiÀÊÃÊÛ}Ê«>}iÃÊÊ>`ÊÕÌÊvÊÌiÊLÕvviÀʵÕVÞ]Ê«ÃÃLÞÊ
ÃÕ}}iÃÌ}Ê>ÊiÀÞÊLÌÌiiV°
You will see which counters to use inÊ>>Þâ}Êi>VÊÌÞ«iÊvÊLÌÌiiVÊÃÀÌÞ°
Bottleneck Resolution
"ViÊÞÕÊ>ÛiÊ`iÌvi`ÊLÌÌiiVÃ]ÊÞÕÊ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ÊÃiiVÌÛiÊ>LÕÌÊ
ÌiÊÀiµÕiÃÌÃÊÌÊ>ÊÀiÃÕÀVi°ÊÀÊiÝ>«i]ÊÜiÊÞÕÊ>ÛiÊ>Ê`ÃÊÃÕLÃÞÃÌiÊLÌÌiiV]ÊÞÕÊ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Ê>LiÊÌÊ`iVÀi>ÃiÊÌiÊÉ"ÊÀiµÕiÃÌÃ]Ê
vÀÊiÝ>«i]ÊLÞÊ>``}Ê>««À«À>ÌiÊ`iÝiÃÊÊ>ÊÌ>LiÊÌÊÌÊÌiÊ>ÕÌÊvÊ`>Ì>Ê>VViÃÃi`ÊÀÊ
by partitioning a tableÊLiÌÜiiÊÕÌ«iÊ`Ãð
Memory Bottleneck Analysis
Memory can be aÊ«ÀLi>ÌVÊLÌÌiiVÊLiV>ÕÃiÊ>ÊLÌÌiiVÊÊiÀÞÊÜÊ>viÃÌÊÊ
ÌiÀÊÀiÃÕÀViÃ]ÊÌ°Ê/ÃÊÃÊ«>ÀÌVÕ>ÀÞÊÌÀÕiÊvÀÊ>ÊÃÞÃÌiÊÀÕ}Ê-+Ê-iÀÛiÀ°Ê7iÊ-+Ê
-iÀÛiÀÊÀÕÃÊÕÌÊvÊV>ViÊ­ÀÊiÀÞ®]Ê>Ê«ÀViÃÃÊÜÌÊ-+Ê-iÀÛiÀÊ­V>i`Êlazy writer®Ê>Ã
ÌÊÜÀÊiÝÌiÃÛiÞÊÌÊ>Ì>ÊiÕ}ÊvÀiiÊÌiÀ>ÊiÀÞÊ«>}iÃÊÜÌÊ-+Ê-iÀÛiÀ°Ê/ÃÊ
VÃÕiÃÊiÝÌÀ>Ê*1ÊVÞViÃÊ>`Ê«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ÊVv}ÕÀiÊ-+Ê-iÀÛiÀÊvÀÊ`Þ>VÊiÀÞÊ>>}iiÌÊÊ-+Ê-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`ÊÌÀÕ}ÊÌÜÊVv}ÕÀ>ÌÊ«À«iÀÌiÃ\Ê
Iejeiqi$I>% and I]teiqi$I>%.
CHAPTER 2
N
SYSTEM PERFORMANCE ANALYSIS
23
ÊUÊIejeiqi$I>%]Ê>ÃÊÜÊ>ÃÊiejoanraniaiknu]ÊÜÀÃÊ>ÃÊ>ÊvÀÊÛ>ÕiÊvÀÊÌiÊiÀÞÊ
«°Ê"ViÊÌiÊiÀÞÊ«ÊÀi>ViÃÊÌ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Êiejoanraniaiknu con-
figuration value but commits memory dynamically, as needed.
ÊUÊI]teiqi$I>%]Ê>ÃÊÜÊ>Ã i]toanraniaiknu, serves as a ceiling value to limit the
>ÝÕÊ}ÀÜÌÊvÊÌiÊiÀÞÊ«°Ê/iÃiÊVv}ÕÀ>ÌÊÃiÌÌ}ÃÊÌ>iÊivviVÌÊi-
diately and do not require a restart.
VÀÃvÌÊÀiVi`ÃÊÌ>ÌÊÞÕÊÕÃiÊ`Þ>VÊiÀÞÊVv}ÕÀ>ÌÊvÀÊ-+Ê-iÀÛiÀ]Ê

where iejoanraniaiknu will be 0 and i]toanraniaiknuÊÜÊ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
Vv}ÕÀiÊ-+Ê-iÀÛiÀÊÜÌÊ>Êi]toanraniaiknu 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Ê>>}iiÌ°Ê"Ê>ÊÃ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 iejoanraniaiknu and i]toanran
iaiknu by using the ol[_kjbecqnaÊÃÞÃÌiÊÃÌÀi`Ê«ÀVi`ÕÀi°Ê/ÊÃiiÊÌiÊVv}ÕÀ>ÌÊÛ>ÕiÃÊvÀÊ
ÌiÃiÊ«>À>iÌiÀÃ]ÊiÝiVÕÌiÊÌiÊol[_kjbecqna stored procedure as follows:
ata_ol[_kjbecqna#iejoanraniaiknu$I>%#
ata_ol[_kjbecqna#i]toanraniaiknu$I>%#
}ÕÀiÊÓ{ÊÃÜÃÊÌiÊÀiÃÕÌÊvÊÀÕ}ÊÌiÃiÊV>`ð
Figure 2-4. SQL Server memory configuration properties

×