ã¨ã ã¹ãªã¼ã¨ã³ã¸ãã¢ãªã³ã°ã°ã«ã¼ãããã¼ã¿åºç¤ãã¼ã ã®ç³å¡ã§ãã ãã®è¨äºã¯ãã¼ã¿åºç¤ãã¼ã & Unit9ï¼ã¨ããã³ã¹åµåºãããã¯ããã¼ã ï¼ ããã°ãªã¬ã¼5æ¥ç®ã®è¨äºã§ããååã¯ä¸æµ¦ããã® ãSQL課é¡ï¼æã®éåãé£ç¶ããæéã®éåã«ã¾ã¨ãã¦ãã ãããã§ããã
ã¨ã ã¹ãªã¼ãæä¾ãããµã¼ãã¹ã®ä¸ã«ã¯ãä»ãä¸é¨ã§ãªã³ãã¬ãã¹ç°å¢ã®Oracleãæ´»ç¨ãã¦ããã·ã¹ãã ãããã¾ããç§ãã¡ã¯ããããã®ã·ã¹ãã ã«ã¤ãã¦ãã³ã¹ãå¹çãã¡ã³ããã³ã¹æ§ãããã«åä¸ããããããOracleã¸ã®ä¾åãæ®µéçã«æ¸ããã¦ããããã¸ã§ã¯ããé²ãã¦ãã¾ãã
ãã®ããã¸ã§ã¯ããæ¨é²ããä¸ã§ãããããããã©ã®ã·ã¹ãã ãã©ããããOracleãåç §ãã¦ããã®ãï¼ãã¨ãã宿 ã®æ£ç¢ºãªææ¡ã大ããªèª²é¡ã¨ãªãã¾ãããç¹ã«ãSQLãè§£æãã¦ã©ã®ãã¼ãã«ã«ã誰ãããã¤ã¢ã¯ã»ã¹ãããã観測ããOracleã¸ã®ä¾ååº¦ãæ£ç¢ºã«æ¸¬å®ããå¿ è¦ãããã¾ãããããã¸ã§ã¯ãã®é²æãå¯è¦åããããåæ å½ãã¼ã ã«å ·ä½çãªãã¼ã¿ããã£ã¦ååããé¡ããããããããã«ãããã®åç §è¨é²ã¯ä¸å¯æ¬ ãªæ å ±ã§ããã
ããã§ç§ãã¡ã¯ãOracleä¸ã§å®è¡ãããåç §ã¯ã¨ãªã詳細ã«è¨é²ããåæããããã®ä»çµã¿ãæ§ç¯ãããã¨ã«ãã¾ããã
ã¨ããããããé²ãã¦ã¿ãã¨ãæ¨æ¥å®è¡ããã¯ãã®ã¯ã¨ãªããªãï¼ï¼ãã¨ããæãã¬å£ã«ã¶ã¤ããã¾ããæ¬è¨äºã§ã¯ããã®åå ã ã£ãv$sqlareaã®æ®çºæ§ã®ä»æ§ã¨ãç§ãã¡ãã©ã®ããã«ãã¦ãã®èª²é¡ã¨åãåããv$sqlstatsãªã©ãçµã¿åããã¦ã¯ã¨ãªã®åéçãåä¸ããã¦ãã£ããããã®è©¦è¡é¯èª¤ã®éã®ãããç´¹ä»ãã¾ãã
- æåã®è©¦ã¿ã¨ãã¯ã¨ãªãæ¶ãããåé¡ã®çºç
- 解決çï¼ç²¾åº¦åä¸ã®ããã®åããæ
- ã¾ã¨ã
- We are hiring!!
æåã®è©¦ã¿ã¨ãã¯ã¨ãªãæ¶ãããåé¡ã®çºç
ãªãv$sqlareaãé¸ãã ã®ã
Oracleã®ã¯ã¨ãªå±¥æ´ãåå¾ã§ãããã¥ã¼ã¯ããã¤ãããã¾ãããç§ãã¡ã¯å½åv$sqlarea*1ã®æ´»ç¨ã決ãã¾ããã
ãã®çç±ã¯ãç§ãã¡ãå®ç¾ãããã£ããSQLãè§£æãã¦ãã©ã®ãã¼ãã«ã«ã誰ãããã¤ã¢ã¯ã»ã¹ãããããåæããä¸ã§ãçæ³çãªæ
å ±ãæã£ã¦ããããã§ããv$sqlareaã¯ã¯ã¨ãªæ¬æã ãã§ãªããPARSING_USER_IDï¼å®è¡ã¦ã¼ã¶ã¼ï¼ãPARSING_SCHEMA_NAMEï¼å®è¡ã¹ãã¼ãï¼ãããã¦MODULEï¼å®è¡ã¢ã¸ã¥ã¼ã«ï¼ã¨ãã£ããã¯ã¨ãªã®å¼ã³åºãå
ãç¹å®ããããä»å æ
å ±ãè±å¯ã§ãããç¹ã«MODULEæ
å ±ã«ã¯ãpython@ãµã¼ãã¼åãã®ããã«è¨é²ããããããã©ã®ã¢ããªã±ã¼ã·ã§ã³ããå®è¡ãããã¯ã¨ãªãªã®ããå¾ããåæããä¸ã§éå¸¸ã«æå©ã ã¨èãã¾ããã
å½åã®é£æºã¢ã¼ããã¯ãã£
å½åã®ã¢ã¼ããã¯ãã£ã¯ä»¥ä¸ã®éãã§ãã
- æ¥æ¬¡é£æº: 1æ¥ã«1åãæ·±å¤ï¼24æåï¼ã«Embulkã使ããOracleã®
v$sqlareaã®å½æ¥åãã¼ã¿ãBigQueryã¸é£æºã - ãã¼ã¿æ´å½¢: 飿ºå¾ãCloud Functionsãããªã¬ã¼ãã¦BigQueryä¸ã®çãã¼ã¿ãæ´å½¢ã
- ãã¼ãã«æä¾: æ´å½¢å¾ã®ãã¼ã¿ãããã¼ãã«åä½ã§ãã©ã®ã¦ã¼ã¶ã¼ãããã©ã®ã¯ã¨ãªãã使ã£ããåãããããªè¦ãããå½¢ã®ãã¼ãã«ã«ãã¦ãåæç¨éã§æä¾ã
ãæ¶ããã¯ã¨ãªãã®è¬
ãã®ä»çµã¿ã§é 調ã«ã¯ã¨ãªå©ç¨ç¶æ³ãå¯è¦åã§ããã¯ãã§ãããããããéç¨ãéå§ãã¦ãã°ããçµã£ãããæ¥ãå©ç¨è ãããããªé£çµ¡ãèãè¾¼ã¿ã¾ãã
ããããããã®ã¢ã¯ã»ã¹ããããããªãã§ãããBigQueryã§æä¾ãã¦ããã£ã¦ããåç §è¨é²ã«ã¯ããã®ã¯ã¨ãªãæ®ã£ã¦ããªãããã«è¦ãã¾ãâ¦ã
ç§ãã¡ã¯æ©é調æ»ãéå§ãããããµã¼ãã¼å´ã®å®è¡ãã°ãããã°ã©ã ã確èªããã¨ã確ãã«å¯¾è±¡ã®ã¯ã¨ãªã¯Oracleãã¼ã¿ãã¼ã¹ã«åãã¦å®è¡ããã¦ãã¾ããããããç§ãã¡ãBigQueryä¸ã«æ§ç¯ããåç §è¨é²ã®ãã¼ãã«ã«ããã®ãã¼ã¿ã¯åå¨ãã¦ãã¾ããã§ããã
ããã§ãç§ãã¡ã¯v$sqlareaã®æ§è³ªãæãåºãã¾ããããã¯ãåçããã©ã¼ãã³ã¹ãã¥ã¼ãã§ããããã¼ã¿ã¯æ°¸ç¶çã«ä¿åãããããã§ã¯ãªããæ®çºæ§ã®ã¡ã¢ãªä¸ã«ä¸æçã«ä¿æãããã¨ããç¹ã§ãã
æ¥æ¬¡ã§ã®é£æºã§ã¯ãæ·±å¤ã®é£æºã¿ã¤ãã³ã°ããåã«ã¡ã¢ãªä¸ããæ¶ãã¦ãã¾ã£ãã¯ã¨ãªã¯ãæ°¸é ã«è¿½è·¡ã§ããªãã®ã§ã¯ãªããï¼
ãã®ä»®èª¬ãããç§ãã¡ã¯v$sqlareaã®æ®çºæ§ã¨ã®æ¦ããå§ãããã¨ã«ãªãã¾ããã
解決çï¼ç²¾åº¦åä¸ã®ããã®åããæ
v$sqlareaã®æ®çºæ§ãåå ã ã¨ä»®èª¬ãç«ã¦ãç§ãã¡ã¯ãã¾ãã·ã³ãã«ãªè§£æ±ºçã試ã¿ã¾ããã
対ç1ï¼é£æºé »åº¦ã®å¼·åã¨ãã試è¡é¯èª¤
ãã¡ã¢ãªããæ¶ããåã«é£æºããã°ãããããã®åç´ãªçºæ³ãããã¾ã1æ¥1åã ã£ã飿ºãæ¯æé£æºã«å¤æ´ãã¾ããã ããããçµæã¯ç¡æ ã«ãå¤ããããææã®ãã£ããããã®ã¯ã¨ãªã¯ãä¾ç¶ã¨ãã¦åç §è¨é²ã«ç¾ãã¾ããã§ããã
ãã ãä¸ã¤åç©«ãããã¾ãããåå¾ã§ããã¯ã¨ãªã®ç·æ°ããããã«å¢å ããã®ã§ãããã®ãã¨ãããã飿ºé »åº¦ãä¸ãããã¨ããæ¹åæ§èªä½ã¯ééã£ã¦ããªãã¨ç¢ºä¿¡ãã¾ããã
ããã§æ¬¡ã«ãBigQueryã«é£æºããv$sqlareaã®ãã¼ã¿ã使ããã¯ã¨ãªã®å®è¡åæ°ãæé帯ãã¨ã«åæãã¾ãããããã¨ãAM6æãAM11æã®æé帯ã«ã¯ã¨ãªã®å®è¡ãéä¸ãã¦ãããã¨ãåããã¾ããã
ãã®åæçµæã«åºã¥ããç§ãã¡ã¯æ¬¡ã®ä»®èª¬ãç«ã¦ã¾ãã ãã¯ã¨ãªãéä¸ãããã¼ã¯ã¿ã¤ã ã ããããã«é£æºé »åº¦ãä¸ããã°ãå¹ççã«åå¾çãä¸ããããã®ã§ã¯ãªããï¼ã
æ©éããã®ä»®èª¬ãæ¤è¨¼ãããããAM6æãAM11æã®éã¯10åééã§é£æºãããããã¢ã¼ããã¯ãã£ãä¿®æ£ããã®çµæãã¤ãã«åå¾ã§ãã¦ããªãã£ããããã®ã¯ã¨ãªããåç §è¨é²ã«è¨é²ãããããã«ãªãã¾ããã
対ç2ï¼æå¾ã®1å²ãåããããã®v$sqlstatsæ´»ç¨
åé¡ã®ã¯ã¨ãªã¯åå¾ã§ãã¾ãããããä»ã®ã¯ã¨ãªã«ããã¾ã 飿ºæ¼ããããã®ã§ã¯ãªããï¼ãã¨ããç念ãæãã¾ããã§ããã
ããã§ãèªåãã¡ã®ææ³ãã©ããããã®ã¯ã¨ãªãã«ãã¼ã§ãã¦ããã®ãã"æ£è§£"ã¨æ¯è¼ãã¦ç²¾åº¦ã測å®ãããã¨ã«ãã¾ããã
ãã®"æ£è§£"ã¨ãã¦ç½ç¾½ã®ç¢ãç«ã¦ãã®ããOracleã®ç£æ»æ©è½ã§ããUNIFIED_AUDIT_TRAIL*2ã§ããããã¯ããã¼ã¿ãã¼ã¹ã«å¯¾ããã»ã¼å
¨ã¦ã®æä½ãè¨é²ã§ããå¼·åãªæ©è½ã§ãããã©ã¼ãã³ã¹ã¸ã®å½±é¿ã¯å¤§ãããã®ã®ãæãä¿¡é ¼æ§ã®é«ããã°ã§ãã
ç§ãã¡ã¯QAç°å¢ã§ãã®ç£æ»ãã°ãæå¹ã«ããv$sqlareaãé«é »åº¦ã§åå¾ããæã
ã®ææ³ã®ã¬ã³ã¼ãã¨çªãåãããã«ãã¼çãæ¸¬å®ãããã¨ã«ãã¾ããã
ãã®çµæãã«ãã¼çã¯ç´90%ã
ååãªã«ãã¼çãªã®ã§ã¯ã¨æã䏿¹ã§ããæ®ãã®1å²ã«ãããè¦ã¤ãããã¯ã¨ãªãé ãã¦ãããããããªããã¨ããæ¸å¿µãæ¨ã¦ããã¾ããã§ããã
ããã§ããã®1å²ã®æ¼ããåããããã«ç§ãã¡ã次ã«åã£ã対çããv$sqlstats*3ã®æ´»ç¨ã§ãã
v$sqlstatsã¯v$sqlareaã¨åæ§ã«ã¯ã¨ãªã®çµ±è¨æ
å ±ãè¨é²ããåçããã©ã¼ãã³ã¹ãã¥ã¼ã§ãããä¸ã¤æ±ºå®çãªéããããã¾ããããã¯ãå
±æãã¼ã«ãããã¼ã¿ãç¡å¹åãããå¾ããæ
å ±ãæ®çºããªãã¨ããç¹å¾´ã§ãã
ãã ãããã¬ã¼ããªããããã¾ããv$sqlstatsã¯v$sqlareaã«æ¯ã¹ã¦ãPARSING_USER_IDãªã©ã®ä»å æ
å ±ãå°ãªããå¾ãããæ
å ±ãéå®çã§ãã
| ãã¥ã¼ | ã¡ãªãã | ãã¡ãªãã |
|---|---|---|
v$sqlarea |
ä»å æ å ±ãè±å¯ | æ®çºæ§ããããæ¶ãããã |
v$sqlstats |
æ®çºãããæ®ãããã | ä»å æ å ±ãå°ãªã |
ãã®ç¹æ§ãæ´»ãããç§ãã¡ã¯ä»¥ä¸ã®ãããªãã©ã¼ã«ããã¯æ§æãèæ¡ãã¾ããã
åºæ¬ã¯æ å ±ãªãããª
v$sqlareaã使ããããããã«ãã¼ã¿ããªããã°ãæ å ±ã¯å°ãªããªãã確å®ã«è¨é²ãæ®ã£ã¦ããv$sqlstatsã®æ å ±ã§è£å®ããã
ãã®åããæã§å度ã«ãã¼çãè¨ç®ãã¦ã¿ãã¨ãããçµæã¯ã»ã¼100%ï¼ ã¤ãã«ãç§ãã¡ã¯ä¿¡é ¼æ§ã®é«ãã¯ã¨ãªå±¥æ´åéã®ä»çµã¿ãæã«å ¥ããã®ã§ãã

