ããŒã¿ããŒã¹æé
ããŒã¿ããŒã¹ã®ããã©ãŒãã³ã¹ã®æé©åã«ã€ããŠè©±ãåã«ããã®ããã©ãŒãã³ã¹ã®æž¬å®æ¹æ³ã説æããå¿ èŠããããŸããç¹ã«ãããŒã¿ããŒã¹ã«æ¥ç¶ããŠããå€ãã®äººã ã¯äŸç¶ãšããŠãå¿çæéãã€ã³ãžã±ãŒã¿ãæã£ãŠãããããå€ãã®äººã ã¯DBMSããã©ãŒãã³ã¹ã®æ®éçãªå°ºåºŠãšèããããšã«æ £ããŠããŸãã
ããããå¿çæéã®åé¡ã¯ãæ®å¿µãªããçžå¯Ÿçãªããšã§ãã ãšã³ããŠãŒã¶ãŒãã·ã¹ãã 管çè ããããã¯ãŒã¯ç®¡çè ãããã³ããŒã¿ããŒã¹ç®¡çè ã«ãšã£ãŠãããã¯ç°ãªããçŽç²ãªDBMSã®å¿çæéã ãã§ãªããã¢ããªã±ãŒã·ã§ã³ãµãŒããŒäžã®ããžãã¹ããžãã¯ã³ãŒãã®ããã©ãŒãã³ã¹ãWebã€ã³ã¿ãŒãã§ã€ã¹ã®ããã©ãŒãã³ã¹ããããã¯ãŒã¯ã€ã³ãã©ã¹ãã©ã¯ãã£ã³ã³ããŒãã³ãã®çžäºäœçšãããã³ãã¡ã€ã¢ãŠã©ãŒã«ã«ãäŸåããŸããããŒããã©ã³ãµãªã©ããããã£ãŠãããŒã¿ããŒã¹ã®ããã©ãŒãã³ã¹ãé©åã«è¡šãã«ã¯ãDBMSãå®è¡ã«è²»ãããæéãè¡šãããŒã¿ããŒã¹æéã€ã³ãžã±ãŒã¿ã䜿çšããå¿ èŠããããŸãã ããŒã¿ããŒã¹ã«å°çããŠããçµæã®éžæã®æåŸã®ãã©ã°ã¡ã³ããŸã§ãç¹å®ã®åŒã³åºãïŒèŠæ±ïŒãæºãããŸãã ããŒã¿ããŒã¹æéã®ããå³å¯ãªå®çŸ©ã¯ãã¢ã¯ãã£ããªå®è¡äžããŸãã¯DBMSåŒã³åºããå®äºãããŸã§ã¢ã¯ãã£ããªåŸ æ©äžã®ãŠãŒã¶ãŒããã»ã¹ãè²»ãããåèšæéã§ãã
ããŒã¿ããŒã¹æéã®æŠå¿µã¯ãEnterprise Managerã®[ãããã¢ã¯ãã£ããã£]ããŒãžïŒå³1ïŒã§å®å šã«ç€ºãããŠããŸããããã§ã¯ãã¢ã¯ãã£ããªã»ãã·ã§ã³ã®æ°ãšãå€è²ã°ã©ãã®åœ¢åŒã§ãDBMSæéã®ååžãã€ãŸã å®éã«ã¯ããŒã¿ããŒã¹æéã
ã«ã¹ã¿ãã€ãºããŒã«ïŒæšæ¥ãšä»æ¥
以åã¯ãDBMSãã¥ãŒãã³ã°ããã»ã¹ã¯æéã®äžãããŸãããããªãã®ã§ãã-管çè ã¯ããªããã£ãã€ã¶ãŒã®åäœã«åœ±é¿ãäžããå¯èœæ§ã®ããç¹å®ã®ãã¥ãŒãã³ã°ãã©ã¡ãŒã¿ãŒãé©çšããããšããŠãå€ãå€åãããåžžã«å€åã«æ°ä»ããªããšã³ããŠãŒã¶ãŒããã®ãã£ãŒãããã¯ã«çŠç¹ãåœãŠãŸããææªã®åŽé¢ã
Find-Fix-ValidateãšåŒã°ããææ°ã®ããã©ãŒãã³ã¹ãã¥ãŒãã³ã°æ¹æ³ïŒå³2ïŒã«ãããDBMSããã©ãŒãã³ã¹åæããŒã«ã䜿çšããŠããã©ãŒãã³ã¹ã®åé¡ãæ£ç¢ºã«èšºæããTuning Packã«å«ãŸããèªåãã¥ãŒãã³ã°ããŒã«ã䜿çšããŠãããã解決ããããã±ãŒãžReal Application Testingã«å«ãŸãããã¹ãã
åé¡ãæ¢ããŠããŸã
ãã¡ãããOracle Database 12cãå«ãOracle DBMSã®ææ°ããŒãžã§ã³ã¯ãæåéããããã©ãŒãã³ã¹ã»ã³ãµãŒã«ãã ãã£ãŠããŸããããŸããäž»ãªäœæ¥ïŒã¯ãšãªã®å®è¡ãæé©åãçµæã®åºåããŠãŒã¶ãŒã¢ã¯ã·ã§ã³ã®èª¿æŽïŒã«å ããŠã圌ããäœãããŠããããåžžã«å ±åããŸããã³ãŒã«ã®åŸ æ©ã€ãã³ããšæéç¹æ§ã ãããã£ãŠãDBMSãç¹å®ã®ã¢ã¯ãã£ããã£ã«è²»ãããæéãåžžã«æ£ç¢ºã«ææ¡ããŠããŸãã
Oracleã¯ãã®æ©äŒã«éåžžã«åªé ã«ã¢ãããŒããã蚺ææ å ±ã«ã¢ã¯ã»ã¹ããããã®ç¬èªã®èšèªãçºæããªãã£ãããSQLèšèªãšEnterprise Manager 12cã®ã°ã©ãã£ã«ã«ã€ã³ã¿ãŒãã§ã€ã¹ã䜿çšããŠã¢ã¯ã»ã¹ã§ããç¹å¥ãªããŒã¿ããŒã¹ããŒãã«ã®åœ¢åŒã§èšèšãããšèšããªããã°ãªããŸããã ãããã£ãŠãOracle DBMSã®ãŠãŒã¶ãŒã®ããŸããŸãªåé¡ã®æ ¹æ¬åå ã®ç£èŠã蚺æãããã³æ€çŽ¢ãæ倧éã«ç°¡çŽ åãããŸãã
å¿ èŠãªæ å ±ãå«ãå€ãã®ããŒãã«ããããŸããããã§ã«æ°çŸã®ããŒãã«ãããããããã®çµ±èšã¯ããªãã°ãã°ãã§çŽ¯ç©çã§ãã ãããããã¡ãããããŒã¿ãæ¯èŒåæããããã®ç¹å¥ãªèšºæãªããžããªèªåã¯ãŒã¯ããŒããªããžããªïŒAWRïŒãéçºãããŠãããããã€ã³ãžã±ãŒã¿ãæåã§æ¯èŒããå¿ èŠã¯ãããŸãããå®æçã«ïŒããã©ã«ãã§ã¯1æéããšã«ïŒããŒãã«ãã蚺ææ å ±ãåé€ãããŸã-ããŸããŸãªåŸ æ©ã¯ã©ã¹ãã¡ããªãã¯ãåºæ¬çµ±èšã SQLã¯ãšãªãªã©ã®çµ±èšã AWRããŒã¿ã¯ããŒã¿ããŒã¹ã«ä¿åããã蚺æã¬ããŒãã«äœ¿çšãããŸãã AWR Baselinesãã¯ãããžãŒã䜿çšãããšãå¶æ¥æ¥ãã¬ããŒãæéã絊äžãªã©ã®å¶æ¥æŽ»åãAWRã€ã¡ãŒãžã®ééãšæ¯èŒããããšã§ãã³ãããŒã¯æéééãäœæããéžæããééã®ããã©ãŒãã³ã¹ã®æ¯èŒåæãå®æçã«å®è¡ã§ããŸãã ãã®ãã¯ãããžãŒã«ãããè² è·å€åãããè¿ éã«åæã§ããããŒã¿ããŒã¹ã®ããã©ãŒãã³ã¹ã蚺æãããããªããŸãã
AWRã¬ããŒãã¯ãããã©ã«ãã§HTML圢åŒã§ä¿åãããŸãïŒå³3å·ŠïŒã æ°ããã¿ã€ãã®ã¬ããŒãããããŸã-ããã¯ããã©ãŒãã³ã¹ãããšåŒã°ããŸã-ããŒã¿ããŒã¹ã®çµ±èšã䟿å©ã§èŠèŠçãªã°ã©ãã£ãã¯åœ¢åŒã§è¡šç€ºããŸãïŒå³3å³ïŒã
Oracle Database 12.1.0.2ã§ã¯ãAWRã¬ããŒãã®ãã1ã€ã®éåžžã«äŸ¿å©ãªåœ¢åŒã§ããActive-HTMLã¬ããŒããå°å ¥ãããŠããŸãã Enterprise Managerã®ããã²ãŒã·ã§ã³æ©èœãšããªã«ããŠã³æ©èœãçµã¿åãããŠãªãã©ã€ã³åæãè¡ããä»ã®ã¢ã¯ãã£ãã¬ããŒããšåæ§ã«ä¿åããã³ã¡ãŒã«éä¿¡ã§ããŸããEnterpriseManagerã§è¡šç€ºããå¿ èŠã¯ãããŸããã
AWR Warehouseã¯ãAWRããŒã¿ã®é·æä¿åçšã®äžå€®ãªããžããªã§ãã å¥ã®å°çšããŒã¿ããŒã¹ã«ä¿åãããŸã-ãã®ããã«ãAWRç»åã®ä¿åæéãå°ãªããšãç¡æéã«å»¶é·ããŠå±¥æŽãåæãã1幎åã2幎åãªã©ã確èªã§ããŸããAWRWarehouseã¯ãã¹ãŠã®ãšã³ã¿ãŒãã©ã€ãºããŒã¿ããŒã¹ããã©ãŒãã³ã¹ç»é¢ã«çµ±åãããŠããŸããããŒãžã£ã§ãããä»»æã®æéã®æ¯èŒã¬ããŒããååŸã§ããŸãã
Active Session HistoryïŒASHïŒæ©èœã¯ãOracle Database 10gã§å°å ¥ãããç£èŠããŒã«ã§ãã ASHã¯ãã¢ã¯ãã£ããªã»ãã·ã§ã³ã®ã¹ããŒã¿ã¹ã®ã¹ãããã·ã§ãããæ¯ç§ååŸããç¹å¥ãªã¡ã¢ãªæ§é ã«æžã蟌ã¿ãŸãïŒè¡š1ãåç §ïŒã å®éã«ã¯ãããã¯ãªã¢ã«ã¿ã€ã ã®ç£èŠã§ãã Enterprise Manager 12cã¯ãASH AnalyticsãšåŒã°ããéåžžã«ãŠãŒã¶ãŒãã¬ã³ããªãŒãªã°ã©ãã£ã«ã«ã»ãã·ã§ã³ãActive Session Historyã«å°å ¥ããŸãã
ããŒã¿ããŒã¹ã«çµã¿èŸŒãŸããŠããèªåããŒã¿ããŒã¹èšºæã¢ãã¿ãŒïŒADDMïŒadvisorã¯ã蚺æã解éããããã©ãŒãã³ã¹äœäžã®æ ¹æ¬åå ãèŠã€ããã®ã«åœ¹ç«ã¡ãŸãã AWRã¬ããŒãèªäœã¯ãç°¡åã«æ··åãããããªãèšå€§ãªããã¥ã¡ã³ãã§ãã ADDMã¯ãã¯ãŒã¯ããŒããªããžããªã«æ ŒçŽãããŠããçµ±èšã解éããåé¡ã®æ ¹æ¬åå ãèŠã€ããã®ã«åœ¹ç«ã¡ãŸãã ADDMã¯ãããŒã¿ããŒã¹æéã®æ¶è²»ãåæãããããã»ãã·ã§ã³ã¢ã¯ãã£ããã£ãšçžé¢ãããç¹å®ã®æšå¥šäºé ãå«ãã¬ããŒããçæããŸãã ADDMãããŒã¿ããŒã¹ã®ããã©ãŒãã³ã¹ã®åé¡ãéç¥ããã ãã§ãªããåé¡ã®åå ãç¹å®ãã圱é¿ã®çšåºŠã«å¿ããŠã©ã³ã¯ä»ãããããšãéèŠã§ãã
æåŸã«ãOracle Database 12ã§ã¯ãReal-Time ADDMã®æ¹è¯ããŒãžã§ã³ãå°å ¥ãããŸãããããã¯ãããã€ãã®ãã©ã¡ãŒã¿ã®ãããå€ãè¶ ãããšèªåçã«èµ·åããŸããããšãã°ãã»ãã·ã§ã³æ°ãéå°ãªCPUæéã®æ¶è²»ã競åããã³ããŒã¿ããŒã¹ã®ããã©ãŒãã³ã¹ãäœäžããããã®ä»ã®ã€ãã³ãã§ãã æ°ããReal-Time ADDMã¯ããªã¢ã«ã¿ã€ã ã§ã®åé¡ã®èªåæ€åºãšåæãæ·±å»ãªããã©ãŒãã³ã¹åé¡ã®èªå蚺æãç¹é·ãšããŠããŸãã
ADDMã¬ããŒãã¯ãå±¥æŽåæã®ããã«AWRãªããžããªã«æ ŒçŽãããŸãã Real-Time ADDMã¯ç·æ¥ç£èŠããŒã«ã§ããããããŒã¿ããŒã¹ã«æ£åžžã«æ¥ç¶ã§ããªãå ŽåïŒããããããã¯ãã®å ŽåïŒãç¹å¥ãªèšºææ¥ç¶ãå®è¡ããDBMSã¡ã¢ãªããçŽæ¥èšºæãåé€ã§ããŸãã ããŒã¿ããŒã¹ã«çµã¿èŸŒãŸããã¢ããã€ã¶ãŒã¯ãåé¡ã®èšºæãšåå ã®ç¹å®ã«åœ¹ç«ã¡ãŸãã æåã®ããã©ãŒãã³ã¹åæã«äŸ¿å©ãªåœ¢åŒã§AWRããã³ASHããã®æ å ±ãå«ãŸããŠãããããADDMã¬ããŒãã䜿çšããŠåæãéå§ããããšããå§ãããŸãã
Enterprise Managerã§ã®SQLã¯ãšãªã®å®è¡ã®è©³çŽ°ãªåæã®ããã«ããªã¢ã«ã¿ã€ã SQLã¢ãã¿ãªã³ã°ãŠã£ã³ããŠããããç¹å®ã®SQLã¯ãšãªã®å®è¡æ¹æ³ãå®è¡ããããã©ã³ãããã³å®è¡ãã©ã³ã®ã©ã®ã¹ãããã§ã»ãšãã©ã®ãªãœãŒã¹ãæ¶è²»ãããããç£èŠã§ããŸãã ãªã¢ã«ã¿ã€ã SQLã¢ãã¿ãªã³ã°ã«ã¯ãå®éã®è¡ãæšå®è¡ãªã©ãéåžžã«èå³æ·±ãææšãããã€ããããŸãã ãªã¢ã«ã¿ã€ã SQLã¢ãã¿ãªã³ã°ã䜿çšããŠãPL / SQLããã·ãŒãžã£ã®å®è¡ãå¶åŸ¡ããããšãã§ããŸãã
åé¡ãä¿®æ£ããŸã
å®è·µã§ã¯ãã»ãšãã©ã®ããŒã¿ããŒã¹ããã©ãŒãã³ã¹ã®åé¡ã¯ãSQLã¯ãšãªãåå ã§çºçããããšã瀺ãããŠããŸãã誀ã£ãŠèšè¿°ãããŠããããããŸããŸãªçç±ã§éå¹ççã«å®è¡ãããŠããŸãã äžå®å šãªçµ±èšããªããã£ãã€ã¶ã®æ°ããããŒãžã§ã³ãäžæ£ãªãã©ã¡ãŒã¿ã競å-SQLã¯ãšãªãæ£ããå®è¡ãããªãå Žåã®çç±ã¯1000ãããŸãã Oracle SQL Tuning AdvisorããŒã«ã¯ãåãã³ã¹ãããŒã¹ãªããã£ãã€ã¶ãŒïŒCBOïŒSQLã¯ãšãªãªããã£ãã€ã¶ãŒã䜿çšããŠããã ãç¹å¥ãªãã¥ãŒãã³ã°ã¢ãŒãã§ãåé¡ã®ããSQLã¯ãšãªã®ããã©ãŒãã³ã¹ãæ¹åããããã®æšå¥šäºé ãæäŸããŸãã åæã§ã¯ãå®éã®AWRããŒã¿ãšå±¥æŽAWRããŒã¿ã䜿çšãã代æ¿ã¯ãšãªå®è¡ãã©ã³ãç¹å®ããŸãã 䞊åSQLãããã¡ã€ã«ã䜿çšããŠãããšãã«ãSQLã¯ãšãªã2å以äžå éãããå ŽåãSQL Tuning Advisorã¯ãããæšå¥šããŸãã ãŸããSQLãã¥ãŒãã³ã°ã»ã¢ããã€ã¶ã¯æ§ã ãªæšå¥šäºé ããã§ãã¯ããã©ã®SQLååããåæããããããæ§æããããã«è¡ãããæšå¥šäºé ã«é¢ããEnterprise Managerã®ã¬ããŒããåãåããŸãã
Oracle Database 12cã§å°å ¥ãããSQL Access AdvisorããŒã«ã®æ°ããããŒãžã§ã³ã¯ã倧éã®SQLè² è·ã®åææéãå€§å¹ ã«åæžã§ããŸãã SQL Access Advisorã¯åäžã®SQLã¹ããŒãã¡ã³ããåæããŸããããäžå®æéã®SQLããŒããåæããŸãã çŸåšã§ã¯ãçç£æ§ãå€§å¹ ã«åäžããããŒã¿ããŒã¹ãªããžã§ã¯ãã®åæã10åé«éã«ãªããŸããã
SQLã¢ã¯ã»ã¹ã»ã¢ããã€ã¶ãšSQLãã¥ãŒãã³ã°ã»ã¢ããã€ã¶ã®äž¡æ¹ã«ã¯ãEnterprise Managerã®ã°ã©ãã£ã«ã«ãªã€ã³ã¿ãã§ãŒã¹ããããŸãã
çµæã確èªãã
Real Application Testingã®äžéšã§ããSQLããã©ãŒãã³ã¹ã»ã¢ãã©ã€ã¶ïŒSPAïŒããŒã«ã¯ãOracle Database 10.2ã11gããã³12cã§ãã¹ããæäŸããSQLã¬ã¹ãã³ã¹æéã«å¯ŸããããŒã¿ããŒã¹ã»ã·ã¹ãã ã®å€æŽã®åœ±é¿ãäºæž¬ããåSQLãã¹ãè² è·å®è¡ã®SQLããã©ãŒãã³ã¹çµæã決å®ããå·®ç°ãåæããŸãç¹å®ã®SQLã¯ãšãªã®ããã©ãŒãã³ã¹çµæãæ¯èŒããŸãã åæã«ãSQLãã¥ãŒãã³ã°ã»ããïŒSTSïŒã§SQLã®è² è·ããã£ããã£ããå Žåãäœæ¥ã·ã¹ãã ã®ããã©ãŒãã³ã¹ãžã®åœ±é¿ã¯æå°éã§ãã
æ°ããSQLããã©ãŒãã³ã¹ã¢ãã©ã€ã¶ãŒæ©èœ-Enterprise Managerã®SPAã¯ã€ãã¯ãã§ãã¯ã䜿çšãããšãã¯ãšãªãã©ã³ã«åœ±é¿ãããªããã£ãã€ã¶ãŒãã©ã¡ãŒã¿ãŒãªã©ã®å€æŽããã°ãããã§ãã¯ã§ããŸãã ããšãã°ãã»ããã«1,000件ã®ãªã¯ãšã¹ããããããã®çµæããã®ãã¡10件ã®ã¿ãèšç»ãå€æŽããå ŽåãSPAã¯ã€ãã¯ãã§ãã¯ã¯ãŸãããã10件ã®ãªã¯ãšã¹ããèå¥ãããããã®æ¯èŒãã¹ããå®æœããŸãã
ãããšã¯å¥ã«ãããã¢ã¯ãã£ããªã¢ãããŒããã€ãŸã DBMSã®åé¡ãé²ãæ¹æ³ã«ã€ããŠ-ã¯ãšãªãã©ã³ã®ç®¡çã«ã€ããŠã§ãããããã¯ãã®èšäºã®ç¯å²å€ã®å¥ã®ãããã¯ã§ãã
æ å ±æº
ããã©ãŒãã³ã¹ãã¥ãŒãã³ã°ã®è©³çŽ°ã«ã€ããŠã¯ããŸãããã®èšäºã®ãã¬ãŒã ã¯ãŒã¯ã§èª¬æãããã¹ãŠã®æŠèŠã説æããããã¥ã¡ã³ãã2 Day + Performance Tuning Guideããã¯ãããOracle Databaseã®ããã¥ã¡ã³ããæ€èšããå¿ èŠããããŸãã ããã©ãŒãã³ã¹ãã¥ãŒãã³ã°ã¬ã€ãã¯ãããŒã¿ããŒã¹ã€ã³ã¹ã¿ã³ã¹ã¬ãã«ã§ã®ããã©ãŒãã³ã¹ã®ãã¥ãŒãã³ã°ã«çŠç¹ãåœãŠãŠããŸãã SQLã¯ãšãªã®ãã¥ãŒãã³ã°ã®è©³çŽ°ã«ã€ããŠã¯ãSQLãã¥ãŒãã³ã°ã¬ã€ããåç §ããŠãã ããã å¥ã®ããã¥ã¡ã³ãã§ãããã¹ãã¬ã€ãã¯ãReal Application Testingããã±ãŒãžãšSQL Performance Analyzerã®ããŸããŸãªäœ¿çšæ³ã«é¢ããã¬ã€ãã§ãã ãŸããOracle Database 12cïŒPerformance Management and TuningãšããOracle Universityã§ã®5æ¥éã®ãã¬ãŒãã³ã°ã³ãŒã¹ãåè¬ããããšããå§ãããŸãã