MS SQLãµãŒããŒã§äœãèµ·ãã£ãŠããããåæãç¶ããŸãã ãã®ããŒãã§ã¯ããŠãŒã¶ãŒã®äœæ¥ã«é¢ããæ å ±ãååŸããæ¹æ³ãã€ãŸãã誰ãäœã«ã©ã®ãããã®ãªãœãŒã¹ãè²»ãããŠãããã調ã¹ãŸãã
2çªç®ã®éšåã¯ãDB管çè ã ãã§ãªããå®çšŒåãµãŒããŒäžã®ãªã¯ãšã¹ãã®äœãåé¡ãªã®ããç解ããå¿ èŠã®ããéçºè ïŒããã«å€ãã®éçºè ïŒã«ãšã£ãŠãèå³æ·±ããã®ã«ãªããšæããŸãã
ãŠãŒã¶ãŒã¢ã¯ã·ã§ã³ã®åæã¿ã¹ã¯ã¯æ¡ä»¶ä»ãã§ã°ã«ãŒãã«åãããããããããåå¥ã«æ€èšããŸãã
- ç¹å®ã®ãªã¯ãšã¹ããåæãã
- ç¹å®ã®æ¡ä»¶ã§ã¢ããªã±ãŒã·ã§ã³ããã®è² è·ãåæããŸãïŒããšãã°ããŠãŒã¶ãŒãããŒã¿ããŒã¹ã§åäœãããµãŒãããŒãã£ã¢ããªã±ãŒã·ã§ã³ã§ãã¿ã³ãã¯ãªãã¯ãããšãïŒ
- çŸåšã®ç¶æ³ã®åæ
èŠå
ããã©ãŒãã³ã¹åæã«ã¯ãããã€ã¹ãšããŒã¿ããŒã¹ãµãŒããŒããã³OSã®ååãæ·±ãç解ããå¿
èŠããããŸãã ãããã£ãŠããããã®èšäºã®ã¿ãèªãã§ãå°é家ã«ãªãããšã¯ãããŸããã
å®éã®ã·ã¹ãã ã§èæ ®ãããåºæºãšã«ãŠã³ã¿ãŒã¯ãäºãã«è€éãªé¢ä¿ã«ãããŸãã ããšãã°ãHDDã®é«è² è·ã¯ãå€ãã®å ŽåãHDDèªäœã®åé¡ã§ã¯ãªããRAMã®äžè¶³ã«é¢é£ããŠããŸãã ããã€ãã®æž¬å®ãè¡ã£ããšããŠããããã¯åé¡ã®ãã©ã³ã¹ã®åããè©äŸ¡ã«ã¯ååã§ã¯ãããŸããã
ãã®èšäºã®ç®çã¯ãç°¡åãªäŸã䜿ã£ãŠåºæ¬çãªããšã玹ä»ããããšã§ãã æšå¥šäºé ã¯ãè¡åãžã®ã¬ã€ãããšèŠãªãããã¹ãã§ã¯ãªããæè²çã¿ã¹ã¯ïŒçŸå®ãåçŽã«åæ ããïŒãšããŠããŸãæèã®æµãã説æããããã®ãæèããªãã·ã§ã³ãšèŠãªãããã¹ãã§ãã
èšäºã®çµæã«åºã¥ããŠãæ°å€ã䜿çšããŠãµãŒããŒã®æäœã«é¢ããçµè«ãå®èšŒããæ¹æ³ãåŠç¿ããŠãã ããã ãŸããããµãŒããŒã®é床ãäœäžããŠããŸãããšããèšèã®ä»£ããã«ãç¹å®ã®ã€ã³ãžã±ãŒã¿ãŒã®ç¹å®ã®å€ãæå®ããŸãã
å®éã®ã·ã¹ãã ã§èæ ®ãããåºæºãšã«ãŠã³ã¿ãŒã¯ãäºãã«è€éãªé¢ä¿ã«ãããŸãã ããšãã°ãHDDã®é«è² è·ã¯ãå€ãã®å ŽåãHDDèªäœã®åé¡ã§ã¯ãªããRAMã®äžè¶³ã«é¢é£ããŠããŸãã ããã€ãã®æž¬å®ãè¡ã£ããšããŠããããã¯åé¡ã®ãã©ã³ã¹ã®åããè©äŸ¡ã«ã¯ååã§ã¯ãããŸããã
ãã®èšäºã®ç®çã¯ãç°¡åãªäŸã䜿ã£ãŠåºæ¬çãªããšã玹ä»ããããšã§ãã æšå¥šäºé ã¯ãè¡åãžã®ã¬ã€ãããšèŠãªãããã¹ãã§ã¯ãªããæè²çã¿ã¹ã¯ïŒçŸå®ãåçŽã«åæ ããïŒãšããŠããŸãæèã®æµãã説æããããã®ãæèããªãã·ã§ã³ãšèŠãªãããã¹ãã§ãã
èšäºã®çµæã«åºã¥ããŠãæ°å€ã䜿çšããŠãµãŒããŒã®æäœã«é¢ããçµè«ãå®èšŒããæ¹æ³ãåŠç¿ããŠãã ããã ãŸããããµãŒããŒã®é床ãäœäžããŠããŸãããšããèšèã®ä»£ããã«ãç¹å®ã®ã€ã³ãžã±ãŒã¿ãŒã®ç¹å®ã®å€ãæå®ããŸãã
ç¹å®ã®ãªã¯ãšã¹ããåæãã
æåã®ãã€ã³ãã¯éåžžã«ç°¡åã§ããç°¡åã«èª¬æããŸãããã ãããŸããªããšã ããèããŠã¿ãŸãããã
SSMS㯠ãã¯ãšãªçµæã«å ããŠããªã¯ãšã¹ãã®å®è¡ã«é¢ããè¿œå æ å ±ãåãåãããšãã§ããŸãã
- ã»ãšãã©ã®äººã¯ããæšå®å®è¡èšç»ã®è¡šç€ºããã¿ã³ïŒè©äŸ¡èšç»ïŒããã³ãå®éã®å®è¡èšç»ãå«ãããïŒå®éã®èšç»ïŒãã¿ã³ã§ã¯ãšãªèšç»ãååŸãããããšãç¥ã£ãŠããŸãã ãããã¯ãè©äŸ¡èšç»ãèŠæ±ãæºãããã«æ§ç¯ããããšããç¹ã§ç°ãªããŸãã ãããã£ãŠããã®äžã®åŠçãããè¡ã®æ°ã«é¢ããæ å ±ã¯æšå®ãããŸãã å®éã«ã¯ãæšå®ããŒã¿ãšå®éã®ããŒã¿ã®äž¡æ¹ããããŸãã ãããã®å€ã®éã®åŒ·ãäžäžèŽã¯ãçµ±èšãç¡é¢ä¿ã§ããããšã瀺ããŠããŸãã ãã ããèšç»ã®åæ-å¥ã®å€§ããªèšäºã®ãããã¯-ã¯ãŸã 詳ãã説æããŸããã
- ããŸãç¥ãããŠããªãäºå®-ããã»ããµã³ã¹ããšãµãŒããŒãã£ã¹ã¯æäœã®æž¬å®å€ãååŸã§ããŸãã ãããè¡ãã«ã¯ããã€ã¢ãã°ã®[ã¯ãšãª] / [ã¯ãšãªãªãã·ã§ã³...]ã®ããããã§SETãªãã·ã§ã³ãæå¹ã«ããŸãã
ã¹ã¯ãªãŒã³
ãªã¯ãšã¹ãã§SETã³ãã³ããçŽæ¥äœ¿çšããããããšãã°
SET STATISTICS IO ON SET STATISTICS TIME ON SELECT * FROM Production.Product p JOIN Production.ProductDocument pd ON p.ProductID = pd.ProductID JOIN Production.ProductProductPhoto ppp ON p.ProductID = ppp.ProductID
å®è¡ã®çµæãã³ã³ãã€ã«ãšå®è¡ã«è²»ããããæéãããã³ãã£ã¹ã¯æäœã®æ°ã«é¢ããããŒã¿ãååŸããŸãã
åºåäŸSQL Serverã®è§£æããã³ã³ã³ãã€ã«æéïŒ
CPUæé= 16ããªç§ãçµéæé= 89ããªç§ã
SQL Serverã®çšŒåæéïŒ
CPUæé= 0ããªç§ãçµéæé= 0ããªç§ã
SQL Serverã®çšŒåæéïŒ
CPUæé= 0ããªç§ãçµéæé= 0ããªç§ã
ïŒ32è¡ã圱é¿ãåããŸãïŒ
ããŒãã«ãProductProductPhotoãã ãã¥ãŒã®æ°ã¯ã32ãè«çèªã¿åãå€96ãç©çèªã¿åãå€5ãåæ¹èªã¿åãå€0ãlobè«çèªã¿åãå€0ãlobç©çèªã¿åãå€0ãlobåæ¹èªã¿åãå€0ã§ãã
補åè¡šã ãã¥ãŒã®æ°ã¯0ãè«çèªã¿åãå€64ãç©çèªã¿åãå€0ãåæ¹èªã¿åãå€0ãlobè«çèªã¿åãå€0ãlobç©çèªã¿åãå€0ãlobåæ¹èªã¿åãå€0ã§ãã
ããŒãã«ãProductDocumentãã ãã¥ãŒ1ãè«çèªã¿åã3ãç©çèªã¿åã1ãåæ¹èªã¿åã0ãlobè«çèªã¿åã0ãlobç©çèªã¿åã0ãlobåæ¹èªã¿åã0ã®æ°ã
SQL Serverã®çšŒåæéïŒ
CPUæé= 15ããªç§ãçµéæé= 35ããªç§ã
ç·šéæéãšãè«çç枬å®å€96ãç©çç枬å®å€5ãã®ããã¹ãã«æ³šæãã䟡å€ããããŸãã åããªã¯ãšã¹ãã®2åç®ä»¥éã®å®è¡ã§ã¯ãç©ççãªèªã¿åãå€ãæžå°ããåã³ã³ãã€ã«ãäžèŠã«ãªãå ŽåããããŸãã ãã®ããã2åç®ä»¥éã®ã¯ãšãªãæåã®ã¯ãšãªãããéãå®è¡ããããšããç¶æ³ããã°ãã°çºçããŸãã ç解ã§ããããã«ããã®çç±ã¯ããŒã¿ãšã³ã³ãã€ã«æžã¿ã¯ãšãªãã©ã³ããã£ãã·ã¥ããããšã«ãããŸãã - èšç»ãã¿ã³ã®é£ã«ãããã1ã€ã®äŸ¿å©ãªãã¿ã³-ãã¯ã©ã€ã¢ã³ãçµ±èšãå«ããã-ãããã¯ãŒã¯äº€æãå®äºããæäœã®æ°ãããã³ãããã¯ãŒã¯äº€æãšã¯ã©ã€ã¢ã³ãåŠçã®ã³ã¹ããèæ
®ããåèšå®è¡æéã«é¢ããæ
å ±ã衚瀺ããŸãã
æåã®å®è¡ã«æéããããããšã瀺ãäŸ
- SSMS 2016ããŒãžã§ã³ã§ã¯ããInclude Live Query Statisticsããã¿ã³ã衚瀺ãããŸããã ã¯ãšãªãã©ã³ã®å Žåãšåãããã«ç»åã衚瀺ããŸãããã®äžã§åŠçãããè¡ã®æ°ã ããéçã§ã¯ãªãããªã¯ãšã¹ãã®å®è¡äžã«ç»é¢äžã§å€åããŸãã ç»åã¯éåžžã«é®®æã§ã-ç¹æ» ããŠããç¢å°ãšé£ç¶ããæ°åã¯ãæéãç¡é§ã«ãªã£ãŠããå Žæãããã«ç€ºããŸãã ãã®ãã¿ã³ã¯2016幎ã®ã¹ã¿ãžãªã«ãããŸããã2014幎以éã¯ãµãŒããŒã§äœ¿çšãããŠããŸãã
æåã®éšåãèŠçŽããã«ã¯ïŒ
- SET STATISTICS TIME ONã䜿çšããŠããã»ããµã³ã¹ãã調ã¹ãŸãã
- ãã£ã¹ã¯æäœïŒSET STATISTICS IO ONã ãè«çèªã¿åãããšã¯ããã£ã¹ã¯ã·ã¹ãã ã«ç©ççã«ã¢ã¯ã»ã¹ããã«ãã£ã¹ã¯ãã£ãã·ã¥ã§çµäºããèªã¿åãæäœã§ããããšãå¿ããªãã§ãã ããã ãç©ççãªèªæžãã«ã¯ããªãé·ãæéãå¿ èŠã§ãã
- ãã¯ã©ã€ã¢ã³ãçµ±èšãå«ãããã䜿çšããŠããããã¯ãŒã¯ãã©ãã£ãã¯ã®éãæšå®ããŸãã
- ãå®éã®å®è¡èšç»ãå«ããããšãã©ã€ãã¯ãšãªçµ±èšãå«ãããã䜿çšããŠããå®è¡èšç»ãã«åŸã£ãŠã¯ãšãªå®è¡ã¢ã«ãŽãªãºã ã詳现ã«åæããŸãã
ã¢ããªã±ãŒã·ã§ã³ããã®è² è·ã®åæ
2çªç®ã®ã»ã¯ã·ã§ã³ã§ã¯ããããã¡ã€ã©ãŒã䜿çšããŸãã ãµãŒããŒãèµ·åããŠãµãŒããŒã«æ¥ç¶ãããããã°ã«èšé²ãããã€ãã³ããéžæããå¿ èŠããããŸãã ç°¡åãªæ¹æ³ã§ãæšæºã®ãã¬ãŒã¹ãã³ãã¬ãŒãã䜿çšããŠãããã¡ã€ãªã³ã°ãéå§ã§ããŸãã ãäžè¬ãã¿ãã®ããã³ãã¬ãŒãã䜿çšããã£ãŒã«ãã§ããæšæºïŒããã©ã«ãïŒããéžæãããå®è¡ããã¯ãªãã¯ããŸãã
åç
![](https://habrastorage.org/web/616/319/642/616319642aa64c45a2ed0812c863b0ca.png)
ããå°ãè€éãªæ¹æ³ã¯ãéžæãããã³ãã¬ãŒãã«ãã£ã«ã¿ãŒãŸãã¯ã€ãã³ããè¿œå ïŒãŸãã¯åæžïŒããããšã§ãã ãããã®ãªãã·ã§ã³ã¯ããã€ã¢ãã°ã®2çªç®ã®ã¿ãã«ãããŸãã éžæå¯èœãªã€ãã³ããšåã®å®å šãªã»ããã衚瀺ããã«ã¯ãããã¹ãŠã®ã€ãã³ãã衚瀺ããšããã¹ãŠã®åã衚瀺ãã®é ç®ããã§ãã¯ããŸãã
åç
![](https://habrastorage.org/web/c14/07e/427/c1407e42712a482fafcb2df45f3b1c6a.png)
å¿ èŠãªã€ãã³ãã®ãã¡ãäžèŠãªã€ãã³ããå«ããªãæ¹ããã-ãã©ãã£ãã¯ãæžããããã«ïŒ
- ã¹ãã¢ãããã·ãŒãžã£\ RPCïŒå®äº
- TSQL \ SQLïŒBatchCompleted
ãããã®ã€ãã³ãã¯ããµãŒããŒãžã®ãã¹ãŠã®å€éšSQLåŒã³åºãããã£ããã£ããŸãã ååã瀺ãããã«ïŒå®äºïŒãèŠæ±ã®åŠçåŸã«çºçããŸãã SQLåŒã³åºãã®éå§ãä¿®æ£ããåæ§ã®ã€ãã³ãããããŸãã
- ã¹ãã¢ãããã·ãŒãžã£\ RPCïŒéå§
- TSQL \ SQLïŒBatchStarting
ãã ãããªã¯ãšã¹ãã®å®è¡ã«è²»ãããããµãŒããŒãªãœãŒã¹ã«é¢ããæ å ±ãå«ãŸããŠããªãããããããã¯ç§ãã¡ã«ã¯ããŸãé©ããŠããŸããã æããã«ããã®ãããªæ å ±ã¯å®è¡ã®æåŸã§ã®ã¿å©çšå¯èœã§ãã ãããã£ãŠãCPUã®ããŒã¿ãèªã¿åããæžã蟌ã¿ã®å*éå§ã€ãã³ãã¯ç©ºã«ãªããŸãã
ãŸã å«ãŸããªããã®ä»ã®æçšãªã€ãã³ãïŒ
- ã¹ãã¢ãããã·ãŒãžã£\ SPïŒéå§ïŒ*å®äºïŒ-ã¹ãã¢ãããã·ãŒãžã£ã®å éšåŒã³åºãããã£ããã£ããŸãïŒã¯ã©ã€ã¢ã³ãããã§ã¯ãªããçŸåšã®èŠæ±ãŸãã¯å¥ã®ããã·ãŒãžã£å ïŒã
- ã¹ãã¢ãããã·ãŒãžã£\ SPïŒStmtStartingïŒ*å®äºïŒ-ã¹ãã¢ãããã·ãŒãžã£å ã®ååŒã®éå§ãä¿®æ£ããŸãã ããã·ãŒãžã£å ã«ã«ãŒããããå Žåãã«ãŒãå ã®å埩ãšåãæ°ã ããã«ãŒãå ã®ã³ãã³ãã®ã€ãã³ããçºçããŸãã
- TSQL \ SQLïŒStmtStartingïŒ*å®äºïŒ-SQLãããå ã®ååŒã®éå§ãä¿®æ£ããŸãã ãªã¯ãšã¹ãã«è€æ°ã®ããŒã ãå«ãŸããå Žå-åããŒã ã«ã€ãã³ãããããŸãã ããªãã¡ åã®ãã®ãšåæ§ã«ãããã·ãŒãžã£å ã®ã³ãã³ãã§ã¯ãªãããªã¯ãšã¹ãå ã®ã³ãã³ãã«å¯ŸããŠã®ã¿æ©èœããŸãã
ãããã®ã€ãã³ãã¯ãå®è¡ã¹ãããã®è¿œè·¡ã«åœ¹ç«ã¡ãŸãã ããšãã°ããããã¬ã䜿çšããããšã¯ã§ããŸããã
åããš
éåžžãã©ã¡ããéžæãããã¯ååããæããã§ãã 以äžãå¿ èŠã§ãã
- TextDataãBinaryData-äžèšã®ã€ãã³ãã®å ŽåãèŠæ±ããã¹ãèªäœãå«ãŸããŸãã
- CPUãèªã¿åããæžã蟌ã¿ãæé-ãªãœãŒã¹ã³ã¹ãã«é¢ããããŒã¿ã
- StartTimeãEndTime-å®è¡ã®éå§/çµäºæéã 䞊ã¹æ¿ãã«äŸ¿å©ã§ãã
ä»ã®åã奜ã¿ã«è¿œå ããŸãã
ãåãã£ã«ã¿ãŒ...ããã¿ã³ã䜿çšããŠãã€ãã³ããã£ã«ã¿ãŒãèšå®ããããã®ãã€ã¢ãã°ãåŒã³åºãããšãã§ããŸãã ç¹å®ã®ãŠãŒã¶ãŒã®ã¢ã¯ãã£ããã£ã«é¢å¿ãããå Žåã¯ãã»ãã·ã§ã³çªå·ãŸãã¯ãŠãŒã¶ãŒåã§ãã£ã«ã¿ãŒãèšå®ããŸãã æ®å¿µãªãããæ¥ç¶ããŒã«ã䜿çšããŠã¢ããªãµãŒããŒçµç±ã§ã¢ããªã±ãŒã·ã§ã³ãæ¥ç¶ãããšãç¹å®ã®ãŠãŒã¶ãŒã远跡ããã®ãé£ãããªããŸãã
ããšãã°ããã£ã«ã¿ã䜿çšããŠããéããã¯ãšãªã®ã¿ãéžæã§ããŸãïŒæé> XïŒã ãŸãã¯ãæ¿ããæžã蟌ã¿ãåŒãèµ·ããã¯ãšãªïŒWrites> YïŒã ã¯ãããªã¯ãšã¹ãã®å 容ã ãã§ãã
ãããã¡ã€ã©ãŒã«ã¯ä»ã«äœãå¿ èŠã§ããïŒ ãã¡ãããå®è¡èšç»ã§ãïŒ
ãã®ãããªæ©äŒããããŸãã ã€ãã³ããPerformance \ Showplan XML Statistics Profileãããã¬ãŒã¹ã«è¿œå ããå¿ èŠããããŸãã ãªã¯ãšã¹ããæºãããšã次ã®å³ã衚瀺ãããŸãã
ãªã¯ãšã¹ãããã¹ã
![](https://habrastorage.org/web/abd/57b/c9b/abd57bc9bdc84fc0adb14837b72cdb17.png)
å®è¡èšç»
![](https://habrastorage.org/web/f18/21e/9e9/f1821e9e98a74b92b717316d9abdbd35.png)
ãããŠãããã ãã§ã¯ãããŸãã
ã«ãŒãã¯ããã¡ã€ã«ãŸãã¯ããŒã¿ããŒã¹ããŒãã«ã«ä¿åã§ããŸãïŒç»é¢ã«è¡šç€ºãããã ãã§ã¯ãããŸããïŒã
ãã¬ãŒã¹èšå®ã¯ãã¯ã€ãã¯èµ·åã®ããã«å人çšãã³ãã¬ãŒããšããŠä¿åã§ããŸãã
ãããã¡ã€ã©ã䜿çšããã«ãã¬ãŒã¹ãéå§ããããšãã§ããŸã-ããã·ãŒãžã£sp_trace_createãsp_trace_seteventãsp_trace_setstatusãsp_trace_getdataã䜿çšããŠt-sqlã³ãŒãã䜿çšããŸãã ãããè¡ãæ¹æ³ã®äŸã ãã®ã¢ãããŒãã¯ãããšãã°ãã¹ã±ãžã¥ãŒã«ã«åŸã£ãŠãã¡ã€ã«ãžã®ãã¬ãŒã¹ã®èšé²ãèªåçã«éå§ããå Žåã«åœ¹ç«ã¡ãŸãã ãããã®ã³ãã³ãã®æ£ç¢ºãªäœ¿çšæ¹æ³ã¯ããããã¡ã€ã©ãŒèªäœã§ç¢ºèªã§ããŸãã 2ã€ã®ãã¬ãŒã¹ãå®è¡ãã1ã€ã®ãã©ãã¯ã§2çªç®ã®ãã¬ãŒã¹ãéå§ããããšãã«äœãèµ·ãããã§ååã§ãã ãApplicationNameãåã®ãã£ã«ã¿ãŒã«æ³šæããŠãã ãã-ãããã¡ã€ã©ãŒèªäœã«ãã£ã«ã¿ãŒããªãããšã確èªããŠãã ããã
ãããã¡ã€ã©ãŒã«ãã£ãŠèšé²ãããã€ãã³ãã®ãªã¹ãã¯éåžžã«åºç¯å²ã§ãããã¯ãšãªããã¹ãã®åä¿¡ã«éå®ãããŸããã ãã«ã¹ãã£ã³ãåã³ã³ãã€ã«ãèªåæ¡åŒµããããããã¯ãªã©ãä¿®æ£ããã€ãã³ãããããŸãã
ãµãŒããŒå šäœã®ãŠãŒã¶ãŒã®ã¢ã¯ãã£ããã£ãåæããŸã
äžèšã®ã»ã¯ã·ã§ã³ã®æ å ±ã圹ã«ç«ããªãå Žåã«ãã人çã®ç¶æ³ãçºçããŸãã
ããã€ãã®èŠæ±ã¯ãå®è¡ãã§éåžžã«é·ãæéãã³ã°ã¢ããããçµäºãããã©ããã¯äžæã§ãã åé¡ã®ãããªã¯ãšã¹ããåå¥ã«åæããã«ã¯-ãããã®ã§ãã-æåã«ã©ã®ãããªãªã¯ãšã¹ãã決å®ããå¿ èŠããããŸãã ãããã¡ã€ã©ãŒããã£ããããã®ã¯ç¡æå³ã§ã-éå§ã€ãã³ãããã§ã«èŠéããŠãããã©ã®ãããã®æéåŸ æ©ãããã¯äžæã§ãã
ãŸãã¯ããŠãŒã¶ãŒèŠæ±ããŸã£ãããªããããµãŒããŒèªäœãç©æ¥µçã«äœããããŠãããããããŸãã...
ç解ããŸããã
ã¿ãªããã¯ã¢ã¯ãã£ããã£ã¢ãã¿ãŒãèŠãã«éããããŸããã å€ãã¹ã¿ãžãªã§ã¯ããã®æ©èœãããè±ãã«ãªããŸããã 圌ã¯ã©ã®ããã«ç§ãã¡ãå©ããããšãã§ããŸããïŒ ãActivity Monitorãã«ã¯å€ãã®äŸ¿å©ã§èå³æ·±ããã®ããããŸããã3çªç®ã®ã»ã¯ã·ã§ã³ã¯ããã«ã€ããŠã§ã¯ãããŸããã ã·ã¹ãã ã®è¡šçŸãšæ©èœããçŽæ¥ååŸããå¿ èŠããããã¹ãŠïŒããã³ã¢ãã¿ãŒèªäœã¯ããããã¡ã€ã©ãŒãèšå®ããŠå®è¡ããèŠæ±ã確èªã§ãããšããç¹ã§äŸ¿å©ã§ãïŒã
å¿ èŠãªãã®ïŒ
- sys.dm_exec_sessions-ã»ãã·ã§ã³æ å ±ã æ¥ç¶ãŠãŒã¶ãŒã®æ å ±ã衚瀺ããŸãã æçšãªãã£ãŒã«ãïŒãã®èšäºã®ãã¬ãŒã ã¯ãŒã¯å ïŒ-ãŠãŒã¶ãŒïŒlogin_nameãlogin_timeãhost_nameãprogram_nameã...ïŒã®èå¥ãšäœ¿çšæžã¿ãªãœãŒã¹ã«é¢ããæ å ±ïŒcpu_timeãreadsãwritesãmemory_usageã...ïŒã®ãã£ãŒã«ã
- sys.dm_exec_requests-çŸåšå®è¡äžã®ãªã¯ãšã¹ãã«é¢ããæ
å ±ã ãŸããéåžžã«å€ãã®ãã£ãŒã«ãããããŸãããããå°æ°ãæ€èšããŸãã
- session_id-åã®ãã¥ãŒãšã®éä¿¡çšã®ã»ãã·ã§ã³ã³ãŒã
- start_time-èŠæ±ã®éå§æé
- ã³ãã³ã-ãã®ãã£ãŒã«ãã¯ãååãšã¯ç°ãªãããªã¯ãšã¹ãã§ã¯ãªãå®è¡ããã³ãã³ãã®ã¿ã€ããå«ã¿ãŸãã ã«ã¹ã¿ã ã¯ãšãªã®å Žå-ããã¯éåžžãselect / update / delete /ãªã©ã®ãããªãã®ã§ãã ïŒãŸãã以äžã®éèŠãªæ³šæäºé ïŒ
- sql_handleãstatement_start_offsetãstatement_end_offset-ã¯ãšãªããã¹ããåãåãããã®æ å ±ïŒãã³ãã«ãã¯ãšãªããã¹ãã®éå§äœçœ®ãšçµäºäœçœ®-çŸåšå®è¡ãããŠããéšåã瀺ããŸãïŒã¯ãšãªã«è€æ°ã®ã³ãã³ããå«ãŸããå ŽåïŒã
- plan_handle-çæããããã©ã³ã®ãã³ãã«ã
- blocking_session_id-ãªã¯ãšã¹ãã®å®è¡ã劚ããããã¯ãçºçããå Žå-ããã¯ãåŒãèµ·ãããã»ãã·ã§ã³çªå·ã瀺ããŸã
- wait_typeãwait_timeãwait_resource-åŸ æ©ã®çç±ãšæéã«é¢ããæ å ±ãå«ããã£ãŒã«ãã ããšãã°ãããŒã¿ã®ãããã¯ãªã©ãäžéšã®ã¿ã€ãã®åŸ æ©ã§ã¯ããããã¯ããããªãœãŒã¹ã®ã³ãŒããè¿œå ã§ç€ºãããŸãã
- percent_complete-ååã§ã¯ããããå®äºã®å²åã§ããããšã¯æããã§ãã æ®å¿µãªãããé²è¡ç¶æ³ãæ確ã«äºæž¬ãããŠããããŒã ïŒããã¯ã¢ããã埩å ãªã©ïŒã§ã®ã¿äœ¿çšã§ããŸãã
- cpu_timeãèªã¿åããæžã蟌ã¿ãlogical_readsãgranted_query_memory-ãªãœãŒã¹ã³ã¹ãã
- sys.dm_exec_sql_textïŒsql_handle | plan_handleïŒ ã sys.dm_exec_query_planïŒplan_handleïŒ -ããã¹ãããã³ã¯ãšãªãã©ã³ãåä¿¡ããããã®é¢æ°ã 以äžã§äœ¿çšäŸãæ€èšããŸãã
- sys.dm_exec_query_stats-ã¯ãšãªã«ãã£ãŠåé¡ãããå®è¡ã®èŠçŽçµ±èšã ãªã¯ãšã¹ãã®å®è¡åæ°ãšããªã¯ãšã¹ãã«è²»ãããããªãœãŒã¹ã®æ°ã衚瀺ããŸãã
éèŠãªæ³šæäºé
äžèšã®ãªã¹ãã¯ã»ãã®äžéšã§ãã ãã¹ãŠã®ã·ã¹ãã è¡šçŸãšæ©èœã®å®å šãªãªã¹ãã¯ã ããã¥ã¡ã³ãã«èšèŒãããŠããŸã ã ãŸãã çŸããçµµã®åœ¢ã§äž»èŠãªãªããžã§ã¯ãã®æ¥ç¶å³ããããŸã-A1ã«å°å·ããŠå£ã«æããããšãã§ããŸãã
èŠæ±ããã¹ãããã®ãã©ã³ãããã³å®è¡çµ±èšã¯ãæç¶ãåãã£ãã·ã¥ã«ä¿åãããŠããããŒã¿ã§ãã å®è¡æã«ããããã¯å©çšå¯èœã§ãã å®è¡åŸãå¯çšæ§ã¯ä¿èšŒãããããã£ãã·ã¥ãžã®å§åã«äŸåããŸãã ã¯ãããã£ãã·ã¥ã¯æåã§ã¯ãªã¢ã§ããŸãã å®è£ èšç»ããæµ®ããããšãã«è¡ãããšãæšå¥šãããããšããããŸãããå€ãã®åŸ®åŠãªéãããããŸã...äžè¬çã«ããçŠå¿ããããŸããå°é家ã«çžè«ããããšããå§ãããŸããã
ãã³ãã³ãããã£ãŒã«ã-ãŠãŒã¶ãŒã¯ãšãªã®å Žåãå®è³ªçã«ã¯æå³ããããŸãã-çµå±ã®ãšããããã«ããã¹ããååŸã§ããŸã...ããããããã»ã©åçŽã§ã¯ãããŸããã ãã®ãã£ãŒã«ãã¯ãã·ã¹ãã ããã»ã¹ã«é¢ããæ å ±ãååŸããããã«éåžžã«éèŠã§ãã ååãšããŠãããã€ãã®å éšã¿ã¹ã¯ãå®è¡ããSQLããã¹ãã¯ãããŸããã ãã®ãããªããã»ã¹ã®å ŽåãããŒã æ å ±ã¯ã¢ã¯ãã£ããã£ã®ã¿ã€ãã®å¯äžã®ãã³ãã§ãã åã®èšäºãžã®ã³ã¡ã³ãã§ã¯ããµãŒããŒãäœã§ããžãŒã§ãããã«ã€ããŠã®è³ªåããããŸãããäœãããžãŒã§ã¯ãªãããã«æããŸããããããããã®ãã£ãŒã«ãã®å€ã«çããããã§ãããã ç§ã®å®è·µã§ã¯ãã¢ã¯ãã£ããªã·ã¹ãã ããã»ã¹ã®ãã³ãã³ãããã£ãŒã«ãã¯ãåžžã«å®å šã«ç解ã§ãããã®ã瀺ããŠããŸãããautoshrink/ autogrow / checkpoint / logwriter /ãªã©ã
䜿ãæ¹
å®çšçãªéšåã«ç§»ããŸãããã 䜿çšäŸãããã€ã瀺ããŸãããæ³ååãå¶éãããã®ã§ã¯ãããŸããã ãµãŒããŒã®æ©èœã¯ããã«éå®ãããŸãã-ããªãèªèº«ã®äœããçºæããããšãã§ããŸãã
äŸ1ïŒCPU /èªã¿åã/æžã蟌ã¿/ã¡ã¢ãªãæ¶è²»ããããã»ã¹
ãŸããã©ã®ã»ãã·ã§ã³ãCPUãæãæ¶è²»ããŠããããèŠãŠã¿ãŸãããã sys.dm_exec_sessionsã®æ å ±ã ãã ããCPUäžã®ããŒã¿ïŒããã³èªã¿åããæžã蟌ã¿ïŒã¯çŽ¯ç©ãããŸãã ã€ãŸãããã£ãŒã«ãã®æ°å€ã«ã¯ãæ¥ç¶æéå šäœã®ãåèšããå«ãŸããŸãã ã»ãšãã©ãã¹ãŠã®äººã1ãæåã«æ¥ç¶ããäžåºŠãåæãããªãããšãæããã«ãªããŸãã ããã¯ã圌ãçŸåšã·ã¹ãã ãããŒãããŠãããšããæå³ã§ã¯ãããŸããã
å°ããªã³ãŒãã§åé¡ã解決ã§ããŸããã¢ã«ãŽãªãºã ã¯æ¬¡ã®ããã«ãªããŸãã
- æåã«éžæãè¡ããäžæããŒãã«ã«ä¿åããŸã
- ããããã¡ãã£ãšåŸ ã£ãŠ
- 2åç®ã®ãµã³ããªã³ã°ãè¡ã
- æåã®ãµã³ãã«ãš2çªç®ã®ãµã³ãã«ã®çµæãæ¯èŒããŸã-å·®ã¯ã段èœ2ã§çºçããã³ã¹ããšãŸã£ããåãã§ã
- 䟿å®äžãå·®ãã¯ã¬ãŒã 2ã®æéã§å²ã£ãŠãå¹³åã®ã1ç§ãããã®ã³ã¹ãããååŸã§ããŸãã
ã¹ã¯ãªããã®äŸ
if object_id('tempdb..#tmp') is NULL BEGIN SELECT * into #tmp from sys.dm_exec_sessions s PRINT ' ' -- , .. WAITFOR DELAY '00:00:01'; END if object_id('tempdb..#tmp1') is not null drop table #tmp1 declare @d datetime declare @dd float select @d = crdate from tempdb.dbo.sysobjects where id=object_id('tempdb..#tmp') select * into #tmp1 from sys.dm_exec_sessions s select @dd=datediff(ms,@d,getdate()) select @dd AS [ , ] SELECT TOP 30 s.session_id, s.host_name, db_name(s.database_id) as db, s.login_name,s.login_time,s.program_name, s.cpu_time-isnull(t.cpu_time,0) as cpu_Diff, convert(numeric(16,2),(s.cpu_time-isnull(t.cpu_time,0))/@dd*1000) as cpu_sec, s.reads+s.writes-isnull(t.reads,0)-isnull(t.writes,0) as totIO_Diff, convert(numeric(16,2),(s.reads+s.writes-isnull(t.reads,0)-isnull(t.writes,0))/@dd*1000) as totIO_sec, s.reads-isnull(t.reads,0) as reads_Diff, convert(numeric(16,2),(s.reads-isnull(t.reads,0))/@dd*1000) as reads_sec, s.writes-isnull(t.writes,0) as writes_Diff, convert(numeric(16,2),(s.writes-isnull(t.writes,0))/@dd*1000) as writes_sec, s.logical_reads-isnull(t.logical_reads,0) as logical_reads_Diff, convert(numeric(16,2),(s.logical_reads-isnull(t.logical_reads,0))/@dd*1000) as logical_reads_sec, s.memory_usage, s.memory_usage-isnull(t.memory_usage,0) as [mem_D], s.nt_user_name,s.nt_domain from #tmp1 s LEFT join #tmp t on s.session_id=t.session_id order BY cpu_Diff desc --totIO_Diff desc --logical_reads_Diff desc drop table #tmp GO select * into #tmp from #tmp1 drop table #tmp1
ã³ãŒãã§ã¯ã2ã€ã®ããŒãã«ã䜿çšããŠããŸããïŒtmp-æåã®éžæçšãïŒtmp1-2çªç®ã®éžæçšã ãã®ã¹ã¯ãªããã¯ãæåã®å®è¡æã«ã1ç§ééã§#tmpãšïŒtmp1ãäœæããã³èšå®ããæ®ããå®è¡ããŸãã 以éã®èµ·åã§ã¯ãã¹ã¯ãªããã¯åã®å®è¡ã®çµæãæ¯èŒã®ããŒã¹ãšããŠäœ¿çšããŸãã ãããã£ãŠãåŸç¶ã®èµ·åæã®ã¯ã¬ãŒã 2ã®æéã¯ãã¹ã¯ãªããéå§éã®åŸ æ©æéã«çãããªããŸãã å®çšŒåãµãŒããŒã§ããã«å®è¡ã§ããŸã-ã¹ã¯ãªããã¯ãäžæããŒãã«ãã®ã¿ãäœæãïŒçŸåšã®ã»ãã·ã§ã³å ã§ã®ã¿äœ¿çšã§ããåææã«èªå·±ç Žå£ããŸãïŒãå±éºã䌎ããŸããã
ã¹ã¿ãžãªã§ãªã¯ãšã¹ããå®è¡ããããªãå Žåã¯ããæ°ã«å ¥ãã®ããã°ã©ãã³ã°èšèªã§äœæãããã¢ããªã±ãŒã·ã§ã³ã§ã©ããã§ããŸãã ã³ãŒãã1è¡ã䜿ããã«MS Excelã§ãããè¡ãæ¹æ³ã瀺ããŸãã
[ããŒã¿]ã¡ãã¥ãŒã§ããµãŒããŒã«æ¥ç¶ããŸãã ããŒãã«ãéžæããå¿ èŠãããå Žåã¯ãä»»æã®ããŒãã«ãéžæããŠããå€æŽããŸãã ãã€ãã®ããã«ããããŒã¿ã®ã€ã³ããŒãããã€ã¢ãã°ã衚瀺ããããŸã§ã次ãžãããã³ãå®äºããã¯ãªãã¯ããŸãããã®äžã§ãããããã£...ããã¯ãªãã¯ããŸãã ããããã£ã§ããã³ãã³ãã¿ã€ããã®å€ããSQLãã«å€æŽãããã³ãã³ãããã¹ãããã£ãŒã«ãã«ã¯ãšãªããããã«å€æŽããŠæ¿å ¥ããå¿ èŠããããŸãã
ãªã¯ãšã¹ãã¯å°ãå€æŽããå¿ èŠããããŸãã
- ãSET NOCOUNT ONããè¿œå -ãªããªã Excelã¯è¡æ°ã®ããªãã³ã°ã奜ã¿ãŸããã
- ãäžæããŒãã«ãããå€æ°ããŒãã«ãã«çœ®ãæããŸãã
- é 延ã¯åžžã«1ç§ã§ã-å¹³åå€ã®ãã£ãŒã«ãã¯äžèŠã§ã
Excelçšã®å€æŽãããã¯ãšãª
SET NOCOUNT ON; declare @tmp table(session_id smallint primary key,login_time datetime,host_name nvarchar(256),program_name nvarchar(256),login_name nvarchar(256),nt_user_name nvarchar(256),cpu_time int,memory_usage int,reads bigint,writes bigint,logical_reads bigint,database_id smallint) declare @d datetime; select @d=GETDATE() INSERT INTO @tmp(session_id,login_time,host_name,program_name,login_name,nt_user_name,cpu_time,memory_usage,reads,writes,logical_reads,database_id) SELECT session_id,login_time,host_name,program_name,login_name,nt_user_name,cpu_time,memory_usage,reads,writes,logical_reads,database_id from sys.dm_exec_sessions s; WAITFOR DELAY '00:00:01'; declare @dd float; select @dd=datediff(ms,@d,getdate()); SELECT s.session_id, s.host_name, db_name(s.database_id) as db, s.login_name,s.login_time,s.program_name, s.cpu_time-isnull(t.cpu_time,0) as cpu_Diff, s.reads+s.writes-isnull(t.reads,0)-isnull(t.writes,0) as totIO_Diff, s.reads-isnull(t.reads,0) as reads_Diff, s.writes-isnull(t.writes,0) as writes_Diff, s.logical_reads-isnull(t.logical_reads,0) as logical_reads_Diff, s.memory_usage, s.memory_usage-isnull(t.memory_usage,0) as [mem_Diff], s.nt_user_name,s.nt_domain from sys.dm_exec_sessions s left join @tmp t on s.session_id=t.session_id
ããã»ã¹åç
![](https://habrastorage.org/web/b83/864/fca/b83864fcaf77450fb3487a97f0dc3fc7.png)
![](https://habrastorage.org/web/38a/9cd/506/38a9cd506c514bd5aebf499edba2643a.png)
![](https://habrastorage.org/web/f8b/7fc/fb0/f8b7fcfb0d4e4dd992d2162a3b743e67.png)
çµæ
![](https://habrastorage.org/web/2e9/8b3/58c/2e98b358ccfc4f03a9200cd21ccb815e.png)
ããŒã¿ãExcelã«ããå Žåãå¿ èŠã«å¿ããŠäžŠã¹æ¿ããããšãã§ããŸãã æ å ±ãæŽæ°ããã«ã¯ããæŽæ°ããã¯ãªãã¯ããŸãã æžç±ã®èšå®ã§ã¯ã䟿å®äžããäžå®æéåŸã«èªåæŽæ°ããšãéãããšãã«æŽæ°ããèšå®ã§ããŸãã ãã¡ã€ã«ãä¿åããŠååã«è»¢éã§ããŸãã ãããã£ãŠã
äŸ2ïŒã»ãã·ã§ã³ããªãœãŒã¹ãè²»ãããã®
ãã®ãããåã®äŸã§ã¯ãåé¡ã®ããã»ãã·ã§ã³ãç¹å®ããŸããã 次ã«ã圌ããäœãããŠããããå€æããŸãããã sys.dm_exec_requestsãšãããã¹ãããã³ã¯ãšãªãã©ã³ãååŸããããã®é¢æ°ã䜿çšããŸãã
ã»ãã·ã§ã³çªå·ã«ãããªã¯ãšã¹ãããã¹ããšãã©ã³
DECLARE @sql_handle varbinary(64) DECLARE @plan_handle varbinary(64) DECLARE @sid INT Declare @statement_start_offset int, @statement_end_offset INT, @session_id SMALLINT -- - SELECT @sid=182 -- IF @sid IS NOT NULL SELECT @sql_handle=der.sql_handle, @plan_handle=der.plan_handle, @statement_start_offset=der.statement_start_offset, @statement_end_offset=der.statement_end_offset, @session_id = der.session_id FROM sys.dm_exec_requests der WHERE der.session_id=@sid -- DECLARE @txt VARCHAR(max) IF @sql_handle IS NOT NULL SELECT @txt=[text] FROM sys.dm_exec_sql_text(@sql_handle) PRINT @txt -- / IF @plan_handle IS NOT NULL select * from sys.dm_exec_query_plan(@plan_handle) -- / IF @plan_handle IS NOT NULL SELECT dbid, objectid, number, encrypted, CAST(query_plan AS XML) AS planxml from sys.dm_exec_text_query_plan(@plan_handle, @statement_start_offset, @statement_end_offset)
ãªã¯ãšã¹ãã®ã»ãã·ã§ã³çªå·ã眮ãæããŠå®è¡ããŸãã å®è¡åŸã[çµæ]ã¿ãã«èšç»ïŒ2ã€ïŒã¯ãšãªå šäœã®æåãçŸåšã®ã¹ãããã®2çªç®-ã¯ãšãªã«è€æ°ã®ã¹ããããããå ŽåïŒãããã³[ã¡ãã»ãŒãž]ã¿ãã®ã¡ãã»ãŒãžããã¹ãã衚瀺ãããŸãã ãã©ã³ã衚瀺ããã«ã¯ãURLã®åœ¢åŒã®ããã¹ãã®è¡ãã¯ãªãã¯ããå¿ èŠããããŸãã ãã©ã³ã¯å¥ã®ã¿ãã§éããŸãã ãã©ã³ãã°ã©ãã£ã«ã«ãªåœ¢åŒã§ã¯ãªããxml-textã®åœ¢åŒã§éãããããšããããŸãã ããã¯ãããããã¹ã¿ãžãªããŒãžã§ã³ããµãŒããŒãããäœãããã§ãã çµæã®xmlãsqlplanæ¡åŒµåãæã€ãã¡ã€ã«ã«ä¿åããæåã®è¡ãããããŒãžã§ã³ããšããã«ãããåé€ããŠãããåå¥ã«éããŸãã ããã圹ã«ç«ããªãå Žåã¯ã2016ã¹ã¿ãžãªãMSã®Webãµã€ãã§å ¬åŒã«ç¡æã§å ¥æã§ããããšãæãåºãããŠãã ããã
åç
![](https://habrastorage.org/web/822/1af/1df/8221af1dfd9a4ec0bb126c29518b3d7b.png)
![](https://habrastorage.org/web/24d/eb9/9ba/24deb99bae1545fea459c5ecc70207e4.png)
![](https://habrastorage.org/web/228/04e/b4b/22804eb4bdb7492c8853316eaa0a27b1.png)
æããã«ãçµæã®èšç»ã¯ãè©äŸ¡ããããŸãããªããªãã ãªã¯ãšã¹ãã¯ãŸã é²è¡äžã§ãã ãã ããããã©ãŒãã³ã¹ã®çµ±èšæ å ±ã¯ååŸã§ããŸãã sys.dm_exec_query_statsãã¥ãŒãããã³ãã«ã«ãããã£ã«ã¿ãŒãšãšãã«äœ¿çšããŸãã
åã®ãªã¯ãšã¹ãã®æåŸã«è¿œå
-- IF @sql_handle IS NOT NULL SELECT * FROM sys.dm_exec_query_stats QS WHERE QS.sql_handle=@sql_handle
å®è¡åŸãçµæã«ã¯ãå®è¡ãããã¯ãšãªã®ã¹ãããã«é¢ããæ å ±ïŒå®è¡ãããåæ°ãšè²»ãããããªãœãŒã¹ïŒã衚瀺ãããŸããæ å ±ã¯ãå®è¡åŸã«çµ±èšæ å ±ã«å°éããŸã-æ®å¿µãªãããããã§ã®æåã®å®è¡ã§ã¯ç©ºã§ããçµ±èšã¯ãŠãŒã¶ãŒã«é¢é£ä»ããããŠããŸãããããµãŒããŒå šäœã§å®è¡ãããŸããç°ãªããŠãŒã¶ãŒãåããªã¯ãšã¹ããå®è¡ãããšãçµ±èšã¯ãã¹ãŠã®åèšã«ãªããŸãã
äŸ3ïŒå šå¡ãèŠãããšãã§ããŸã
èæ ®ãããã·ã¹ãã è¡šçŸãšæ©èœã1ã€ã®ãªã¯ãšã¹ãã§çµåããŸããããããã¯ãç¶æ³å šäœãè©äŸ¡ããã®ã«äŸ¿å©ã§ãã
-- SELECT LEFT((SELECT [text] FROM sys.dm_exec_sql_text(der.sql_handle)),500) AS txt --,(select top 1 1 from sys.dm_exec_query_profiles where session_id=der.session_id) as HasLiveStat ,der.blocking_session_id as blocker, DB_NAME(der.database_id) AS , s.login_name, * from sys.dm_exec_requests der left join sys.dm_exec_sessions s ON s.session_id = der.session_id WHERE der.session_id<>@@SPID -- AND der.session_id>50
ãªã¯ãšã¹ãã«ã¯ãã¢ã¯ãã£ããªã»ãã·ã§ã³ã®ãªã¹ããšãªã¯ãšã¹ãã®ããã¹ãã衚瀺ãããŸããã·ã¹ãã ããã»ã¹ã®å Žåãéåžžã¯ãªã¯ãšã¹ãã¯ãããŸãããããã³ãã³ãããã£ãŒã«ãã¯å ¥åãããŠããŸããããã¯ãšæåŸ å€ã«é¢ããæ å ±ã衚瀺ãããŸãããã®ã¯ãšãªãäŸ1ãšäº€å·®ãããŠãè² è·ã§äžŠã¹æ¿ããããšãã§ããŸãããã ãã泚æããŠãã ãã-ã¯ãšãªããã¹ãã¯éåžžã«å€§ãããªãå¯èœæ§ããããŸããããããäžæ¬ã§éžæãããšããªãœãŒã¹ã倧éã«æ¶è²»ããå¯èœæ§ããããŸãããããŠããã©ãã£ãã¯ã¯å€§ãããªããŸãããã®äŸã§ã¯ãåä¿¡ãããªã¯ãšã¹ããæåã®500æåã«å¶éããŸãããããã©ã³ã®åä¿¡ãéå§ããŸããã§ãããgithubã«
æçš¿ããããªã¯ãšã¹ãã®äŸã
ãããã«
ä»»æã®ã»ãã·ã§ã³ã®ã©ã€ãã¯ãšãªçµ±èšãååŸãããšäŸ¿å©ã§ãã補é å ã«ãããšãçŸæç¹ã§ã¯ãçµ±èšæ å ±ã®ç¶ç¶çãªåéã«ã¯å€§éã®ãªãœãŒã¹ãå¿ èŠã§ãããããããã©ã«ãã§ã¯ç¡å¹ã«ãªã£ãŠããŸããå«ããããšã¯åé¡ã§ã¯ãããŸããããè¿œå ã®æäœã¯ããã»ã¹ãè€éã«ããå®éçãªå©ç¹ãæžãããŸãããããããå¥ã®èšäºã§ãããè©Šã¿ãŸãã
ãã®ããŒãã§ã¯ããŠãŒã¶ãŒã¢ã¯ã·ã§ã³ã®åæã«ã€ããŠæ€èšããŸãããã¹ã¿ãžãªèªäœã®æ©èœã䜿çšããããããã¡ã€ã©ãŒã䜿çšãããã·ã¹ãã è¡šçŸã«çŽæ¥ã¢ã¯ã»ã¹ãããªã©ãããã€ãã®æ¹æ³ãè©ŠããŸããããããã®ãã¹ãŠã®æ¹æ³ã䜿çšãããšãèŠæ±ãæºããããã®ã³ã¹ããèŠç©ãããå®è¡èšç»ãååŸã§ããŸãããããã®ããããã«éå®ããå¿ èŠã¯ãããŸãã-ããããã®æ¹æ³ã¯ããªãã®ç¶æ³ã§äŸ¿å©ã§ããçµã¿åãããŠã¿ãŠãã ããã
ä»åŸã¯ãã¡ã¢ãªãšãããã¯ãŒã¯ã®è² è·ãããã³ãã®ä»ã®ãã¥ã¢ã³ã¹ã®åæããããŸãããããã«è¡ããŸããããããã«ããã€ãã®èšäºã®è³æã
ãã®èšäºã®å·çãæäŒã£ãŠãããVladã«æè¬ããŸãã