ã¾ã¨ã
æ¬è¨äºã§ã¯ãOracleã®ã¯ã¨ãªå±¥æ´ãBigQueryã¸é£æºããéã«ç´é¢ããv$sqlareaã®æ®çºæ§ã®ä»æ§ã¨ããããä¹ãè¶ããããã®è©¦è¡é¯èª¤ã®éç¨ããç´¹ä»ãã¾ããã
ä»åã®åãçµã¿ã§å¾ãããéè¦ãªãã¤ã³ãã¯ä»¥ä¸ã®éãã§ãã
v$sqlareaã¯ä¾¿å©ã ãæ®çºæ§ããã: ä»å æ å ±ãè±å¯ã§ãããã¡ã¢ãªããæ¶ãããããããæ¥æ¬¡é£æºãªã©ã§ã¯ã¯ã¨ãªã®åããã¼ããçºçãã¾ãã- ãã¼ã¿ã«åºã¥ããé«é »åº¦é£æºãæå¹: ã¯ã¨ãªã®å®è¡æé帯ãåæãããã¼ã¯ã¿ã¤ã ã«é£æºé »åº¦ãä¸ãããã¨ã§ãå¹ççã«åéçãæ¹åã§ãã¾ããã
v$sqlstatsã¨ã®åããæãç¾å®è§£:v$sqlareaã®å¼±ç¹ããæ®çºããªãv$sqlstatsã§è£å®ãããã¨ã§ãããã©ã¼ãã³ã¹ã¸ã®å½±é¿ãæãã¤ã¤ãåéçã大ããåä¸ããããã¨ãã§ãã¾ããã
Oracleã®åçããã©ã¼ãã³ã¹ãã¥ã¼ã¯ãæè»½ã«è±å¯ãªæ å ±ãå¾ããã䏿¹ã§ããã®ç¹æ§ãæ£ããçè§£ããªãã¨æãã¬è½ã¨ãç©´ã«ã¯ã¾ããã¨ãããã¾ããä»åã®ç§ãã¡ã®çµé¨ã示ãããã«ãããããã®ãã¥ã¼ã®ã¡ãªããã»ãã¡ãªãããææ¡ããç®çã«å¿ãã¦è¤æ°ã®ãã¥ã¼ãçµã¿åããã¦æ´»ç¨ãããã¨ããããè¯ããã¼ã¿åéã«ç¹ããã®ã§ã¯ãªãã§ããããã
æå¾ã¾ã§ãèªã¿ããã ãããããã¨ããããã¾ããã
We are hiring!!
ã¨ã ã¹ãªã¼ã§ã¯ããã¼ã¿æ´»ç¨ãã·ã¹ãã æ¹åã«ä¸ç·ã«åãçµãã§ãããã¨ã³ã¸ãã¢ãåéãã¦ãã¾ãï¼ãèå³ã®ããæ¹ã¯ããã²ä»¥ä¸ã®ãªã³ã¯ãããå¿åãã ããã
*1:https://docs.oracle.com/cd/F32587_01/refrn/V-SQLAREA.html
*2:è£è¶³ï¼ãªãæåããUNIFIED_AUDIT_TRAILã使ããªãã£ãã®ã?çç±ã¯ä¸»ã«ä»¥ä¸ã®2ç¹ã§ãã1.æ¬çªç°å¢ã§å¸¸æç£æ»ãæå¹ã«ãããã¨ã«ãããããã©ã¼ãã³ã¹å£åãæ¸å¿µããããã2.v$sqlareaã§åå¾ã§ããMODULEæ å ±ãªã©ããå½åã®ç®çï¼å¼ã³åºãå ã®ç¹å®ï¼ã«ååã ã£ãããããã®ãããã¾ãã¯å½±é¿ã®å°ãªãåçããã©ã¼ãã³ã¹ãã¥ã¼ããã®ã¢ããã¼ãã鏿ãã¾ããã
*3:https://docs.oracle.com/cd/F32587_01/refrn/V-SQLSTATS.html