¥»¤å±N³v¨B§i¶D±z¡A¦p¦óºÃÃø±Æ¸Ñ SQL Server
®Ä¯à°ÝÃD¡CºÃÃø±Æ¸Ñ®Ä¯à°ÝÃD»Ýn¨Ï¥Î¤@¨t¦Cªº¨BÆJ¨Ó¹jÂ÷©M§PÂ_À³¥Îµ{¦¡®Ä¯à§C¸¨ªºì¦]¡C¥i¯àªºì¦]¥]¬A¡G
- «ÊÂê¡C
- ¨t²Î¸ê·½Ävª§¡C
- À³¥Îµ{¦¡³]p°ÝÃD¡C
- ¤@²Õ»Ýn¸ûªø°õ¦æ®É¶¡ªº¬d¸ß©Î¹w¦sµ{§Ç¡C
¥»¤å±N§i¶D±z¡A¦p¦ó§PÂ_®Ä¯à°ÝÃDªº¨Ó·½¡C¥¦¤]°Ñ¦Ò¡uMicrosoft
ª¾ÃÑ®w¡v¤¤²[»\¯S©w®Ä¯à°ÝÃD¤§¨ä¥LºÃÃø±Æ¸Ñ¸Ô²Ó¸ê®Æªº¨ä¥L¤å¥ó¡C
SQL Profiler
SQL Profiler ¬OºÃÃø±Æ¸Ñ SQL Server 7.0 ©Î§ó·sª©¥»¤§À³¥Îµ{¦¡®Ä¯àªº±j¤j¤u¨ã¡CSQL
Profiler ¥iÅý±z»´©ö¦aÂ^¨ú¦b¤@¯ët¸ü¤§¤U¦øªA¾¹¤Wµo¥Íªº©Ò¦³¨Æ¥ó¡A¨Ã´£¨ÑÃö©ó¥¦Ìªº¸ê°T¡C¨Ï¥Î SQL Profiler ¥[¤W Microsoft
Windows NT
ªº¡u®Ä¯àºÊµø¾¹¡v¥H¤Î¤@¨Ç²³æªº¬d¸ß¨ÓÃѧO¬O§_¥¿µo¥Í«ÊÂꪺ²{¶H¡A±N¥i´£¨Ñ±z¦b¸Ñ¨M«¤j®Ä¯à°ÝÃD®É©Ò»Ýªº¸ê°T¡C
ºÊµøªº¤º®e
1. ³]©w SQL Profiler ¥HÂ^¨ú°lÂÜ¡C¦pªGn°õ¦æ³o¶µ¾Þ§@¡A½Ð¨Ì·Ó¤U¦C¨BÆJ°õ¦æ¡G
- ¶}±Ò SQL Profiler¡C
- ¦b [¤u¨ã] ¥\¯àªí¤W¡A«ö¤@¤U
[¿ï¶µ]¡C
- ½Ð½T©w¿ï¨ú [©Ò¦³¨Æ¥óÃþ§O] »P [©Ò¦³¸ê®ÆÄæ¦ì] ¿ï¶µ¡C
- «ö¤@¤U [½T©w]¡C
- «Ø¥ß·sªº°lÂÜ¡C
- ¦b [ÀÉ®×] ¥\¯àªí¤W¡A«ü¦V [·s¼W]¡AµM«á«ö¤@¤U
[°lÂÜ]¡C
- ¦b [¤@¯ë] ¯Á¤Þ¼ÐÅÒ¤W¡A«ü©wnÂ^¨ú¸ê®Æªº°lÂܦWºÙ»PÀɮסC
- ¦b [¨Æ¥ó] ¯Á¤Þ¼ÐÅÒ¤W¡A±N¤U¦C¨Æ¥óÃþ«¬·s¼W¦Ü°lÂÜ¡G
ºPÅ|¦¹ªí®æ®i¶}¦¹ªí®æ
| ¼ÐÃD | n·s¼Wªº¨Æ¥ó | »¡©ú |
|---|
| ¸ê®Æ«ü¼Ð | CursorPrepare | ¦¹¨Æ¥ó«ü¥X¤w¨Ï¥Î ODBC¡BOLEDB ©Î
DB-Library ·Ç³Æ SQL ³¯z¦¡¤Wªº¸ê®Æ«ü¼Ð¡C |
| ¿ù»~©Mĵ§i | Missing Column
Statistics | ¦¹¨Æ¥ó«ü¥X¦³§U©ó¬d¸ß³Ì¨Î¤Æ¤u¨ãªºÄæ¦ì²Îp¸ê®Æ¤£¦s¦b¡CText Äæ¦ì·|Åã¥Ü¿ò¥¢²Îp¸ê®ÆªºÄæ¦ì²M³æ¡C¦¹¨Æ¥ó¥[¤W Misc:Auto-UpdateStats ¨Æ¥ó¡A«ü¥X¤wIJµo [¦Û°Ê«Ø¥ß²Îp¸ê®Æ] ¿ï¶µ¡C |
| Âø¶µ | ª`·N¨Æ¶µ | ¦¹¨Æ¥ó«ü¥X¥Î¤áºÝ¶Ç°eªºª`·N¨Æ¶µ°T¸¹¡C |
| Âø¶µ | Auto-UpdateStats | ¦¹¨Æ¥ó«ü¥X¤wIJµo [¦Û°Ê§ó·s²Îp¸ê®Æ] ¿ï¶µ¡C |
| Âø¶µ | Exec Prepared SQL | ¦¹¨Æ¥ó«ü¥X ODBC¡BOLE DB ©Î
DB-Library ¤w°õ¦æ¥ý«e·Ç³Æªº Transact-SQL ³¯z¦¡¡C |
| Âø¶µ | Execution Plan | ¦¹¨Æ¥óÅã¥Ü¤w°õ¦æªº Transact-SQL
³¯z¦¡¤§p¹º¾ðª¬¥Ø¿ý¡C |
| Âø¶µ | Prepare SQL | ¦¹¨Æ¥ó«ü¥X ODBC¡BOLE DB ©Î
DB-Library À³¥Îµ{¦¡·Ç³Æ¤Fn¨Ï¥Îªº Transact-SQL ³¯z¦¡¡C |
| Âø¶µ | Unprepare SQL | ¦¹¨Æ¥ó«ü¥X ODBC¡BOLE DB ©Î
DB-Library À³¥Îµ{¦¡¨ú®ø·Ç³Æn¨Ï¥Îªº Transact-SQL ³¯z¦¡¡C |
| ¤u§@¶¥¬q | Connect | ¦¹¨Æ¥ó«ü¥X¤w«Ø¥ß·sªº³s½u¡C |
| ¤u§@¶¥¬q | Disconnect | ¦¹¨Æ¥ó«ü¥X¥Î¤áºÝ¤w¤¤Â_³s½u¡C |
| ¤u§@¶¥¬q | Existing Connection | ¦¹¨Æ¥ó«ü¥X±Ò°Ê SQL
Profiler °lÂܮɤw¦³³s½u¦s¦b¡C |
| ¹w¦sµ{§Ç | SP:Completed | ¦¹¨Æ¥ó«ü¥X¹w¦sµ{§Ç¤w§¹¦¨°õ¦æ¡C |
| ¹w¦sµ{§Ç | SP:Recompile | ¦¹¨Æ¥ó«ü¥X¹w¦sµ{§Ç¤w¦b°õ¦æ´Á¶¡«·s½sĶ¡C |
| ¹w¦sµ{§Ç | SP:Starting | ¦¹¨Æ¥ó«ü¥X¹w¦sµ{§Ç¤w¶}©l°õ¦æ¡C |
| ¹w¦sµ{§Ç | SP:StmtCompleted | ¦¹¨Æ¥ó«ü¥X¹w¦sµ{§Ç¤¤ªº³¯z¦¡¤w§¹¦¨°õ¦æ¡C |
| TSQL: | SQL:BatchCompleted | ¦¹¨Æ¥ó«ü¥X¤w§¹¦¨
Transact-SQL §å¦¸¡CText Äæ¦ìÅã¥Ü¤w°õ¦æ¸Ó³¯z¦¡¡C |
| TSQL: | SQL:StmtCompleted | ¦¹¨Æ¥ó«ü¥X¤w§¹¦¨
Transact-SQL ³¯z¦¡¡CText Äæ¦ìÅã¥Ü¤w°õ¦æ¸Ó³¯z¦¡¡C |
| TSQL: | RPC:Completed | ¦¹¨Æ¥ó«ü¥X¤w§¹¦¨»·ºÝµ{§Ç©I¥s
(RPC)¡C |
- ¦pªGÀ³¥Îµ{¦¡¦¬¨ì¹O®É¿ù»~¡B°±¤î¦^À³ (ÀÁ¸m)
©Î¹J¨ì¨ä¥L¾ÉP¦³°ÝÃDªº³¯z¦¡¤@ª½µLªk§¹¦¨ªº¨Æ¥ó¡A«h¤]½Ð¥[¤J¤U¦C¨Æ¥ó¡G
ºPÅ|¦¹ªí®æ®i¶}¦¹ªí®æ
| TSQL: | SQL:BatchStarting | ¦¹¨Æ¥ó«ü¥X
Transact-SQL §å¦¸ªº¶}©l¡CText Äæ¦ìÅã¥Ü¥¿¦b°õ¦æªº³¯z¦¡¡C |
| TSQL: | SQL:StmtStarting | ¦¹¨Æ¥ó«ü¥X Transact-SQL
³¯z¦¡ªº¶}©l¡CText Äæ¦ìÅã¥Ü¥¿¦b°õ¦æªº³¯z¦¡¡C |
| TSQL: | RPC:Starting | ¦¹¨Æ¥ó«ü¥X»·ºÝµ{§Ç©I¥s (RPC)
ªº¶}©l¡C |
| ¹w¦sµ{§Ç | SP:StmtStarting | ¦¹¨Æ¥ó«ü¥X¹w¦sµ{§Ç¤¤ªº³¯z¦¡¶}©l°õ¦æ¡C |
³o±N¥i¨ó§U½T©w·íµo¥Í¹O®É¥i¥H¬d¬Ý´¿¸g°õ¦æªº³¯z¦¡¡C - ¦b [¸ê®ÆÄæ¦ì] ¯Á¤Þ¼ÐÅÒ¤W¡A½Ð½T©w¥]¬A¤U¦CÄæ¦ì¡G
¾A¥Î©ó SQL Server 2000
¶}©l®É¶¡
µ²§ô®É¶¡
LoginSid
SPID
¨Æ¥óÃþ§O
TextData
IntegerData
BinaryData
«ùÄò®É¶¡
CPU
Ū¨ú
¼g¤J
À³¥Îµ{¦¡¦WºÙ
NT ¨Ï¥ÎªÌ¦WºÙ
DBUserName
¾A¥Î©ó SQL Server 7.0
¶}©l®É¶¡
µ²§ô®É¶¡
³s±µÃѧO½X
SPID
¨Æ¥óÃþ§O
¤å¦r
¾ã¼Æ¸ê®Æ
¤G¶i¦ì¸ê®Æ
«ùÄò®É¶¡
CPU
Ū¨ú
¼g¤J
À³¥Îµ{¦¡¦WºÙ
NT
¨Ï¥ÎªÌ¦WºÙ
SQL ¨Ï¥ÎªÌ¦WºÙ
¦p»Ý¦³Ãö SQL Profiler ªº¨Ï¥Î¸ê°T¡A½Ð°Ñ¾\ SQL Server 7.0 ©M SQL Server
2000 ªº¡m½u¤WÂO®Ñ¡n¡C
2. ¨Ï¥Î¡u®Ä¯àºÊµø¾¹¡vÂ^¨ú Windows NT »P SQL Server
p¼Æ¾¹¡C¦pªGn°õ¦æ³o¶µ¾Þ§@¡A½Ð¨Ì·Ó¤U¦C¨BÆJ°õ¦æ¡G
- ±Ò°Ê Windows NT ªº¡u®Ä¯àºÊµø¾¹¡v¡C
- ¦b [À˵ø] ¥\¯àªí¤W¡A«ö¤@¤U [°O¿ýÀÉ]¡C
- ¦b [¿ï¶µ] ¥\¯àªí¤W¡A«ö¤@¤U [°O¿ýÀÉ]¡C
- «ü©wÀɮצWºÙ»P¦ì¸m¥H°O¿ý®Ä¯àp¼Æ¾¹¡C±z¥i¥H¾A·í¦a½Õ¾ã§ó·s¶¡¹j¡C
- ¦b [½s¿è] ¥\¯àªí¤W¡A«ö¤@¤U [¥[¤J¨ì°O¿ýÀÉ]¡C
- ·s¼W©Ò¦³ªºª«¥ó¡C¥]¬A Windows NT »P SQL Server ª«¥ó¡C
- ¦pªGn±Ò°Ê°O¿ýÀÉ¡A¦b [¿ï¶µ] ¥\¯àªí¤W¡A«ö¤@¤U [°O¿ýÀÉ]¡AµM«á«ö¤@¤U [±Ò°Ê°O¿ýÀÉ] «ö¶s¡C
¦p»Ý¸Ô²Ó¸ê°T¡A½Ð«ö¤@¤U¤U±ªº¤å¥ó½s¸¹¡AÀ˵ø¡uMicrosoft ª¾ÃÑ®w¡v¤¤ªº¤å¥ó¡G
150934?
(http://support.microsoft.com/kb/150934/
)
¦p¦ó«Ø¥ß®Ä¯àºÊµø¾¹°O¿ý¥H¶i¦æ NT ºÃÃø±Æ¸Ñ
3. Àˬd«ÊÂê¡C
¦pªGn¬d¬Ý¬O§_µo¥Í«ÊÂê¡A½Ð°õ¦æ
sp_who ¨t²Î¹w¦sµ{§Ç¡G
¦¹¿é¥X±N¥]§t
blk Äæ¦ì¡CÀˬd¿é¥X¡A¬d¬Ý¦³µL¥ô¦ó«ü¥Xµo¥Í«ÊÂꪺ«D¹s¶µ¥Ø¡Cµo¥Í®Ä¯à§C¸¨®É¡A½Ð©w´Á¦b¾ãӮɵ{¤¤°õ¦æ¦¹µ{§Ç¡C
ª`·N °õ¦æ
sp_who ¨t²Î¹w¦sµ{§Ç¥u¯àÀˬd¬O§_¦³«ÊÂê¦s¦b¡C¤@¯ë¦Ó¨¥¡A¥¦µLªk´£¨Ñ¨¬°÷ªº¸ê°T¥H±Æ¸Ñ«ÊÂê°ÝÃD¡C
¦p»Ý¸Ô²Ó¸ê°T¡A½Ð«ö¤@¤U¤U±ªº¤å¥ó½s¸¹¡AÀ˵ø¡uMicrosoft ª¾ÃÑ®w¡v¤¤ªº¤å¥ó¡G
251004?
(http://support.microsoft.com/kb/251004/
)
INF¡G¦p¦óºÊµø SQL Server 7.0 «ÊÂê
¦b¤@¯ët¸ü¤U°õ¦æÀ³¥Îµ{¦¡
³Ì¦n¦b¬Û¦Pªº®Éµ{¤º¯àÂ^¨ú SQL
Profiler¡B¡u®Ä¯àºÊµø¾¹¡v¥H¤Î«ÊÂê¿é¥X¡C¦¹®Éµ{¥²¶·¥]§tÀ³¥Îµ{¦¡®Ä¯à±q¨}¦nÅܦ¨«Ü®tªº®É¶¡¡Cµ²¦X¦¹¶µ¸ê°T¡A±N¥i¨ó§U±z§ó²M·¡¦aÁA¸Ñþùتº®Ä¯àÅܺC¡C
¸Ñ͵²ªG
- Àˬd«ÊÂê¡C
¦pªG sp_who ¿é¥X¤¤ªº blk Äæ¦ì¤£¬O¹s¡A³oªí¥Ü¦b¨t²Î¤Wµo¥Í«ÊÂê¡C¦pªG³B²z§Ç¤¬¬Û«ÊÂê¡A«h¾D¨ì«ÊÂꪺ³B²z§Ç¥i¯à»Ýn¸ûªøªº°õ¦æ®É¶¡¡C
¦p»Ý¸Ô²Ó¸ê°T¡A½Ð«ö¤@¤U¤U±ªº¤å¥ó½s¸¹¡AÀ˵ø¡uMicrosoft ª¾ÃÑ®w¡v¤¤ªº¤å¥ó¡G224453?
(http://support.microsoft.com/kb/224453/
)
INF¡G¤F¸Ñ¨Ã¸Ñ¨M SQL Server 7.0 ¤§Âê©w°ÝÃD
- Àˬd SQL Profiler ¿é¥X¡C
¦³®Ä¦aÀ˵ø SQL Profiler
¸ê®Æ¦b¸Ñ¨M®Ä¯à°ÝÃD®É·¥¬°¦³¥Î¡C³Ì«nªº¬OnÁA¸Ñ±z¤£»Ý¬d¬Ý©ÒÂ^¨úªº¥þ³¡¤º®e¡C½Ðºë¬D²Ó¿ï¡CSQL Profiler ´£¨Ñªº¥\¯à¡A¥i¨ó§U±z¦³®ÄÀ˵ø¤wÂ^¨úªº¸ê®Æ¡C¦b [¤º®e] ¯Á¤Þ¼ÐÅÒ¤W («ö¤@¤U [ÀÉ®×] ¥\¯àªí¤Wªº [¤º®e])¡ASQL Profiler ¥iÅý±z²¾°£¸ê®ÆÄæ¦ì©Î¨Æ¥ó¡B¨Ì¸ê®ÆÄæ¦ì¤À²Õ (±Æ§Ç)
¥H¤Î®M¥Î¿z¿ï¾¹¡A±q¦Ó¨înÅã¥Üªº¸ê®Æ¡C±z¥i¥H·j´M¾ãÓ°lÂܩζȷj´M¯S©wÄæ¦ì¥H´M§ä¯S©wÈ («ö¤@¤U [ÀÉ®×] ¥\¯àªí¤Wªº [´M§ä])¡C±z¤]¥i¥H±N SQL Profiler ¸ê®ÆÀx¦s¦Ü SQL Server ¸ê®Æªí (¦b [ÀÉ®×] ¥\¯àªí¤W¡A«ü¦V [¥t¦s·sÀÉ]¡A¦A«ö¤@¤U [°lÂÜ¸ê®Æªí])¡AµM«á¦A°w¹ï¸Ó¸ê®Æªí°õ¦æ SQL ¬d¸ß¡C
½Ð°È¥²¥u¦b¥ý«eÀx¦sªº°lÂÜÀɮפW°õ¦æ¿z¿ï¡C¦pªG±z¦b¨Ï¥Î¤¤ªº°lÂܤW°õ¦æ³o¨Ç¨BÆJ¡A¥i¯à·|¥¢¥h¦Û°lÂܱҰʫá©ÒÂ^¨ú¨ìªº¸ê®Æ¡C½Ð¥ý±N¨Ï¥Î¤¤°lÂÜÀx¦s¨ìÀÉ®×©Î¸ê®Æªí («ö¤@¤U
[ÀÉ®×] ¥\¯àªí¤Wªº [¥t¦s·sÀÉ])¡AµM«á¦b±zÄ~Äò¤§«e«·s¶}±Ò¥¦ («ö¤@¤U [ÀÉ®×] ¥\¯àªí¤Wªº [¶}±Ò])¡C·í±z¨Ï¥Î¤wÀx¦sªº°lÂÜÀɮ׮ɡA¿z¿ïªº°Ê§@¨Ã¤£·|¥Ã»·²¾°£¿z¿ï±¼ªº¸ê®Æ¡A¥¦¥u¬O¤£¥[¥HÅã¥Ü¡C±z¥i¥Hµø»Ýn·s¼W©M²¾°£¨Æ¥ó©M¸ê®ÆÄæ¦ì¡A¨ó§U±z±NµJÂI¶°¤¤¦b·j´M¤W¡C
Àˬd
SQL Profiler °lÂÜÀÉ®×¥H¤ÀªR®Ä¯à°ÝÃDªº²Ä¤@¨B¡A¬O§PÂ_¦b¦øªA¾¹¤W¦³þ¨Ç¦a¤èµo¥Í¤£¦PÃþ«¬ªº¨Æ¥ó¡C
¨Ì¨Æ¥óÃþ§O¡A±N°lÂܤÀ²Õ¡G
a. ¦b [ÀÉ®×] ¥\¯àªí¤W¡A«ö¤@¤U [¤º®e]¡C
b. ¦b [¸ê®ÆÄæ¦ì] ¯Á¤Þ¼ÐÅÒ¤W¡A¨Ï¥Î [¦V¤W] «ö¶s²¾°Ê [¸s²Õ] ¼ÐÃD¤Uªº[¨Æ¥óÃþ§O]¡AµM«á¨Ï¥Î [¦V¤U] «ö¶s²¾°£ [¸s²Õ] ¼ÐÃD¤Uªº¨ä¥L¸ê®ÆÄæ¦ì¡C
c. «ö¤@¤U [½T©w]¡C
¨Ì¨Æ¥óÃþ§OÄæ¦ì¤À²Õ¡A¥i¥HÅã¥Ü SQL Server
¤Wµo¥Íþ¨ÇÃþ«¬ªº¨Æ¥ó¤Î¨äÀW²v¡C·j´M¦¹Äæ¦ì¥H´M§ä¤U¦C¨Æ¥ó¡G
SP:RECOMPILE
¦¹¨Æ¥ó«ü¥X¹w¦sµ{§Ç¤w¦b°õ¦æ´Á¶¡«·s½sĶ¡C¦pªG¦³¼ÆÓ«·s½sĶ¨Æ¥ó¡A«hªí¥Ü SQL Server ±N¸ê·½ªá¶O¦b½sͬd¸ß¦Ó«D°õ¦æ¬d¸ß¡C
¦p»Ý¦³Ãö¹w¦sµ{§Ç«·s½sͤ§ºÃÃø±Æ¸Ñªº¸Ô²Ó¸ê°T¡A½Ð«ö¤@¤U¤U±ªº¤å¥ó½s¸¹¡AÀ˵ø¡uMicrosoft ª¾ÃÑ®w¡v¤¤ªº¤å¥ó¡G
243586?
(http://support.microsoft.com/kb/243586/
)
Troubleshooting stored procedure recompilation
ª`·N¨Æ¶µ
ª`·N¨Æ¶µ°T®§«ü¥X¥Î¤áºÝ¤w¨ú®ø¬YÓ¬d¸ß¡C³o³q±`¬O¦]¬°¤U¦C¨âÓì¦]ªº¨ä¤¤¤§¤@©Ò³y¦¨¡G
¨Ï¥ÎªÌ©ú½T¦a¨ú®ø¬d¸ß©Îµ²§ôÀ³¥Îµ{¦¡¡C
- ©Î -
¤w¶W¹L¬d¸ßªº¹O®É®É¶¡¡C
¦pªG±z¬Ý¨ìª`·N¨Æ¶µ°T¸¹¡A³o¥i¯àªí¥Ü¬Y¨Ç¬d¸ßªº°õ¦æ³t«×«ÜºC¡C
¦p»Ý¸Ô²Ó¸ê°T¡A½Ð«ö¤@¤U¤U±ªº¤å¥ó½s¸¹¡AÀ˵ø¡uMicrosoft ª¾ÃÑ®w¡v¤¤ªº¤å¥ó¡G
243589?
(http://support.microsoft.com/kb/243589/
)
¦b SQL Server 7.0 ©Î§ó·sª©¥»¤Wªº°õ¦æ½wºC¬d¸ßºÃÃø±Æ¸Ñ
¬°¤F¨ó§UÃѧO¦¬¨ìª`·N¨Æ¶µ°T¸¹ªº¬d¸ß¡A½Ð×q°lÂܨϨ䤣¨Ì¥ô¦ó¸ê®ÆÄæ¦ì¨Ó¤À²Õ¡A¨Ã¦b¦¬¨ì¥¦ªº¨t²Î³B²z§ÇÃѧO½X
(SPID) ¤W¿z¿ï (¦b
[¿z¿ï] ¯Á¤Þ¼ÐÅÒ¤W¡A³]©w SPID =
x)¡Cºò¾F¦bª`·N¨Æ¶µ°T¸¹«e±ªº
SQL:StmtStarting¡B
SQL:BatchStarting ©Î
SP:StmtStarting ¨Æ¥ó¬O¦¬¨ì¹O®É©Î¨ú®øªº¬d¸ß¡C¥un¦b
[¨Æ¥óÃþ§O] Äæ¦ì´M§ä¡uª`·N¨Æ¶µ¡v¨Æ¥ó («ö¤@¤U
[½s¿è] ¥\¯àªí¤Wªº
[´M§ä])¡A´N¥i¥H«Ü®e©ö¦a§ä¨ì³oÃþ¬d¸ß¡C
PREPARE SQL »P EXEC PREPARED SQL
Prepare SQL ¨Æ¥ó«ü¥X ODBC¡BOLE DB ©Î DB-Library À³¥Îµ{¦¡·Ç³Æ¤Fn¨Ï¥Îªº Transact-SQL ³¯z¦¡¡C
Exec Prepared SQL ¨Æ¥ó«ü¥XÀ³¥Îµ{¦¡§Q¥Î²{¦³·Ç³Æ¦nªº³¯z¦¡¨Ó°õ¦æ©R¥O¡C
¤ñ¸û³o¨âӨƥóµo¥Íªº¦¸¼Æ¡C³Ì²z·Qªº¬O¡AÀ³¥Îµ{¦¡¥un·Ç³Æ¤@¦¸
SQL ³¯z¦¡¡A´N¥i°õ¦æ¥¦¼Æ¦¸¡C³o±N¥i¨Ï Optimizer ¦b¨C¦¸°õ¦æ³¯z¦¡®É¬Ù¤U½sĶ·sp¹ºªº¦¨¥»¡C¦]¦¹¡A
Exec Prepared SQL ¨Æ¥óÀ³¸Ó¤ñ
Prepare SQL ¨Æ¥óªº¼Æ¥Ø¤j¦h¤F¡C¦pªG
Prepare SQL ¨Æ¥óªº¼Æ¥Ø¤j¬ùµ¥©ó
Exec Prepared SQL ¨Æ¥óªº¼Æ¥Ø¡A³o¥i¯à·N¿×µÛÀ³¥Îµ{¦¡¥¼¦n¦n§Q¥Î·Ç³Æ/°õ¦æ¼Ò«¬¡C³Ì¦n¤£n·Ç³Æ¥u°õ¦æ¤@¦¸ªº³¯z¦¡¡C¦p»Ý¦³Ãö·Ç³Æ SQL
³¯z¦¡ªº¸Ô²Ó¸ê°T¡A½Ð°Ñ¾\¡mSQL Server 7.0 ½u¤WÂO®Ñ¡n¤¤ªº¡Õ·Ç³Æ SQL ³¯z¦¡¡Ö¥DÃD¡C
¦pªG
Exec Prepared SQL ¨Æ¥ó¨S¦³¶W¹L
Prepare SQL ¨Æ¥ó¼Æ¥Øªº¤T¨ì¤¿¡A«hÀ³¥Îµ{¦¡¥i¯à¥¼¦³®Ä¦a¨Ï¥Î·Ç³Æ/°õ¦æ¼Ò«¬¡C
¦p»Ý¸Ô²Ó¸ê°T¡A½Ð«ö¤@¤U¤U±ªº¤å¥ó½s¸¹¡AÀ˵ø¡uMicrosoft
ª¾ÃÑ®w¡v¤¤ªº¤å¥ó¡G
243588?
(http://support.microsoft.com/kb/243588/
)
¸ê°T¡G¯S®í¬d¸ß®Ä¯àªººÃÃø±Æ¸Ñ
¦b SQL Server 2000 ¤¤¡A±N¥i¬Ù¥h¨CӷdzÆ/°õ¦æ¤¤¹L¦hªº©¹ªð¡A©Ò¥H 3-5
ªº¤ñ²v¨Ã¤£ÄY®æ¡CµM¦Ó¡A¥¦¤´µM¬O¨}¦nªº³W«h¡A¥i¹Á¸Õ©M«½Æ¨Ï¥Î·Ç³Æ¦nªºp¹º¤@¦¸¥H¤W¡C
Missing Column Statistics
¦¹¨Æ¥ó«ü¥X Optimizer ¥i¥Î¥H²£¥Í¸û¨Î¬d¸ßp¹º¤§²Îp¸ê°TµLªk¨Ï¥Î¡C³o«ü¥X¡A¬d¸ß¨Ã«D¦b©Ò¦³¬ÛÃöªº¸ê®Æªí³£¨ã¦³¦³¥Îªº¯Á¤Þ¡C°£¤F¨S¦³¦³¥Îªº¯Á¤Þ¥H¥~¡ASQL Server ¬Æ¦Ü¨S¦³¬ÛÃöÄæ¦ìªº²Îp¸ê®Æ¥i¥H¬°¬d¸ßp¹º°µ¥X©ú´¼ªº¨M©w¡Cµ²ªG¬O¡A²£¥Íªº¬d¸ßp¹º¥i¯à¤£¬O³Ì¨Îªºp¹º¡C¦pªG±z¬Ý¨ì³o¨Ç¨Æ¥ó¡A½Ð¬d¬Ý¬d¸ß©M²£¥Íªº°õ¦æp¹º¡AµM«á°Ñ¾\¡uMicrosoft ª¾ÃÑ®w¡v¤¤ªº¤å¥ó¡A¥HÁA¸Ñ§ïµ½¦¹¬d¸ßªº®Ä¯à©Ò»Ý±Ä¨úªº¨BÆJ¡G
243589?
(http://support.microsoft.com/kb/243589/
)
¦b SQL Server 7.0 ©Î§ó·sª©¥»¤Wªº°õ¦æ½wºC¬d¸ßºÃÃø±Æ¸Ñ
·í±zÀ˵ø
Missing Column Statistics ¨Æ¥ó®É¡A½Ð¥ý±NµJÂI©ñ¦b»P°õ¦æ®É¶¡¸ûªø¤§¬d¸ß¬ÛÃöªº¨Æ¥ó¤W¡C¦³¨Ç¨Æ¥ó¥i¯à¥Ñ SQL Server ¨Ï¥Î autostats
¦Û°Ê²£¥Í©M¸Ñ¨M¡A¦Ó¤£»Ýn¨Ï¥ÎªÌ¤¶¤J¡C¦]¦¹¡A³Ì¨Îªºµ¦²¤¬O¥ý±NµJÂI¶°¤¤¦b«ùÄò®É¶¡¸ûªøªº¬d¸ß¤W (¦p¥»¤åµy«á©Ò¥Ü)¡A¨Ãª`·N¬O§_¦³¬ÛÃöªº
Missing Column Statistics ¨Æ¥ó¡C
¦pªG±z¨S¦³¬Ý¨ì³o¨Ç¨Æ¥óÃþ§Oªº°õ¦æÓÅé¡A¨º»ò¤U¤@¨B´N¬O§PÂ_®É¶¡ªá¨ìþùØ¥h¤F¡C
¨Ì«ùÄò®É¶¡¡A±N°lÂÜ¿é¥X¤À²Õ¡G
a. ¦b [ÀÉ®×] ¥\¯àªí¤W¡A«ö¤@¤U [¤º®e]¡C
¦b [¸ê®ÆÄæ¦ì] ¯Á¤Þ¼ÐÅÒ¤W¡A¨Ï¥Î [¦V¤W] «ö¶s²¾°Ê [¸s²Õ] ¼ÐÃD¤Uªº[«ùÄò®É¶¡]¡AµM«á¨Ï¥Î [¦V¤U] «ö¶s²¾°£ [¸s²Õ] ¼ÐÃD¤Uªº©Ò¦³¨ä¥L¸ê®ÆÄæ¦ì¡C
c. ¦b [¨Æ¥ó] ¯Á¤Þ¼ÐÅÒ¤W¡A½Ð²¾°£ TSQL ¤Î Stored Procedures ¥H¥~ªº©Ò¦³¸s²Õ¡C
d. «ö¤@¤U [½T©w]¡C
¨Ì·Ó«ùÄò®É¶¡¤À²Õ«á¡A±z¥i¥H»´©ö¦aµo²{þ¨Ç SQL
³¯z¦¡¡B§å¦¸©Îµ{§Ç°õ¦æ³ÌºC¡C«D±`«nªº¬O¡A¤£¥un¬d¬Ýµo¥Í°ÝÃDªº®É¶¡¡AÁÙn±o¨ì®Ä¯à¨}¦n®Éªº°ò·Ç¡A¤~¯à¶i¦æ¤ñ¸û¡C±z¥i¥H¿z¿ï¶}©l®É¶¡¥H«K±N°lÂܤÀ¬°¨âÓ³¡¤À¡A¤À§O¬O®Ä¯à¨}¦nªº³¡¤À¥H¤Î®Ä¯à¤£¨Îªº³¡¤À¡C¦b®Ä¯à¨}¦nªº³¡¤À¤¤¡A´M§ä«ùÄò®É¶¡³Ìªøªº¬d¸ß¡C³o¨Ç³Ì¦³¥i¯à¬O°ÝÃDªº®Ú·½¡C¦pªG¾ãÓ¨t²Î®Ä¯à³£°§C¤F¡A§Y¨Ï¬O¨}¦nªº¬d¸ß³£¥i¯àÅã¥Ü¥X¸ûªøªº«ùÄò®É¶¡¡A¦]¬°¥¦Ì³£¦bµ¥«Ý¨t²Î¸ê·½¡C
¦pªG±z¬Ý¨ì¦³¤Ö¼Æªº¬d¸ß¨ã¦³«Üªøªº«ùÄò®É¶¡¡A½Ð°Ñ¾\¡uMicrosoft ª¾ÃÑ®w¡v¤¤ªº¤å¥ó¡G
243589?
(http://support.microsoft.com/kb/243589/
)
¦b SQL Server 7.0 ©Î§ó·sª©¥»¤Wªº°õ¦æ½wºC¬d¸ßºÃÃø±Æ¸Ñ
¦pªG±z¬Ý¨ìÓ§O¬d¸ßªº«ùÄò®É¶¡«Üµu¡A¥B¦³¦n´XÓ¬d¸ß³£¬O¦p¦¹¡A¨Ã¥B¡u®Ä¯àºÊµø¾¹¡v¿é¥X (©óµy«á»¡©ú) ¤¤ªº
SQL Compilations/sec p¼Æ¾¹«Ü°ª¡A½Ð°Ñ¾\¡uMicrosoft ª¾ÃÑ®w¡v¤¤ªº¤å¥ó¡G
243588?
(http://support.microsoft.com/kb/243588/
)
¯S®í¬d¸ß®Ä¯àªººÃÃø±Æ¸Ñ
Àˬd¨ä¾lªº¸ê®ÆÄæ¦ì¡G
À˵ø°lÂÜ¸ê®Æ¤¤¨ä¥Lªº¸ê®ÆÄæ¦ì¡AÁÙ¥i¹ï®Ä¯à°ÝÃDªº¥»½è²£¥Í¨ä¥Lªº¨£¸Ñ¡C¤U±¬On¦Ò¼{ªº¤@¨Ç¶µ¥Ø¡G
¦pªG CPU ¨Ï¥Î²v«Ü°ª¡A½Ð¨Ì CPU ¤À²Õ¨Ó¬d¬Ýþ¨Ç¬d¸ß¬O CPU ®É¶¡ªº³Ì¤j¨Ï¥ÎªÌ¡C¦b Text Äæ¦ì¤¤·j´M¡uÂø´ê¡v©Î¡u¦X¨Ö¡v¡A¨Ó§ä¥X¨Ï¥Î³o¨ÇÁpµ²Ãþ«¬¬d¸ß°õ¦æp¹º¡C¥¦Ì¤ñ±_ª¬°j°éÁpµ² (³q±`»Ýn¤j¶qªº IO) ÁÙ»Ýn§ó¦h CPU
»P°O¾ÐÅé¡C
¦pªGºÏºÐ IO ¬O²~ÀV¡A½Ð¨ÌŪ¨ú©M¼g¤J¤À²Õ¡C½ÐÀ˵ø [À³¥Îµ{¦¡¦WºÙ]¡B[NT ¨Ï¥ÎªÌ¦WºÙ] ¥H¤Î [SQL ¨Ï¥ÎªÌ¦WºÙ] Äæ¦ì¨Ó¨ó§U¹jÂ÷¥X°õ¦æ®É¶¡¸ûªø¤§¬d¸ßªº¨Ó·½¡C
¨Ò¥~¨Æ¥óªº¾ã¼Æ¸ê®ÆÄæ¦ì±N«ü¥X¶Ç¦^¥Î¤áºÝªº¥ô¦ó¿ù»~¡C±z¥i¥H·j´M¡mSQL Server 7.0
½u¤WÂO®Ñ¡n¤¤ªº½s½X¡A¥H´M§ä¿ù»~°T®§ªº¤å¦r¡C
[³s±µÃѧO½X] Äæ¦ì¦³§U©ó½T©w±z¬O¦b¬d¬Ý¯S©w¥Î¤áºÝªº¬Û¦P¤u§@¶¥¬q¡CSPID
´NµLªk°µ¨ì³oÂI¡A¦]¬°¨Ï¥ÎªÌ¥i¯à¤w¤¤Â_³s½u¡AµM«á¦³·sªº¨Ï¥ÎªÌ³s½u¨Ã¦¬¨ì¬Û¦Pªº SPID¡C
±q³o¨ÇÄæ¦ìl¥ÍªºÀuÂI¥i¯à·|µøª¬ªp¦Ó²§¡F¦ý¬O¦pªG¥»¤å¤§«e©Ò´£¤Î¡B¸û©úÅãªºÄæ¦ìµLªk´£¨Ñ¸Ñµª®É¡A´NÀ³¸ÓÀˬd³o¨ÇÄæ¦ì¡C
- Àˬd¡u®Ä¯àºÊµø¾¹¡v¿é¥X¡C
¡u®Ä¯àºÊµø¾¹¡v±NÅã¥Ü¾ãÓ¨t²Îªº²~ÀV¡C¦³¥i¯à SQL Server
»PÀ³¥Îµ{¦¡¬O¦p¹w´Á°õ¦æ¡A¦ý¬O¹q¸£«o¹q¤O¤£¨¬¡A¯Ê¤Ö°O¾ÐÅé©Î¨ä¥L¸ê·½¡C©ÎªÌ¬Y¨Çp¼Æ¾¹¥i¥H«ü¥XÀ³¥Îµ{¦¡©M SQL Server
¤§°õ¦æ¤è¦¡ªº°ÝÃD¡C¦Ü¤Ö½ÐÀˬd¤U¦Cp¼Æ¾¹¡G
- ª«¥ó¡GProcess
p¼Æ¾¹¡GProcessor
°õ¦æÓÅé¡GSQL
Server
- ª«¥ó¡GProcessor
p¼Æ¾¹¡G%Processor Time
°õ¦æÓÅé¡GÀˬd¨CÓ³B²z¾¹ªº°õ¦æÓÅé
- ª«¥ó¡GPhysical Disk
p¼Æ¾¹¡GAvg.Disk Queue
Length
°õ¦æÓÅé¡GÀˬd¨CÓ¹êÅéºÏºÐªº°õ¦æÓÅé
- ª«¥ó¡GSQL Server:SQL Statistics
p¼Æ¾¹¡GSQL
Compilations/sec
¬d¬Ý¬Y¬q®É¶¡¤º®Ä¯à±q¨}¦nÅܦ¨«Ü®tªºÁͶաG¤°»ò·|¥ý¼W¥[¡H¬O§_·|ôµ²¹q¸£ CPU ©ÎºÏºÐ IO¡H¦¹¸ê°T¥[¤W¥»¤åµy¦ªº
Profiler ¿é¥X¡A±N¥i¨ó§U±zÁY¤p¦³°ÝÃDªº°Ï°ì¡C°ª CPU
¨Ï¥Î²vªº°ÝÃD¥i¯àªí¥Ü¤j¶qªº¹w¦sµ{§Ç«·s½sĶ¡B¯S®íªº¬d¸ß½sĶ©Î¬O¤j¶q¨Ï¥ÎÂø´ê©M¦X¨ÖÁpµ²¡C±z¥²¶·¨Ì·Ó¥»¤å¥ý«e©Ò°Ñ¦Òªº¤å³¹¡A¨M©w¥X¥¿½Tªº°µªk¡C°ªºÏºÐ¦î¦Cªø«×¥i¯àªí¥Ü»Ýn§ó¦hªº¨t²Î°O¾ÐÅé©Î§ï¨}ªººÏºÐ¤l¨t²Î¡C