OracleããŒã¿ããŒã¹ãããã»ã©é«éã«ããŠããã®ã¯ãªãã§ããïŒ
ããŒã¿ããŒã¹å ã®ããŒã¿ãå€æŽãããšãå€æŽã¯æåã«ãã£ãã·ã¥ã«éããã次ã«ããã€ãã®ã¹ã¬ããïŒçªå·ãæ§æå¯èœïŒã§éåæçã«ãã£ã¹ã¯ã«æžã蟌ãŸããŸãã åæã«ãç¹å¥ãªãã°ïŒæäœãã°ãã¡ã€ã«ïŒãæžã蟌ãŸããããããã£ãã·ã¥ãããã£ã¹ã¯ã«ãã©ãã·ã¥ããæéããªãå Žåã¯ãé害åŸã«ããŒã¿ãå埩ã§ããŸãã ãã®æ¹æ³ã§ã¯ããã¹ãŠã1ã€ã®ãã¡ã€ã«ã§ãã£ã¹ã¯ã«é çªã«æžã蟌ãŸãã2ã€ä»¥äžã®ãã£ã¹ã¯ã«äžŠè¡ããŠæžã蟌ãŸããããã«æ§æã§ãããããé床ãäžããããšãã§ããŸããããã«ãããå€æŽã®æ倱ã«å¯Ÿããä¿è·ã®ä¿¡é Œæ§ãåäžããŸãã èšè¿°ããããã¡ã€ã«ãããã€ãããããããã¯åã§äœ¿çšãããŸãïŒãã°ãã¡ã€ã«ã®1ã€ã§ä¿è·ãããŠãããã¹ãŠã®ããŒã¿ãããã¯ã°ã©ãŠã³ãããã»ã¹ã«ãã£ãŠãã£ã¹ã¯äžã®ããŒã¿ãããã¯ã«æžã蟌ãŸãããšããã«ããã®ãã°ãã¡ã€ã«ãåå©çšã§ããŸãã ãããã£ãŠãããã«ããããµãŒã¯ã«å ã§äœ¿çšãããå°ããªãã°ãã¡ã€ã«å°çšã®è¶ é«éã®å°ããªãã£ã¹ã¯ã䜿çšããããšã§ãããçšåºŠã®ç¯çŽãå¯èœã«ãªããŸãã
éåžžã¯ããã£ã¹ã¯äžã®ãã¡ã€ã«ã«äœããä¿åããããã«æ±ãããããšãã«ããã«ã€ããŠè©±ããŸãããã¹ãŠã®ããŒã¿ãé çªã«æžã蟌ããããããŒããã£ã¹ã¯ã®ããããèµ°ãåã£ãŠã©ã³ãã ãããã¯ãæ¢ãå¿ èŠããªãããããé«éãã«ãªãããã§ãã ç§ã¯ãããã§äœãåŸãããªããšäž»åŒµããŸããé ããã£ã¹ã¯ã«æžã蟌ã¿ãŸããããã¯ãä»ã®å€ãã®ããã»ã¹ã倧éã®ç°ãªããã°ãæžã蟌ãããã«ç©æ¥µçã«äœ¿çšããå¯èœæ§ãé«ãããã§ããäžèšã
ããŒã¿åŸ©æ§ã¡ã«ããºã
Oracle DBMSã§äžèšã®æäœãã°ãã¡ã€ã«ã®ã¢ãŒã«ã€ããæå¹ã«ãããšããã¹ãŠã®å€æŽãã¢ãŒã«ã€ããããŸãã ãããã£ãŠãããŒã¿ãããã¯ãå«ããã£ã¹ã¯ã倱ãããå ŽåãçŸåšã®ãªã³ã©ã€ã³ãžã£ãŒãã«ãææ°ã®ã¢ãŒã«ã€ããã°ãã¡ã€ã«ã«ããŒã«ããããšã§ãã¯ã©ãã·ã¥ã®çŽåãå«ãããã€ã§ããããã埩å ã§ããŸãã
ã³ããŒã¹ã¿ã³ã
åè¿°ã®ã¢ãŒã«ã€ããã¡ã€ã«ããããã¯ãŒã¯çµç±ã§éä¿¡ãããã®å Žã§ããŒã¿ããŒã¹ã®ã³ããŒã«é©çšã§ããŸãã ãããã£ãŠãæå°éã®ããŒã¿é 延ã§åžžã«æå ã«ãããã³ããŒããããŸãã çŽåãŸã§ããŒã¿ã衚瀺ããå¿ èŠããªãäžéšã®ã¢ããªã±ãŒã·ã§ã³ã§ã¯ããã®ãããªããŒã¿ããŒã¹ãèªã¿åãå°çšã«æ§æããã¡ã€ã³ããŒã¿ããŒã¹ã€ã³ã¹ã¿ã³ã¹ãã¢ã³ããŒãã§ããŸãããŸãããã®ãããªã€ã³ã¹ã¿ã³ã¹ãããã€ãèªã¿åãããšãã§ããŸãã
æžã蟌ã¿èŠæ±ããã³ã°ããã
ãªã¯ãšã¹ãã®äžéšãä»»æã®æç¹ã§ããªãŒãºããå Žåãäžå®å šãªãã§ãã¯ãã€ã³ãã«ã€ããŠalert.logã調ã¹ã䟡å€ããããŸãã ããã¯ããªã³ã©ã€ã³ãã°ãã¡ã€ã«ã倧ãããããå°ãããããããä¿è·ããããŒã¿ããã£ãã·ã¥ãããã£ã¹ã¯ã«ãã©ãã·ã¥ãããæéããªããDBMSã䜿çšå¯èœãªãã¹ãŠã®ãªã³ã©ã€ã³ãã°ãã¡ã€ã«ãæ¢ã«ãã£ã±ãã«ããŠãããããããåã§åã³äœ¿çšãããã®ã§ãããã©ãããã°ããã§ãã決ããŠäžå¯èœã§ã¯ãªããäžæåæ¢ããããŸãã ã¢ããªã±ãŒã·ã§ã³ãJavaã§å®è¡ãããŠããå ŽåããŸããã°ã®Full GCã®ååšã確èªããŸãã
ãã³ããããã³ã°èªã¿åãããã³ããŒã«ããã¯ã»ã°ã¡ã³ã
Oracle DBMSã®æã泚ç®ãã¹ãæ©èœã®1ã€ã¯ãéãããã¯èªã¿åãã§ããããã¯ãããŒã«ããã¯ã»ã°ã¡ã³ãã«ãã£ãŠå®çŸãããŸãã ããŒã¿ã¯ã»ãšãã©åžžã«ããŒã«ããã¯ã»ã°ã¡ã³ãããèªã¿åãããšãã§ãããããOracleãžã®èªã¿åãèŠæ±ããããã¯ãããããšã¯ãããŸãã ã
ããŒã«ããã¯ã»ã°ã¡ã³ãã«ã¯ãã1ã€ã®å©ç¹ããããŸãããã®ã»ã°ã¡ã³ããããç¹å®ã®æç¹ã§ããŒãã«ã«å«ãŸããŠããããŒãã«ã®å°ãå€ãããŒã¿ãèªã¿åãããšããããšãã§ããŸãã ãã®æ©èœã¯ãã©ãã·ã¥ããã¯ãšåŒã°ããŸã ã
ãã ãããã¿ã«ãã£ãŠããŒã«ããã¯ã»ã°ã¡ã³ããé 眮ã§ããå ŽåããããŸããäžæ¬ããŒã¿åé€ã®å€§ããªä»äºãããå ŽåïŒåé€ã«ããããŒã«ããã¯ã»ã°ã¡ã³ãã«ãã¹ãŠã®ããŒã¿ãçæãããïŒã ORA-01555ïŒsnapshot too oldãååŸã§ããŸãã ãã®å Žåã«èŠããŠããã¹ãäž»ãªããšã¯ãNåã®æäœããšã«ã³ãããããããã«ãžã§ããæžãæããå¿ èŠã¯ãããŸãããããã®ãããªæäœã«ã¯ç¹å¥ã«äœæãããå¥ã®ããŒã«ããã¯ã»ã°ã¡ã³ãã䜿çšããå¿ èŠããããšããããšã§ãã
ãã©ã³ã¶ã¯ã·ã§ã³åé¢ã¬ãã«
Oracleã«ã¯ãREAD_UNCOMMITEDåé¢ã¬ãã«ã¯ãŸã£ãããããŸããã å®éã«ã¯ãä»ã®ããŒã¿ããŒã¹ã§ã¯ãèªã¿åãããã¯ãåé€ããããšã§æ倧ã®äžŠåæ§ãå®çŸããããã«äœ¿çšãããŸãã ããããOracleã§ã¯ãèªã¿åãã¯åžžã«ããã¯ãªãã§å®è¡ããããããè¿œå ã®å¶éãå°å ¥ããããšãªãããã®ã¬ãã«ã§æäŸã§ãããã¹ãŠã®å©ç¹ãæ¢ã«æã£ãŠããŸãã
äžè¬ã«ãOracleã§ã¯2ã€ã®åé¢ã¬ãã«ã®ã¿ãæ確ã«äœ¿çšå¯èœã§ããããã©ã«ãã§ã¯READ_COMMITTEDã䜿çšãããŸãããå¿ èŠã«å¿ããŠSERIALIZABLEãèšå®ã§ããŸãã
ãã ããã¹ããŒãã¡ã³ãã¬ãã«ïŒSELECTãUPDATEãªã©ïŒã§ã¯ãããã©ã«ãã§ãã§ã«REPEATABLE_READããããŸãã 1人ã®ãªãã¬ãŒã¿ãŒã®ãã¬ãŒã ã¯ãŒã¯å ã§ãåžžã«äžè²«ããèªã¿åããååŸããŸããããã¯ããã¡ããããŒã«ããã¯ã»ã°ã¡ã³ãã«ããéæãããŸãã Tom KiteãæäŸããäŸã¯ããããäœãæäŸããã®ãã説æããã®ã«ãšãŠãæ°ã«å ¥ããŸããã ã¢ã«ãŠã³ããæã€éåžžã«å€§ããªããŒãã«ããããSELECTãå®è¡ããŠéé¡ãååŸãããšããŸãã Oracleã§ã¯ãä»ã®å€ãã®ããŒã¿ããŒã¹ãšã¯ç°ãªããã¯ãšãªã®éäžã§å¥ã®ãã©ã³ã¶ã¯ã·ã§ã³ãæåã®ã¢ã«ãŠã³ãããæåŸã®ã¢ã«ãŠã³ãã«äžå®éã転éããŠããæåŸã®è¡ã«éãããšSELECTã«è¡šç€ºããããããã¯ãšãªã®æåã§å®éã®ããŒã¿ãååŸã§ããŸãè¡ãå€æŽãããå ŽåãããŒã«ããã¯ã»ã°ã¡ã³ãã«ç§»åããã¯ãšãªã®éå§æã«ãã®ã»ã«ã«ãã£ãããŒã¿ãèªã¿åããŸãã ä»ã®å€ãã®ããŒã¿ããŒã¹ã§ã¯ãããŒãã«ã«æ±ºããŠååšããªãéã®åœ¢ã§å¿çãåãåããŸãã ãã ãããã®å ŽåãOracleã«ã¯ORA-01555ïŒã¹ãããã·ã§ãããå€ããããšããå±éºããããŸãã
æšæºçãªåé¢ã¬ãã«ã«å ããŠãOracleã«ã¯READ_ONLYãã©ã³ã¶ã¯ã·ã§ã³ããããŸããããã¯ãåäžã®ã¹ããŒãã¡ã³ãå ã ãã§ãªãããã©ã³ã¶ã¯ã·ã§ã³å šäœå ã§REPEATABLE_READãæäŸããŸãã ããããååã瀺ãããã«ããã®ãããªãã©ã³ã¶ã¯ã·ã§ã³ã§ã¯èªã¿åãã®ã¿ãå¯èœã§ãã
Oracleã«ããããŒã¿ã®å¹æçãªãã£ãã·ã¥
Oracleã§ã¯ããã¹ãŠã®ããŒã¿ã¯ãã£ã¹ã¯ã«çŽæ¥ã§ã¯ãªãããã£ãã·ã¥ãä»ããŠèªã¿æžããããŸãã ããã©ã«ãã§ã¯ããã£ãã·ã¥ã¯LRUã¢ã«ãŽãªãºã ã«åºã¥ããŠãããããèå¥åã«ãã£ãŠéåžžã«å€§ããªãã¬ãŒãã倧éã«èªã¿åãããã®ãã³ã«æ°ããè¡ãèŠæ±ãããšããã®ãããªèŠæ±ã¯å°ããªéçã¿ãã¬ããããã£ãã·ã¥ããæŒãåºãå¯èœæ§ããããŸãããã£ãã·ã¥å ã ãã®ãããªç®çã®ããã«ãããŒãã«ãäœæãããšãã«ãããŒãã«ãžã®ã¯ãšãªãéä¿¡ãããç¹å¥ãªã¿ã€ãã®ãã£ãã·ã¥ãæå®ã§ããŸãã ãããã£ãŠãäžèšã®äŸã®æåã®ããŒãã«ã«ã¯RECYCLEãã£ãã·ã¥ãé©ããŠããŸããããã¯åºæ¬çã«ããŒã¿ãä¿åããããã£ãã·ã¥ããããã«ç Žæ£ããŸãã ãŸãã2çªç®ã®ããŒãã«ã«ã¯KEEPãã£ãã·ã¥ãé©ããŠããŸããããã«ãããå°ããªéçããŒãã«ããã£ãã·ã¥ã«ä¿åã§ããä»ã®ãã¹ãŠã®ããŒãã«ãžã®ã¯ãšãªã¯ãã£ãã·ã¥ããéçããŒãã«ã®ããŒã¿ãæŒãåºããŸããã
空è¡
Oracleã«ã¯éåžžã«èå³æ·±ãæ©èœã1ã€ãããŸããããããã¯ä»ã§ã¯åé€ã§ããŸããã å®éãããŒã¿ããŒã¹ã«ç©ºã®è¡ãå ¥ãããšãNULLãšããŠä¿åãããŸãã ãããã£ãŠããã®åŸã®èªã¿åãã§ã¯ã空ã®æååã¯ååŸããããNULLã®ã¿ãååŸãããŸãã åãçç±ã§ã空ã®è¡ã¯ã€ã³ããã¯ã¹ã«åé¡ãããªããããå®è¡èšç»ã§ã€ã³ããã¯ã¹ã䜿çšããã¯ãšãªãäœæããŠãã空ã®ïŒãŸãã¯NULLïŒè¡ã¯ååŸââãããªãããšã«æ³šæããŠãã ããå°ãåŸã§ã
ææ°
Oracleã«ã¯ãBããªãŒåœ¢åŒã®æ¢ç¥ã®ã€ã³ããã¯ã¹ã«å ããŠããããããããã€ã³ããã¯ã¹ããããŸããããã¯ãéåžžã«ã¹ããŒã¹ãªå€ãæã€åãããããŒãã«ãžã®ã¯ãšãªã§éåžžã«é«ãããã©ãŒãã³ã¹ã瀺ããŸãã ãã®å Žåã«ç¹ã«å¹æçãªã®ã¯ãã¹ããŒã¹åã«å¯ŸããORãšANDã®è€éãªçµã¿åãããããã¯ãšãªïŒéåžžã®ã€ã³ããã¯ã¹ãšæ¯èŒããŠïŒãåäœãããããšã§ãã ãã®ã€ã³ããã¯ã¹ã¯BããªãŒã§ã¯ãªãããããããã«æ ŒçŽãããŠãããããèšè¿°ããããªã¯ãšã¹ããè¿ éã«å®è¡ã§ããŸãã åé¡ã¯ããã®ã€ã³ããã¯ã¹ãããã«æãŸããããŒãã«å ã®äžæã®å€ã®æ°ã§ããéåžžã«è€éã§ãã10ã®äžæã®å€ãŸãã¯10,000ã®ããããã§ããããã§ã¯ãç¹å®ã®ããŒãã«ã«ã€ã³ããã¯ã¹ãäœæããäœãèµ·ãããã確èªããå¿ èŠããããŸãã äž»ãªããšã¯ãã€ã³ããã¯ã¹ä»ãåã®æ¿å ¥ãšæŽæ°ãå€æ°ããããŒãã«ã§ãã®ã€ã³ããã¯ã¹ã䜿çšããããšããªãããšã§ãããã®ãããªæäœã¯ãã€ã³ããã¯ã¹ä»ãããŒãã«å ã®éåžžã«å€§ããªã»ã¯ã·ã§ã³ããããã¯ããã·ã¹ãã ãå±éºãåãããããããããã¯ããã£ããããããšããããããã§ãã
Oracleã§ç§ãåžžã«æºè¶³ããŠããããšã®1ã€ã¯ãé¢æ°ã®ã€ã³ããã¯ã¹ãäœæã§ããããšã§ãã ã€ãŸã ã¯ãšãªã§é¢æ°ã䜿çšããå¿ èŠãããå Žåã¯ããã®é¢æ°ã«ã€ã³ããã¯ã¹ãäœæããŠãèªã¿åãæäœãå€§å¹ ã«é«éåã§ããŸãã
ã€ã³ããã¯ã¹ã®ãã1ã€ã®èå³æ·±ãããããã£ã¯ãã€ã³ããã¯ã¹ãNULLå€ãæ ŒçŽããªãããšã§ãã ãããã£ãŠãã€ã³ããã¯ã¹ä»ãã®åã§æ¡ä»¶<ã>ãŸãã¯<>ã䜿çšããŠã¯ãšãªãå®è¡ããå Žåãã€ã³ããã¯ã¹ä»ãã®åã«NULLå€ãæã€è¡ã¯è¿ãããŸããã äžæ¹ããã®ããããã£ã¯ç¹å®ã®å Žåã«éåžžã«å¹æçã«äœ¿çšã§ããŸãã ããšãã°ã泚æãä¿åãããŠããéåžžã«å€§ããªãã¬ãŒãããããããã¯ã¯ãªãŒãã³ã°ãããŸããã ãŸããããã¯ãªãã£ã¹ããã»ã¹ãããããã¹ãŠã®æ³šæãããã¯ãªãã£ã¹ã·ã¹ãã ã«éä¿¡ããå¿ èŠããããŸãã æåã®è§£æ±ºçã¯ãis_sentãã©ã°ã䜿çšããŠå¥ã®åãååŸããããšã§ãããã®ãã©ã°ã¯æåã¯0ã§ãããéä¿¡æã«ã¯1ã«ãªããŸããã€ãŸãã åéå§æã®ããã¯ã°ã©ãŠã³ãããã»ã¹ã¯ãis_sent = 0ã®æ¡ä»¶ã§ããŒãã«ãã¯ãšãªããŸãã ãã¬ãŒãã¯éåžžã«ç©æ¥µçã«è£å ããããããããã§ã¯ãããã€ã³ããã¯ã¹ã䜿çšã§ããŸããã BããªãŒã«åºã¥ãéåžžã®ã€ã³ããã¯ã¹ã¯ãèšå€§ãªæ°ã®è¡ãžã®ãªã³ã¯ãä¿åããå¿ èŠããããããå€ãã®ã¹ããŒã¹ãå æããŸãã ãã ããéä¿¡ããŒã¯ãšis_sentåã®äž¡æ¹ã§ããžãã¯ããããã«å€æŽãããšã1ã®ä»£ããã«NULLãæ¿å ¥ãããŸããã€ã³ããã¯ã¹ã¯éåžžã«å°ãããªããŸãããã€ã§ãNULL以å€ã®å€ã®ã¿ãæ ŒçŽãããããã®æ°ã¯éåžžã«å°ãªãããã§ãã
ããŒãã«ã¯ç°ãªããŸã
éåžžã®ããŒãã«ã«å ããŠãOracleã§ã¯ãä»ã®å€ãã®ããŒã¿ããŒã¹ãšåæ§ã«ããããã®ããŒãã«ãäž»ããŒã®ã€ã³ããã¯ã¹ããªãŒã«çŽæ¥ååšããå Žåãããããã€ã³ããã¯ã¹ããŒãã«ããããŸãã ãããã£ãŠã2ã€ã®ããšãäžåºŠã«éæãããŸãããŸããäž»ããŒã®ããŒã¿ãèªã¿åãããã«ãèªã¿åãã1ã€å°ãªããªããŸãã次ã«ãããŒãã«å ã®ããŒã¿ã¯äž»ããŒã®é åºã§ååŸããããããORDER BY PKæäœã¯è¿œå ã®äžŠã¹æ¿ããªãã§å®è¡ãããŸãã æ¬ ç¹ã«ã¯ããã®ã€ã³ããã¯ã¹ã®æäœãã°ãã¡ã€ã«ãžã®ãã°ã€ã³ãåºå¥ã§ããªããªããšããäºå®ãå«ãŸããŸãã
ãã1ã€ã®åªããã¿ã€ãã®ããŒãã«ã¯ã¯ã©ã¹ã¿ãŒããŒãã«ã§ããããã«ããã1ã€ã®ããŒã¿ãããã¯ã®1ã€ã®ããŒå€ã«ãã£ãŠã¯ã©ã¹ã¿ãŒåããã2ã€ä»¥äžã®ããŒãã«ã®ããŒã¿ãä¿åã§ããŸãã åžžã«ããã€ãã®ããŒãã«ãäžç·ã«äœ¿çšããå Žåãããã¯éåžžã«å¹æçã§ãã
ã¯ã©ã¹ã¿ãŒããŒãã«ã«åºã¥ããŠãBããªãŒã®ä»£ããã«ãã¯ã©ã¹ã¿ãŒããŒã®ããã·ã¥ã«åºã¥ãããŒãã«ãã¢ã¯ã»ã¹ã«äœ¿çšãããã¯ã©ã¹ã¿ãŒããã·ã¥ããŒãã«ããããŸãã ãã¡ãããéåžžã«èå³æ·±ãããã«èãããŸãããæ£çŽãªãšãããå®éã«ã¯ããã«ééããããšããããŸããã
å€æ°ãã€ã³ãã£ã³ã°
ãããããã¹ãŠã®ããã°ã©ããŒãããã«ã€ããŠæ¢ã«èããããšãããã§ãããããããã§ãå€æ°ãã€ã³ãã£ã³ã°ãªã©ã®å¿ é ã®ãã¯ããã¯ã«ã€ããŠèšåããŸãã å®éã«ã¯ãäžæã®èŠæ±ããšã«è§£æãã©ã³ãäœæããããã£ãã·ã¥ã«å ¥ããããŸãã IDã«ããéåžžã«äžè¬çãªãªã¯ãšã¹ããªã©ãããŸããŸãªãªã¯ãšã¹ããå€æ°ããå Žåãåãªã¯ãšã¹ãã«å¯ŸããŠãã©ã³ãçæãããããã«ãä»ã®ãã¹ãŠã®ãã©ã³ããã£ãã·ã¥ããæŒãåºãããããŒã¿ããŒã¹ã®å¿çæéãå€§å¹ ã«å¢å ããå¯èœæ§ããããŸãã
ãŸãããã®ã±ãŒã¹ã§ã¯å€ãã®ç°ãªãã¯ãšãªã¯ååšããªãã®ã§ãis_deletedãã©ã°ãªã©ã®å°æ°ã®ç°ãªãå€ãæã€åã«ãããä¹±çšããŠãã€ã³ãã£ã³ã°ã䜿çšããã¹ãã§ã¯ãªãããšã«æ³šæãã䟡å€ããããŸããå¹æçãªèšç»ã
ããã°ã©ããŒåãã®æ³šæç¹
åã®ã¿ã€ããVARCHAR2ïŒ100ïŒã®å ŽåãæåålongString.substringïŒ0ã100ïŒãå§çž®ããããšãããšãããã©ã«ãã®åå®çŸ©ã®å¶é100ã¯æåã§ã¯ãªããã€ãæ°ãåç §ãããããæåããäºå®ã¯ãããŸããã 2ãã€ãæåãååšããå Žåãåé¡ãçºçããå¯èœæ§ããããŸãã å®éããã®åäœã¯å°ãèšå®ã§ããŸã ã詳现ã«ã€ããŠã¯ããã¡ããåç §ããŠãã ããã ç¡éã«ãŒãã«æ¿å ¥ããããšããŠããªãå Žåã¯ããããŸã§ã®ãšãããããè¡ããšããååã«åºã¥ããŠããã®å Žåã¯ã解決ãããããšã¯ãããŸããã
ããŠããã¹ãŠã®çš®é¡ã®ããŒã¿ããŒã¹ã«å¯Ÿããäžè¬çãªæšå¥šäºé ïŒ1ã€ã®ãªããžã§ã¯ããã£ãŒã«ããå€æŽãããšãã«ãããŒãã«å ã®ãã¹ãŠã®åãæŽæ°ããªãã§ãã ããã éåžžã«æçœãªããã«èŠããŸãããå®è·µã瀺ãããã«ããã®ã¢ã³ããã¿ãŒã³ã«ã¯ãã°ãã°å Žæãããã®ã§ããã¬ãŒã ã¯ãŒã¯ãå®éã«å€æŽããããã£ãŒã«ãã®ã¿ãæŽæ°ããããšã確èªããããšã匷ããå§ãããŸãã
ãããã«
ç§ã®æèŠã§ã¯ãããã°ã©ããŒã«ãšã£ãŠæçšãªãã®ã®ã»ãšãã©ã説æããããšããŸããã ãããã®å€ããããã®ã§ãç§ã¯ãããã®æŠèŠã説æããã ãã§ãå€ãã®å Žå詳现ã説æããŸããã å¿ èŠãªèšå®ãå ·äœçã«è¡ãæ¹æ³ã¯ãåè¿°ã®Tom Kiteã®æ¬ã§åžžã«èªãããšãã§ããŸããããã¯asktomåãŸãã¯googleã«ãããŸãã äž»ãªããšã¯ãã°ãŒã°ã«ã«ãã¹ãããšãç¥ãããšã§ããããã®ãããã¯ãããªãã«ãããä¿ããããšãé¡ã£ãŠããŸãã