InterSystems IRIS ã§ SQL ã䜿çšãã
InterSystems IRIS® data platform ç°å¢ã§ SQL æäœã管çãé«åºŠãª SQL æ©èœã䜿çšããæ¹æ³ãåŠç¿ããŸãã
ãã®ãã¹ã§ã¯ããã¹ããã©ã¯ãã£ã¹ã確èªããã¯ãšãªã®æé©åãš SQL ã¢ããªã±ãŒã·ã§ã³ç®¡çã®ç¥èãåŸãããšã§ãå¹ççã§ã¹ã±ãŒã©ãã«ãª SQL ã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ã§ããããã«ãªããŸãã
1. 
InterSystems IRIS ã§ã® SQL éçºã®åºç€ãšãã¹ããã©ã¯ãã£ã¹ã確èªããŸãã
-
ããã¥ã¡ã³ãïŒæ°žç¶ã¯ã©ã¹ã«ãã SQL æé©åããŒãã«ã®å®çŸ©
-
ããã¥ã¡ã³ãïŒå€éšããŒã®åç §æŽåæ§ãã§ãã¯
-
SQL ã¯ã©ã€ã¢ã³ããã InterSystems IRIS ã«æ¥ç¶ããæ¹æ³
ãµãŒãããŒãã£ã® SQL ã¯ã©ã€ã¢ã³ãããŒã«ãã InterSystems IRIS ã«æ¥ç¶ããæ¹æ³ãã玹ä»ããŸãã
-
DBeaver ã®äŸïŒããŒã¿ç§»è¡ããŒã« - ããŒã II: MySQL ãã IRIS
èšäºã®ãDBeaver ã䜿ã£ãŠããœãŒã¹ããŒã¿ããŒã¹ãšã¿ãŒã²ããããŒã¿ããŒã¹ãæ¥ç¶ã以éã®å³è§£ããåç §ãã ããã
-
SQuirreL ã®äŸïŒè±èªãããªïŒConnecting an SQL Client to InterSystems IRIS
-
SQLToolsã®äŸïŒVSCodeïŒSQLTools ã§ IRIS ã«æ¥ç¶ããæ¹æ³
RESTã§ã¢ã¯ã»ã¹ããæ¹æ³ã§ãïŒèšäºå ã«äœ¿ãæ¹ãããªããããŸãïŒã
-
äœéšç°å¢ä»ãæŒç¿ïŒRunning Fast Queries with SQL in InterSystems IRIS
ããŒãžå ã®ãããªã¯æ¥æ¬èªåå¹ãæå®ã§ããŸãã
-
-
ãããªïŒè±èªïŒïŒSetting Up SQL Foreign Key Constraints
ãªã¬ãŒã·ã§ãã«ã»ããŒã¿ããŒã¹ã«ãããããŒã¿ã®æŽåæ§ãç¶æããããã«ãå€éšããŒå¶çŽãã©ã®ããã«åœ¹ç«ã€ãã説æã InterSystems IRIS® data platform ã§ã®èšå®æ¹æ³ãã玹ä»ããŠããŸãã
â¶æ¥æ¬èªåå¹
äŸãã°ãåŸæ¥å¡ãã©ã®ããã«éšéã«é¢é£ä»ããããŠããããèããŠã¿ãŸãããããã®å ŽåãããŒã¿é¢ä¿ã®ç®¡çãšã¯åŸæ¥å¡ã¬ã³ãŒããæå¹ãªéšéãšã³ããªãŒã«æ£ãããªã³ã¯ããããšãæå³ããŸããèšãæããã°ãååŸæ¥å¡ã¯ããŒã¿ããŒã¹å ã®æ¢åã®éšéã«å²ãåœãŠãããã¹ãã§ãã
ããŒã¿ã»ãªã¬ãŒã·ã§ã³ã·ããã管çããããã®æãéèŠãªããŒã«ã® 1 ã€ãå€éšããŒã§ããéåžžãå€éšããŒã¯å¥ã®ããŒãã«ã®äž»ããŒã«ãªã³ã¯ããŸãã
å€éšããŒå¶çŽã®åœ¹å²ã¯ãããŒã¿ããŒã¹ã®ä¿¡é Œæ§ã®éèŠãªåŽé¢ã§ããåç §æŽåæ§ã匷å¶ããããšã§ããããã«ãããå€éšããŒåã®åå€ãåç §å ããŒãã«ã®äž»ããŒåã®å€ã«æ£ãã察å¿ããããšãä¿èšŒãããŸãããã®å ŽåãEmployee ããŒãã«ã® Department ID åã¯ãåç §å Department ããŒãã«ã® Department ID ãšäžèŽããŸãã
ãã®åŒ·å¶ã¡ã«ããºã ã¯ãæå¹ãªéšçœ²ã«å¯Ÿå¿ããªãåŸæ¥å¡ããŒã¿ãªã©ãã£ã察å¿ããåç §ããªãããŒã¿ã®è¿œå ãé²ããŸãããŸããåŸæ¥å¡ãšã®çŽã¥ããååšããéšéãåé€ããããšã鲿¢ãããã®ãããªè¡çºããçºçããããŒã¿ã®äžæŽåã鲿¢ããŸããéèŠãªããšã¯ãå€éšããŒå¶çŽãå¿ é ãšããŠèšå®ãããªãéããèªåçã«éšçœ²ãªã©ã®ãã£ãŒã«ããå¿ é ã«ãªãããã§ã¯ãªããšããããšã§ãã
InterSystems IRIS å ã§å€éšããŒå¶çŽãã©ã®ããã«åäœãããã詳ããèŠãŠã¿ãŸãããããããã®å¶çŽã¯ãé¢é£ããããŒãã«éã§ããŒã¿ãã©ã®ããã«çžäºäœçšããããå°ããSQL ãšãªããžã§ã¯ãã»ããŒã¿ã»ã¢ãã«ã®äž¡æ¹ãšã·ãŒã ã¬ã¹ã«çµ±åã§ããããã«ããŸãã
ãããã®å¶çŽãã©ã®ããã«æ©èœãããã確èªãããããDepertment ããŒãã«ãšå€éšããŒå¶çŽã«ãã£ãŠçŽã¥ã Employee ããŒãã«ããã¬ã³ãŒããåé€ãããšããŸãã
Depertment ã¯äž»ããŒãæã€åç §å ããŒãã«ã§ããEmployee ããŒãã«ã¯ãDepertment ããŒãã«ã®äž»ããŒãåç §ããå€éšããŒã«ã©ã ãæã¡ãŸãã
ãã® Depertment ã¬ã³ãŒããåé€ããå Žåã察å¿ãããªã³ã¯ããªãé¢é£ã¬ã³ãŒããæ®ãå€ç«ããããŒã¿ãååšããããšã«ãªããŸãããå€éšããŒå¶çŽã®æ§æã«ãã£ãŠã¯åé€ããããã¯ãããå¯èœæ§ããããŸãã
InterSystems IRIS ã§ã¯ã管çããŒã¿ã«ãŸã㯠SQL ã¹ããŒãå ã§çŽæ¥å€éšããŒå¶çŽãå®çŸ©ã§ããŸãããã®ä»çµã¿ã詳ããèŠãŠã¿ãŸãããã
SQL ãšã¯ã¹ãããŒã©ã§å€éšããŒå¶çŽãå«ãæ°ããããŒãã«ãäœæããããæ¢åã®ããŒãã«ã倿Žãããã§ããŸãã
ããŒãã«å®çŸ©ã§å€éšããŒãæå®ãããããåç §ããŒãã«ã®äž»ããŒã«ãªã³ã¯ããŸãã
ããã€ãã®ãªãã·ã§ã³ããããŸãïŒ CASCADEãSET NULLãRESTRICTãNO ACTIONã§ãã
CASCADE ãªãã·ã§ã³ã¯ã1 ã€ã®ã¬ã³ãŒãã®åé€ãèªåçã«ãã¹ãŠã®é¢é£ã¬ã³ãŒãã®åé€ã«ã€ãªããå Žåã«äŸ¿å©ã§ããäžè¬çãªäœ¿çšäŸã¯ãå°å£²ã·ã¹ãã ã«ãããæ³šæãšããã«é¢é£ããæ³šæè©³çްã§ããæ³šæãåé€ããããšãCASCADE ã¯å¯Ÿå¿ãããã¹ãŠã®æ³šæè©³çްé ç®ãåé€ãããããšãä¿èšŒããå€ç«ããã¬ã³ãŒãã®ãªãã¯ãªãŒã³ã§äžè²«æ§ã®ããããŒã¿ãç¶æããŸãã
äžæ¹ RESTRICT ãªãã·ã§ã³ã¯ãã¬ã³ãŒããäºãã«æ±ºå®çã«äŸåããŠããã·ããªãªã§ã¯äžå¯æ¬ ãªãªãã·ã§ã³ã§ããäŸãã°ãäŒæ¥ã®ç°å¢ã«ãããŠéšçœ²ã«ãŸã åŸæ¥å¡ãå²ãåœãŠãããŠããç¶æ³ã§éšçœ²ã®åé€ãé²ãããšãã§ããŸãã
SET NULL ã¯ãã¬ã³ãŒãéã®ãªã³ã¯ã¯å¿ é ã§ã¯ãªãããæ®ãã®ããŒã¿ã®æŽåæ§ãä¿æããããšãéèŠãªç¶æ³ã§äœ¿çšã§ããŸããäŸãã°ãããåŸæ¥å¡ã® HR ããžãã¹ããŒãããŒãéè·ããå Žåããã®åŸæ¥å¡ã®ã¬ã³ãŒãã§ãã®ããŒãããŒã® ID ã NULL ã«èšå®ããããšãã§ããŸããããã«ãããä»ã®éèŠãªåŸæ¥å¡ããŒã¿ã«åœ±é¿ãäžããããšãªãããã®åŸæ¥å¡ã«ã¯çŸåš HR ããžãã¹ã»ããŒãããŒãå²ãåœãŠãããŠããªãããšã瀺ãããŸãã
NO ACTION ã®å Žåã管çè ãããŒã¿ããŒã¹ã«ããèªåçãªæ±ºå®ãæãŸããæäœæ¥ã«ããã¬ãã¥ãŒæé ã宿œãããŠãããããªçšãªã±ãŒã¹ã§ã¯ãNO ACTION ãé©åãšãªãå ŽåããããŸãã
ãããã®ã¢ã¯ã·ã§ã³ã®æè»æ§ã«ãããç¹å®ã®ã¢ããªã±ãŒã·ã§ã³ã®ããŒãºã«åãããŠããŒã¿æŽåæ§ã«ãŒã«ã調æŽããããšãã§ããŸãã
ããŒã¿ããŒã¹ã®ã¹ããŒããæ³šææ·±ãèšç»ããå€éšããŒå¶çŽãã¢ããªã±ãŒã·ã§ã³ã®ãŠãŒã¹ã±ãŒã¹ãšããã©ãŒãã³ã¹èŠä»¶ãè«ççã«ãµããŒãããŠããããšã確èªããããšããã¹ããã©ã¯ãã£ã¹ãšèããããŠããŸãã
ããŒã¿ã®å®å šæ§ãä¿èšŒããããã«ãå€éšããŒãå«ã INISERT ã UPDATE ã¯ãåç §ããããŒãã«ã«å¯Ÿããæ€èšŒãã§ãã¯ãããªã¬ãŒããŸãããã®ããã»ã¹ã¯éåžžã«éèŠã§ããã远å çãªæ€èšŒãå¿ èŠãšãªãããããã©ãŒãã³ã¹ã«åœ±é¿ãäžããå¯èœæ§ããããŸãã
InterSystems IRIS ã§ã¯ãå€éšããŒã®å®çŸ©æã« NOCHECK ããŒã¯ãŒãã䜿çšããŠãå€éšããŒãã¡ã¿ããŒã¿ãšããŠã®ã¿å«ããããšãã§ããŸãããã®æ¹æ³ã¯ãèœåçãªåŒ·å¶ãåé¿ããªãŒããŒããããåæžããŸããããã¯ãããŒã¿ã®å®å šæ§ãä»ã®ææ®µã§ä¿èšŒãããŠããç°å¢ã§ç¹ã«æçšã§ãã
æçµçã«ãå€éšããŒå¶çŽã¯ãããŒã¿ããŒã¹ã®ãªã¬ãŒã·ã§ã³ã·ããã®æŽåæ§ãšä¿¡é Œæ§ãç¶æããããã®ã«ãŒã«ã匷å¶ããããã«éåžžã«éèŠã§ããInterSystems IRIS å ã§ãããã®å¶çŽãæ éã«ç®¡çããããšã§ãå®å®ãããä¿¡é Œæ§ã®é«ããäžè²«æ§ã®ããããŒã¿ããŒã¹ç°å¢ãç¶æããããšãã§ããŸãã
2. 
InterSystems IRIS ã®ããã©ãŒãã³ã¹ãšå¹çãåäžãããããã« SQL ã¯ãšãªãæé©åããæ¹æ³ãåŠç¿ããŸãã
è±èªãããªããããŸã
Enhancing Query Performance with the SQL Optimizer
InterSystems IRIS® data platform ã® SQL ãªããã£ãã€ã¶ããé«åºŠãªçµ±èšãã¹ããŒãã»ãã£ãã·ã³ã°ãèªååãæŽ»çšããŠã©ã®ããã«å¹ççãªã¯ãšãªåŠçãå®çŸããŠããããã玹ä»ããŸãã ãŸããã¯ãšãªãã©ã³ãã©ã®ããã«äœæããéžæãããã®ãããã㊠SQL ãªããã£ãã€ã¶ã®æ©èœãã¹ããŒãã§å¹ççãªãã©ã³ã®äœæããã»ã¹ãã©ã®ããã«ä¿é²ããã®ããã説æããŸãã
-
ãããªïŒè±èªïŒïŒFinding and Fixing Slow SQL Queries
InterSystems® 補åã«ãããé ã SQL ã¯ãšãªãç¹å®ãæ¹åããæ¹æ³ãåŠç¿ããŸãã
SQL ã¯ãšãªã»ãã©ã³ã䜿çšããŠãã¯ãšãªã»ããã©ãŒãã³ã¹ã®åé¡ãçºèŠããæ¹æ³ãšãå¹çãåäžãããããã®å€æŽãå®è¡ããæ¹æ³ãã芧ãã ããã
InterSystems IRIS® data platform ã§ SQL ã䜿çšããåºæ¬çãªçµéšãããããšãåæãšããŠããŸããå¿ èŠã«å¿ããŠãäœéšç°å¢ä»ãæŒç¿ïŒRunning Fast Queries with SQL in InterSystems IRIS ãã詊ããã ããã
â¶æ¥æ¬èªåå¹
ãããã2 ç§ã®ã¯ãšãªãã¡ã€ã³ã»ãŠãŒã¶ãŒã»ã€ã³ã¿ãŒãã§ãŒã¹ã®éèŠãªéšåã§ 1 åéã« 100 åå®è¡ãããã®ã§ããã°ããã®å¹çãé«ããããšãã§ãããã©ããããæ€èšãã䟡å€ããããŸãã
ç§ãã¡ã®ã·ã¹ãã ã§ã¯ã100 äžè¡ã®æ ªåŒååŒããŒã¿ãããåè¡ã 1 ã€ã®ãã©ã³ã¶ã¯ã·ã§ã³ã衚ããŠããŸããç§ãã¡ã®ã·ã¹ãã ã¯ãäž»ã«ãã®æ ªåŒããŒã¿ã«å¯Ÿã㊠SQL ã¯ãšãªãŒãå®è¡ããããã·ã¥ããŒããææ°ã®ç¶æ ã«ä¿ã€ããã«äœ¿çšãããŠããŸãã
æè¿ããŠãŒã¶ãŒããããã·ã¥ããŒãã®æŽæ°ãé ããšããå ±åããããŸããã
ãã®åé¡ã®åå ãšãªã£ãŠããã¯ãšãªãèŠã€ããããã«ãUser ããŒã ã¹ããŒã¹ã§å®è¡ãããŠãããã¹ãŠã® SQL æã調ã¹ãŸããSQL ãšã¯ã¹ãããŒã©ã§ [SQL æ] ã¿ããã¯ãªãã¯ããçŸåšã®ããŒã ã¹ããŒã¹å ã®ãã¹ãŠã® SQL æã衚瀺ããŸãã
ã©ã®ã¯ãšãªã®å®è¡ãé ãããç¥ãããã®ã§ãã£ã«ã¿ã远å ããŠããã®ããŒãã«ã§å®è¡ãããŠããã¯ãšãªã ãã衚瀺ããŸããããã«ããããã®ããŒãã«äžã®ãã¹ãŠã®ã¯ãšãªã®å®è¡åæ°ãå¹³åæéãåèšæéãªã©ã®è©³çްãèŠãããšãã§ããŸããåèšæéã§ãœãŒããããšãã©ã®ã¯ãšãªã«æãæéãããã£ãŠããããããããŸãã
ããã§ã¯ã1 æ¥ã«çŽ 60 åå®è¡ãããã¯ãšãªã®åèšæéã 106.5 ç§ã§ããããšãããããŸãã
ããã¯ãã·ã¹ãã ããã®ã¯ãšãªãå®è¡ããã®ã«åèš 106.5 ç§ãè²»ãããããšãæå³ããŸããããã§ãé床ã®çžå¯Ÿæ§ãéèŠã«ãªããŸãããã®å Žåãã®ã¯ãšãªã®å®è¡é »åºŠãèæ ®ãããšåèšæéã¯é·ãã§ããData.StockData ãšããããŒãã«åãã¯ãªãã¯ããŠããã®ã¯ãšãªã詳ããèŠãŠã¿ãŸãããã
ãã®ã¯ãšãªãŒã¯ãåéæã«ã€ããŠå®è¡ããã売ãååŒã®æ°ãææ°ã«éèšããã®éèšã¯ã¡ã€ã³ãã¬ãŒããŒã®ããã·ã¥ããŒãã§ 5 ç§ããšã«æŽæ°ãããŸãã
代衚çãªããŒã¿ã§ãã®ã¯ãšãªãŒããã¹ãã·ã¹ãã ã§å®è¡ãããšãå®è¡ã« 2 ç§è¿ãããããŸãããã®åé¡ãåŒãèµ·ãããŠããã¯ãšãªãç¹å®ããã®ã§ããã®ã¯ãšãªã®å®è¡é床ãé ãããŠããåå ãçªãæ¢ããŸãããã
é ãã¯ãšãªãä¿®æ£ããå Žåãæåã®ã¹ãããã¯åžžã«ã¯ãšãªã»ãã©ã³ã確èªããããšã§ããInterSystems SQL ã¯ãšãªã»ãªããã£ãã€ã¶ã¯ãçŸåšå©çšå¯èœãªæ å ±ã§å¯èœãªéãå¹ççã«å®è¡ãããããã«ã¯ãšãªãèªåçã«åŠçããŸãã
ãã®ããã»ã¹ã®äžç°ãšããŠãã¯ãšãªãªããã£ãã€ã¶ã¯ãã¯ãšãªã®ãã£ã«ã¿ãéçŽãããã³ãã®ä»ã®åŠçãåŠçããããã®è€æ°ã®ãã©ã³ãçæããŸããã¯ãšãªãªããã£ãã€ã¶ã¯ãããŒãã«ã®çµ±èšæ å ±ã«åºã¥ããŠãããã®ã³ã¹ããæšå®ãå®è¡æã«æãå¹ççãªãã©ã³ãéžæããŸãã
ã¯ãšãªãã©ã³ãèŠãããšã§ãããŒãã«ãšã€ã³ããã¯ã¹æ§é ãã©ã®ããã«ã¹ãã£ã³ãããã確èªããããšãã§ããŸããããã¯ãã©ã®ã¹ãããã«æãæéããããã¯ãšãªãé ãããŠããããç¹å®ããã®ã«åœ¹ç«ã¡ãŸãããã®æ å ±ã«åºã¥ããŠãã€ã³ããã¯ã¹ã®è¿œå ã䞊ååŠçãªã©å¹çãæ¹åããããã®èª¿æŽãè¡ãããšãã§ããŸãã
SQL ãšã¯ã¹ãããŒã©ããã¯ãšãªãã©ã³ã衚瀺ããã«ã¯ãã¯ãšãªãå ¥åãã[ãã©ã³è¡šç€º] ãã¯ãªãã¯ããŸãã
ã芧ã®ããã«ããã®ã¯ãšãªãå®è¡ããæåã®ã¹ãããã¯ãID ãã«ãŒãããŠãã¹ã¿ãŒããããèªã¿åãããšã§ãããã¹ã¿ãŒãããã¯æšæºããŒãã«ã®äž»èŠãªããŒã¿æ§é ã§åã ã®è¡ã 1 ã€ãã€æ ŒçŽããŠããŸãããã®æ§é ã ID ã§ã«ãŒãããŠããã®ã§ãã¯ãšãªãå®è¡ããæåã®ã¹ãããã¯ãããŒãã«ã®ãã¹ãŠã®è¡ããããŒã¿ãèªã¿åãããšã§ããè¡æ°ã®å€ãããŒãã«ã«å¯ŸããŠãã®ãããªãã¹ã¿ãŒãããã¹ãã£ã³ãè¡ãã¯ãšãªãã©ã³ã¯éå¹ççã§ãã
ãã®ããŒãã«ã«ã¯ 100 äžè¡ä»¥äžã®ããŒã¿ãããããããã¹ã¿ãŒããããèªã¿èŸŒãã®ã¯éåžžã«éå¹ççã§ãããã®ãã©ã³ãæ¹åããããã«ã¯ãšãªã調æŽããå¿ èŠããããŸãã
倿Žãå ããåã«ãã¯ãšãªãªããã£ãã€ã¶ãææ°ã®ããŒãã«çµ±èšæ å ±ã䜿çšããŠããããšã確èªããŸããããè¡æ°ãªã©ã®çµ±èšæ å ±ã¯ãã©ã®ãã©ã³ãæãå¹ççãã倿ããã®ã«åœ¹ç«ã¡ãŸããããã確èªããã«ã¯ãããŒãã«ãéžæããŸããæ¬¡ã«ã[ã¢ã¯ã·ã§ã³] ã¡ãã¥ãŒãã [ããŒãã«ãã¥ãŒãã³ã°æ å ±] ãã¯ãªãã¯ããŸãã
çŸåšã® ExtentSizeïŒè¡æ°ïŒã¯ããã©ã«ãã® 100,000 ã«èšå®ãããŠããŸããããã¯ããã®ããŒãã«ã®çµ±èšæ å ±ããŸã åéãããŠããªãããšã瀺ããã¯ãšãªã»ãªããã£ãã€ã¶ã¯ããã®ããŒãã«ãããªãå°ããããŒãã«ã§ããããã«ã»ããŒãã«ã»ã¹ãã£ã³ã«ããã»ã©ã³ã¹ããããããªããšæ³å®ããŠããŸããããŒãã«ã®çµ±èšæ å ±ãåéããã«ã¯ã[ããŒãã«ãã¥ãŒãã³ã°] ãã¯ãªãã¯ããŸããæè¿ã®è£œåããŒãžã§ã³ã§ã¯ãã»ãšãã©ã®éåžžã®ããŒãã«æ§é ã«ã€ããŠããŒãã«çµ±èšãå°ãªããšã 1 åã¯èªåçã«åéãããŸããExtentSize ã¯ãããŒãã«ã®ãµã€ãºãããã£ãŠããã°ç°¡åã«å確èªã§ããçµ±èšæ å ±ã§ãã
ã¯ãšãªãªããã£ãã€ã¶ãææ°ã®ããŒãã«çµ±èšãæã£ãŠããããšã確èªã§ããã®ã§ãã¯ãšãªãã©ã³ãå確èªããŠã¿ãŸãããã
ãã©ã³ã¯è€æ°ã®ã¢ãžã¥ãŒã«ã§æ§æãããããããã®ã¢ãžã¥ãŒã«ãåå¥ã®ã¢ã¯ã·ã§ã³ã»ãããå®è¡ããŸããã¢ãžã¥ãŒã«ã¯äºãã«åŒã³åãè€æ°ååŒã³åºããããã®ããããŸãããã®ã¢ãžã¥ãŒã«ã¯ãã¹ã¿ãŒããããåå²ããååå²ã«å¯ŸããŠäžŠåã«ã¢ãžã¥ãŒã« A ãåŒã³åºããŸãã
ãã®ç¹å®ã®åãåããèšç»ã¯ã䞊ååã®æ°ããæ¹æ³ã§ãã Adaptive Parallel å®è¡ã䜿çšããŠããŸããæ§ããŒãžã§ã³ã®è£œåã§ã¯ã䞊ååãããã¯ãšãªãã©ã³ã¯å°ãç°ãªã£ãŠèŠããŸãã
ã¯ãšãªãå床å®è¡ãããšã䞊ååã«ãã£ãŠã¯ãšãªæéãççž®ãããŠããããšãããããŸããããããã¯ãšãªãã©ã³ã¯ãŸã ãã¹ã¿ãŒãããã®èªã¿èŸŒã¿ãš ID ã®ã«ãŒããå«ãã§ããŸãã
çæ³çã«ã¯ãèªã¿èŸŒãããŒã¿éãæžããããã«ã€ã³ããã¯ã¹ã䜿çšããããšã§ããå Žåã«ãã£ãŠã¯ãæåŸ ãããšãã«ã€ã³ããã¯ã¹ã䜿çšãããªãããšããããŸãããã®ãããªå Žåã¯ãã€ã³ããã¯ã¹ãååšããéžæå¯èœã§ããããšã確èªããŠãã ãããã€ã³ããã¯ã¹ã®æ§ç¯äžããããã¯ã€ã³ããã¯ã¹ã®æ§ç¯ã«å€±æããåŸãã€ã³ããã¯ã¹ãç¡å¹ã«ãªã£ãŠããå¯èœæ§ããããŸãã
ããŒãã«ã«ã€ã³ããã¯ã¹ããããã©ããã確èªããã«ã¯ãSQL ãšã¯ã¹ãããŒã©ã§ããŒãã«ãéžæãã«ã¿ãã°ã®è©³çްã¿ããã¯ãªãã¯ããŠããã/ã€ã³ããã¯ã¹ãéžæããŸãã
ãŸã ã€ã³ããã¯ã¹ãèšå®ãããŠããªãã®ã§ã次ã®ã¹ãããã§ã¯ã€ã³ããã¯ã¹ã远å ããŸããããŸããŸãªã€ã³ããã¯ã¹ã倿Žã詊ããŠã¿ããšãããŒãã«ã®æ¿å ¥ãæŽæ°ãå逿äœã®ããã©ãŒãã³ã¹ã«åœ±é¿ãäžããå¯èœæ§ãããããšã«æ³šæããããšãéèŠã§ãããŸããã€ã³ããã¯ã¹ã¯ã¹ãã¬ãŒãžã®ã³ã¹ãã«ããªããããæ éã«è¿œå ããå¿ èŠããããŸããå¯èœã§ããã°ããŸã代衚çãªããŒã¿ãæã€ãã¹ãã·ã¹ãã ã§å€æŽãè¡ããæ¬çªã·ã¹ãã ã§å€æŽã宿œããåã«äœãæã广çã§ãããã確èªããŠãã ããã
ããã§ã¯ããã¹ãã·ã¹ãã ã«ã€ã³ããã¯ã¹ã远å ããŸãããã®ã¯ãšãªã«ã¯ããã©ã³ã¶ã¯ã·ã§ã³ã¿ã€ããšæ¥ä»ã® 2 ã€ã® WHERE æ¡ä»¶ãå«ãŸããŠããŸããããŒãã«ã®çŽåæ°ã®è¡ããã©ã³ã¶ã¯ã·ã§ã³ã¿ã€ããSELLããæã£ãŠãããšäºæ³ãããŸãããæ€çŽ¢å¯Ÿè±¡ã®æ¥ä»ãæã€è¡ã®æ°ã¯ãã£ãšå°ãªãã¯ãã§ãããã®ããããã©ã³ã¶ã¯ã·ã§ã³ã®æ¥ä»ã«ã€ã³ããã¯ã¹ã远å ããã¯ãšãªãããå°ãªãè¡ãèªã¿èŸŒããããã«ããŸãã
ãã®ã€ã³ããã¯ã¹ãäœæããã«ã¯ãcreate indexã³ãã³ããå®è¡ããŸãããã®ã³ãã³ãã¯èªåçã«ã€ã³ããã¯ã¹ãäœæããŸãã
ã¯ãšãªãã©ã³ãããäžåºŠèŠãŠã¿ãŸããããæåã®ã¢ãžã¥ãŒã« F ã¯ãã¯ãšãªã䞊åã«å®è¡ã§ããããã«ãã¹ã¿ãŒãããããµãç¯å²ã«åå²ããŸããã¢ãžã¥ãŒã« F ã¯ã¢ãžã¥ãŒã« A ãåŒã³åºããã¢ãžã¥ãŒã« B ã®çµæãä¿æãã temp ãã¡ã€ã«ãäœæããŸããã¢ãžã¥ãŒã« B ã¯ãå ã»ã©äœæããã€ã³ããã¯ã¹ãèªã¿èŸŒãã§ãäžèŽãããã©ã³ã¶ã¯ã·ã§ã³æ¥ãæã€è¡ã® ID ãèŠã€ãããã¹ã¿ãŒããããããããã®è¡ã ããèªã¿èŸŒã¿ãŸãã
ã¯ãšãªãå床å®è¡ãããšãå®è¡æéã 1 ç§ä»¥äžã«ççž®ãããŠããããšãããããŸãã
Tune Table ã®å®è¡ãšã€ã³ããã¯ã¹ã®è¿œå ã¯ããã®ã¯ãšãªã®å¹çã«å€§ããªåœ±é¿ãäžããŸãããä»ã«ãæ€èšãã¹ããªãã·ã§ã³ããããŸãã
1 ã€ã®ãªãã·ã§ã³ã¯ãSQL ãªããã£ãã€ã¶ã§æ§ã ãªãã©ã³ã®ããã©ãŒãã³ã¹ãæ¯èŒããããšã§ãããããã衚瀺ããã«ã¯ãSQL ãšã¯ã¹ãããŒã©ã®ããŒã«ã¡ãã¥ãŒãã Alternate Show Plans ãéžæããŸããããã§ãæé©åããããšããŠããã¯ãšãªãå ¥åãå¯èœãªã¯ãšãªãã©ã³ã衚瀺ããããšãã§ããŸããéžæããã¯ãšãªãã©ã³ã«ç¹å®ã®ã€ã³ããã¯ã¹ãæåŸ éãã«å«ãŸããŠããªãå Žåããããã®ãã©ã³ã®æ§èœããã¹ãããããšã¯ç¹ã«æçšã§ãããã®ã€ã³ããã¯ã¹ã䜿çšããã¯ãšãªãã©ã³ãéžæããŠè©Šãããšãã§ããã®ããã©ãŒãã³ã¹ã確èªããããšãã§ããŸãã
èæ ®ãã¹ããã 1 ã€ã®ãªãã·ã§ã³ã¯äžŠååŠçã§ããç§ãã¡ã®å ŽåãããŒãã«ãã¥ãŒãã³ã°ïŒTune tableïŒãŠãŒãã£ãªãã£ãå®è¡ããåŸãã¯ãšãªã¯ãã§ã«èªåçã«äžŠååãããŠããŸãããInterSystems IRIS ã¯ã倧éã®ããŒã¿ã«ã¢ã¯ã»ã¹ããã¯ãšãªã«å¯ŸããŠããã©ã«ãã§ãã®åŠçãè¡ããŸãã䞊ååãããå®è¡ã¯ãè€æ°ã®ããã»ã¹ã«äœæ¥ã忣ãå šäœã®å®è¡æéãççž®ããããšã§ã¯ãšãªã®ããã©ãŒãã³ã¹ãåäžãããŸããã·ã¹ãã ã«ãã£ãŠã¯ããã®AutoParallelèšå®ãç¡å¹ã«ãªã£ãŠããããã®èšå®ãè¡ãããéŸå€ãé«ãããå ŽåããããŸãããã®å Žåã%PARALLEL ãã³ãã䜿çšããŠããªããã£ãã€ã¶ã«äžŠååããããã«æç€ºããããšãã§ããŸãã
ã©ã®ãããªå€æŽãè¡ãããæ±ºãŸã£ãããé©åãªæé ã§çšŒå忢ãæå°éã«æããªããå®çšŒåã·ã¹ãã äžã§ãã®å€æŽãæšé²ããããšãã§ããŸãã
-
ãããªïŒè±èªïŒïŒOptimizing Your SQL Queries
InterSystems IRIS® data platform ã§å©çšå¯èœãª SQL æé©åããŒã«ã䜿çšããŠãããã©ãŒãã³ã¹ã®äœã SQL ã¯ãšãªãç¹å®ãé床ãåäžãããæ¹æ³ãã説æããŠããŸãïŒã¹ã©ã€ãã®PDFïŒã
3. 
ããŒã¿ã®æŽåæ§ãšã»ãã¥ãªãã£ã確ä¿ããªããSQL æäœãå®è£ ã管çããæ¹æ³ãã説æããŸãã
-
ããã¥ã¡ã³ãïŒSQL ããã©ãŒãã³ã¹åæããŒã«ããã
-
ããã¥ã¡ã³ãïŒSQL ã®ãŠãŒã¶ãããŒã«ãããã³ç¹æš©
-
ããã¥ã¡ã³ãïŒç£æ»
-
ãããªïŒè±èªïŒïŒNavigating SQL Privileges and Security in InterSystems IRIS
â¶æ¥æ¬èªåå¹
ãã®ãããªã§ã¯ãInterSystems IRIS ç°å¢ã«ããã SQL ç¹æš©ã®æŠèŠã説æããŸããæš©é管çãç£æ»æ©èœãSQL ã€ã³ãžã§ã¯ã·ã§ã³ã®è åšããã®ä¿è·ã ãã§ãªããçµ±åèªèšŒãšã®çµ±åãªã©ã®æŠç¥ã«ã€ããŠãåŠç¿ããŸãã
InterSystems IRIS ã§ã¯ãSQL ç¹æš©ã®ç®¡çã飿ºèªèšŒããã³æ¿èªãã¬ãŒã ã¯ãŒã¯ãšçµ±åããå¿ èŠããããŸããããã«ãããç°ãªãã·ã¹ãã ããã©ãããã©ãŒã éã§çµ±äžãããã»ãã¥ãªãã£ã»ããªã·ãŒãå¯èœã«ãªããçµç¹ã®ã¢ã¯ã»ã¹æš©ç®¡çèœåã匷åãããŸãã
ããšãã°ãOAuth 2.0 ã¯ãã¯ã©ã€ã¢ã³ãã HTTP ãµãŒãã¹ã«éå®çã«ã¢ã¯ã»ã¹ã§ããããã«ããèªèšŒãã¬ãŒã ã¯ãŒã¯ã§ããOpenID Connect ã¯ãOAuth 2.0 ã®èªèšŒããã»ã¹ãæ¡åŒµããèªèšŒã远å ãããã®ã§ãããããã®çµ±åã«ãããInterSystems IRIS ã¯ãäžå åãããããªã·ãŒæ±ºå®ã«åºã¥ããŠãŠãŒã¶ã®èªèšŒãšèªå¯ãè¡ãã管çãªãŒããŒããããç°¡çŽ åããã»ãã¥ãªãã£ã»ãããã³ã«ã匷åããããšãã§ããŸãã
InterSystems IRIS ã® SQL æš©éã¯ãæšæº SQL ã³ãã³ãã§ãã GRANT ããã³ REVOKE ã«ãã£ãŠç®¡çãããŸããäŸãã°ãæå®ããããŒãã«ã«å¯ŸããŠèªã¿åãæäœãå®è¡ããæš©éããŠãŒã¶ã«å²ãåœãŠãã«ã¯ãGRANT SELECT ON table_name TO user_name; ã䜿çšããŸãã
InterSystems IRIS ã§ã¯ãSELECTãINSERTãEXECUTE ãªã©ãããŒãã«ããã¥ãŒãããã·ãŒãžã£ãªã©ã®ç¹å®ã®ããŒã¿ããŒã¹ã»ãªããžã§ã¯ãã察象ãšãããªããžã§ã¯ãåºæã®ç¹æš©ããµããŒããããŠããŸãããŸããã¹ããŒãå šäœã®ãªããžã§ã¯ãç¹æš©ãäžåºŠã«æå®ããããšããµããŒãããè€æ°ã®ãªããžã§ã¯ãã«ãŸãããã»ãã¥ãªãã£ç®¡çãåçåããŸãããããã®ç¹æš©ãšäžŠãã§ã%CREATE_TABLE ã®ãããªããŒã ã¹ããŒã¹å šäœã«ãŸããã管çç¹æš©ããµããŒãããŠããŸãããããã¯ããŒã ã¹ããŒã¹å ã§é©çšãã管çè ã¯ããŒã¿ããŒã¹æ§æã®ããæ§é çãªåŽé¢ã管çããããšãã§ããŸãã
ãã®ãã现ããªå¶åŸ¡ã¯ãããŒã¿ããŒã¹ã»ã»ãã¥ãªãã£ç®¡çã®ãã¹ãã»ãã©ã¯ãã£ã¹ã§ããæå°ç¹æš©ã®ååãå®ãããã®åºæ¬ã§ããããã¯ããŠãŒã¶ãè·åãéè¡ããããã«å¿ èŠä»¥äžã®ç¹æš©ãåããªãããã«ããå¶çºçãŸãã¯æªæã®ããããŒã¿äŸµå®³ã®ãªã¹ã¯ãæå°éã«æãããã®ã§ãã
è€éãªã¢ããªã±ãŒã·ã§ã³ã§ã¯ãã¹ããŒãã圹å²ããšã«æŽçãããŠããŠãããã¹ãŠã®ãªããžã§ã¯ãã®æš©éãåå¥ã«è¡šçŸããã®ã¯é¢åã§ãããããå¹çåããããã«ãã¹ãã¢ãããã·ãŒãžã£ããµãŒããŒäžã®ããžãã¹ããžãã¯ãåã蟌ã¿ãŸãããããã®ããã·ãŒãžã£ã¯ CALL ãŸã㯠SELECT æ§æã§ã¢ã¯ã»ã¹ã§ããSQLãPythonããŸã㯠ObjectScript ã䜿çšããŠäœæã§ããŸããObjectScript ãš Python ã¯æãæè»æ§ãé«ããããã·ãŒãžã£ã®å®è£ ã§ SQL æãš ObjectScript ã³ãŒããç°¡åã«çµã¿åãããããšãã§ããŸãã
å€ãã® SQL æãå«ãè€éãªããžãã¹ã»ããžãã¯ãã«ãã»ã«åããããã«ãã¹ãã¢ãã»ããã·ãŒãžã£ã¯ããã·ãŒãžã£ã»ã¬ãã«ã§ EXECUTE æš©éãå²ãåœãŠãããå®çšçãªãã®ã§ããããã©ã«ãã§ã¯ãåã蟌㿠SQL ã¯ãã¹ãã¢ãã»ããã·ãŒãžã£ã»ã¬ãã«ã§æš©éãã§ãã¯ãé©çšãããããšãåæã«ãç¬èªã« SQL æš©éããã§ãã¯ããŸãããããã¯ãã¹ãã¢ãã»ããã·ãŒãžã£å ã§å®è¡ãããå šãŠã® SQL æäœã¯ãããã·ãŒãžã£èªäœã«å²ãåœãŠããã EXECUTE æš©éãç¶æ¿ããããšãæå³ããŸããããžãã¹ã»ããžãã¯å ã«è¿œå ã®ãã§ãã¯ã远å ããã«ã¯ã%CHECKPRIV æã䜿çšããŠããã·ãŒãžã£ã®å®è¡äžã«ç¹å®ã®ãŠãŒã¶æš©éãæ€èšŒã§ããŸãã
åãŠãŒã¶ãã·ã¹ãã ããŸãã¯ã¯ãšãªã«é©åãªç¹æš©ã»ãããæ±ºå®ããã«ã¯ãçµç¹å ã®ãŠãŒã¶ã®åœ¹å²ãšè²¬ä»»ã詳现ã«åæããå¿ èŠããããŸããInterSystems IRIS ã¯ã管çè ããããã®èšå®ã广çã«æ§æããããã®ããŒã«ãšã¬ã€ãã©ã€ã³ãæäŸããŸãã宿çã«æš©éãèŠçŽããŠãŒã¶ã®åœ¹å²ãçµç¹ã®ããªã·ãŒã®å€æŽã«åãããŠèª¿æŽããããšãéèŠã§ããããã«ãããæé©ãªã»ãã¥ãªãã£ãšæ©èœãç¶æããããšãã§ããŸãã
SQL ç£æ»ã¯ãå æ¬çãªã»ãã¥ãªãã£æŠç¥ã®éèŠãªã³ã³ããŒãã³ãã§ããInterSystems IRIS ã®ç£æ»æ©èœã«ãã管çè ã¯ãããŒã¿ã®å€æŽãã¢ã¯ã»ã¹è©Šè¡ãã¹ããŒãã®å€æŽãªã©ãããŒã¿ã㌠ã¹ã®ããŸããŸãªã¢ã¯ãã£ããã£ã远跡ãããã°ã«èšé²ããããšãã§ããŸãããããã®ãã°ã¯ãã»ãã¥ãªãã£ç£èŠããã©ã¬ã³ãžãã¯åæãèŠå¶èŠä»¶ãžã®æºæ ãããã³éçšäžã®ãã©ãã«ã·ã¥ãŒãã£ã³ã°ã®ããã«éåžžã«è²Žéã§ãã
ããããç£æ»ãã°ã¯éåžžã«è©³çްã§ããããããŒã¿ã倧éã«èç©ããããã®çµæããªãã®ã¹ãã¬ãŒãžãªãœãŒã¹ãå¿ èŠã«ãªããŸããã³ã¢ãªç£æ»äœæ¥ãã¢ãã¿ãªã³ã°ãšã¢ã©ãŒãã®ããã®æ¥çæšæºããŒã«ã§è£å®ããã®ãäžè¬çã§ãããããã®ããŒã«ã¯ãã»ãã¥ãªãã£æ å ±ã»ã€ãã³ã管çã·ã¹ãã ïŒSIEMïŒãšåŒã°ããçµç¹ã®ã»ãã¥ãªãã£ã匷åããŸãã
é©åãªèªèšŒãèªå¯ãããã³ç£æ»ããªã·ãŒã«ãããInterSystems IRIS SQL ã¯ãã¢ããªã±ãŒã·ã§ã³ã»ããŒã¿ã®å®å šãªå ŽæãæäŸããŸãã
SQL ã€ã³ãžã§ã¯ã·ã§ã³ãšåŒã°ãããSQL ããŒã¿ããŒã¹ãæ»æããããã«äœ¿çšãããäžè¬çãªææ³ãèŠãŠã¿ãŸãããã SQL ã€ã³ãžã§ã¯ã·ã§ã³ã§ã¯ãæªæã®ãããŠãŒã¶ãã¢ããªã±ãŒã·ã§ã³ã® SQL æã倿Žãé£çµã«ãã£ãŠæªæã®ããã³ãã³ãã远å ããããšããŸãã
é©åãªèªèšŒããªã·ãŒã¯ãããããã¢ããªã±ãŒã·ã§ã³ã«ã¢ã¯ã»ã¹ããããšãæ³å®ããŠããªããŠãŒã¶ãæé€ããã®ã«åœ¹ç«ã¡ã é©åã«æ§æãããèªå¯ããªã·ãŒã¯ãæªæã®ããã³ãã³ããæåããã®ãé²ãã¯ãã§ããç£æ»ããªã·ãŒã¯ã倱æãã詊ã¿ãå«ãã³ãã³ãããã¢ã©ãŒããããªã¬ãŒããã調æ»ãæ¯æŽãããããæ¹æ³ã§ãã°ã«èšé²ãããããã«ããŸãã
InterSystems IRIS å ã§ã¯ãSQL ã€ã³ãžã§ã¯ã·ã§ã³ããä¿è·ãããã©ã¡ãŒã¿åãããã¯ãšãªãªã©ã®ããã°ã©ãã³ã°ææ³ã䜿çšã§ããŸããäŸãã°ããŠãŒã¶å ¥åãçŽæ¥æã«é£çµããã®ã§ã¯ãªããSELECT * FROM users WHERE username = ? ããã«ãããå ¥åã¯ã³ãŒãã§ã¯ãªããã©ã¡ãŒã¿ãšããŠæ±ãããŸãã
InterSystems IRIS ã«ã¯ãSQL ã®æš©é管çã匷åããããã€ãã®æ©èœããããŸãããã¹ãã»ãã©ã¯ãã£ã¹ãå°å ¥ããããšã§ãInterSystems IRIS SQL ç°å¢ã®ã»ãã¥ãªãã£ãšæŽåæ§ãå€§å¹ ã«åŒ·åããããšãã§ããŸããããŒã¿ããŒã¹ç®¡çè ãšã»ãã¥ãªãã£å°éå®¶ã¯ãæ°ããªè åšããä¿è·ãèŠå¶åºæºãžã®ã³ã³ãã©ã€ã¢ã³ã¹ã確ä¿ããããã«ã ã»ãã¥ãªãã£æŠç¥ãç¶ç¶çã«è©äŸ¡ãé²åãããå¿ èŠããããŸãããããã®ååãé©çšããããšã§ã貎éãªããŒã¿è³ç£ãä¿è·ããããšãã§ããŸãã