ã³ã³ã·ã¥ã¼ããµã¼ãã¹ã®éç¨ã«èããDBæ§è½è¨è¨ã¨ã¯
JOIN ç¦æ¢ã®è©±ã«ããã¾ã ã«çµ¡ãã§ããã人ãããã
â 「艦これ」から、ソーシャル系のサーバ構成を考える - SQLer 生島勘富 の日記
åã以åã«æ¸ããæ¬ãã¼ãã«é¢ããã¨ã³ããªã¯ä»¥ä¸ã®ï¼ã¤ã
â 信じられないDB文化「Join禁止」に「固定長DB」、、でも、合うんです。大規模コンシューマ向けサービスのRDB設
â 信じられないDB文化「固定長DB」でもあうんです。大規模コンシューマ向けサービスのRDB設計
â ホント信じられないDB文化だけど、統計情報固定化はマジでアリ
ã¡ããã©æãããã¦ãã®ä¼ç¤¾ã®ãªã©ã¯ã«å¥³åãæ¸ããã¨ã³ããªã®ç¶ããå
¬éããã¾ããã
â 一緒にまなぼ!「hiromi と楽しむOracleパフォーマンスチューニング!」【Vol.2 Statspackを見てみよう】
ã¨ãããã¨ã§åã®ä¸ã§DBç±ãçãä¸ãã£ã¦ããã®ã§è¿ççãªã¨ã³ããªãæ¸ãã¾ãã
ãã¨ããããã¡ã¢ãªã ãæ°ã«ãã¦ãããã®è¨è¨ã¯éç¨ã§ã¯éç¨ããªãã
ãRDBMS ã¯ã大éã®ãã¼ã¿ãå¦çãããã¨ãç®çã«ä½ããã¦ãç¾å¨ã®ãã¼ãã¦ã§ã¢ç°å¢ã§ããã° CPU ã使ããããã¨ã¯ããªãé£ãããã¡ã¢ãªã¼ã足ããªããªããã¨ãã»ã¨ãã©ã§ããç¹ã«ãä¸ã¤ä¸ã¤ã®å¦çã¯åç´ã§ã大éã®ã¢ã¯ã»ã¹ãæããã¨ãéè¦ãªã½ã¼ã·ã£ã«ç³»ã®ã·ã¹ãã ã§ã¯ããã¡ã¢ãªã¼ãå¹ççã«å©ç¨ãããã¨ã ããæ°ã«ãã¦ããã°åé¡ãªããã¨è¨ãåã£ã¦ãéè¨ã§ã¯ããã¾ããã
「艦これ」から、ソーシャル系のサーバ構成を考える - SQLer 生島勘富 の日記
åç §å ã§ã¯ã¡ã¢ãªãããã«ããã¯ã®ã»ã¨ãã©ã¨è¨ã£ã¦ã¾ããããããã«ããã«ã¯ç°è«ãããã¾ããã
ã¡ã¢ãªã®è¨è¨ãã¹ãåå ã¨ãã¦çºçããé害ã¯ç°¡åãªæ§è½è©¦é¨ãããã°åç¾ãããã¨ãå¤ãã®ã§ãæ¯è¼ç解決ãç°¡åãªäºè±¡ã§ãã
éç¨æã«æ¬å½ã«åä»ã§ã¢ã¼ããã¯ãã£çãªè¨è¨ãå¿ è¦ã¨ããã®ã¯ããã©ãã£ãã¯ã®æ¥æ¿ãªå¢å ãçµå¹´ãããã¨ã«ãããã¼ã¿ã®å¤åã«ãã£ã¦å¼ãèµ·ããããé害ã§ãã
çµé¨çã«ã¯ãããã©ãã£ãã¯ã®æ¥æ¿ãªå¢å ã«èµ·å ããé害ã¯ãã¡ã¢ãªããããã£ã¹ã¯I/Oãããã«ããã¯ã«ãªããã¨ã®æ¹ãå¤ãã§ãã
ã¡ã¢ãªããããã£ã¹ã¯I/Oã®æ¹ãã³ã¹ãé«ãªã®ã§ããã£ã¹ã¯I/Oãè©°ã¾ãæ¹ãäºè±¡ã¨ãã¦ç¾ããããã®ã¯å½ç¶ã¨è¨ãã¾ãã
ã³ã³ã·ã¥ã¼ããµã¼ãã¹ãçµé¨ããã¦ããªãæ¹ã¯ãä¼æ¥ã·ã¹ãã ã®ãã©ã³ã¶ã¯ã·ã§ã³ã®ã¬ãã«ã§ãã¥ã¼ãã³ã°ãèããã®ã§ãããããã©ããã®ä¸ç観ã®éããèªèã§ããªããã°åå ¥æã«æçã代éãæããããäºã«ãªãã¨æãã¾ãã
ã³ã³ã·ã¥ã¼ããµã¼ãã¹ãæ®éã«ããããã¦ããã©ãã£ãã¯ãæ¥å¢ããæã«ç¡çã§ã¡ã¢ãªã ãã®è¦³ç¹ã§ã®ãã¥ã¼ãã³ã°ç¨åº¦ã§éç¨ã«çªã£è¾¼ãã°ãä»ã®ææ°ãã¼ãã§ãããã¨CPUããããã100%ã§å¼µãä»ãã¾ãã
æ³å®å¤ã®ãã©ãã£ãã¯ã«åãããã¦ããªãã£ããã¨ãéå¶å´ã®ãã¹ã¨ãªãã¨ããã®ãã³ã³ã·ã¥ã¼ããµã¼ãã¹ã®ä¸çã§ãã
Oracle㧠SQLãã¯ã«ã¢ããè¨ãããæã«çºçããçµå¹´å£åã«é¢ããåé¡
åç
§å
ã§ä¸»å¼µããã¦ãããSQLã®ãã¯ããã¯ã«ã¢ããè¨ããããããªã¢ããªã«ãã¦ãã¾ãã®ã¯ã
ã³ã³ã·ã¥ã¼ãã¼ãµã¼ãã¹ã®éç¨ä¸ã§ã¯ãããæ§è½ä½ä¸ãå¼ãèµ·ãããããªãå±éºãªä½ãã ã¨æãã¾ãã
ããã¯éçºæããè¦ã¦ããªãã¨ã³ã¸ãã¢ã¨ãéç¨ãä¸å¿ã«è¦ã¦ããã¨ã³ã¸ãã¨ã§å¤§ããéã£ã¦è¦ããã®ã§ã¯ãªããã¨æãã¾ãã
SQLã®æ¸ãæ¹ã§ããã©ã¼ãã³ã¹ãæé©åããæ¹æ³ã¨ããã®ã¯ããã¤ãããã¾ãããå¤ãã®ãã¯ããã¯ã¯ãã®æç¹ã®ç°å¢ã«æé©åããSQLãä½ã£ã¦ãã¾ããã¡ã§ãã
ããããªããã大è¦æ¨¡ãã¼ã¿ã§ãããã¨ãªãããã¨ã§ãããã¼ã¿ãã¼ã¹ã®ç°å¢ã¨ãããã®ã¯çµå¹´ãããã¨ã«å¤åãã¦ããã¾ãã
ç¶æ³ã®å¤åã«ä¸çªå¼·ãã®ã¯ã·ã³ãã«ã§ããã¨ãããã¨ã ã¨æã£ã¦ãã¾ãã
ç¹ã«å¤§éãã¼ã¿ãæ±ãSQLã¯ãç¶æ³ã®å¤åã«å¼·ãä½ãã«ãã¦ããã¹ãã§ãããã
Joinç¦æ¢ã¯æ¥µç«¯ãªä¾ã§ãããåã¯Joinç¦æ¢ã¨ã¾ã§ã«ã¼ã«å³æ ¼åããå¿
è¦ã¯ãªãã¨æã£ã¦ãã¾ãã
ãããããããããã®å§¿å¢ã§è¨ãã§ãæªããªããããSQLã¯ã·ã³ãã«ã§ããæ¹ã好ã¾ããã¨ã¯æãã¾ãã
ä¾ãã°ãã·ã³ãã«ã§ãªãSQLã¯Oracle ã§ããã°CBOï¼ã³ã¹ããã¼ã¹ãªããã£ãã¤ã¶ï¼ãå©ç¨ããããªããã£ãã¤ã¶çµ±è¨æ å ±ãã®æ´æ°æã«æ§è½åé¡ãçºçããå¯è½æ§ãé常ã«é«ããªãã¾ãã
ãªããã£ãã¤ã¶çµ±è¨æ å ±ã«ã¤ãã¦ã®è©±ã¯ãホント信じられないDB文化だけど、統計情報固定化はマジでアリ - 山本大の日記ã«æ¸ãã¾ããã
Oracleã®çµ±è¨æ å ±ï¼ãªããã£ãã¤ã¶çµ±è¨æ å ±ï¼ã¨ã¯
çµ±è¨æ å ±ã¨ã¯ãæ£å¼å称ããªããã£ãã¤ã¶çµ±è¨æ å ±ãã¨ãããOracleãSQLã解æãã¦æé©ãªå®è¡è¨ç»ãä½æããããã«å©ç¨ããæ å ±ã§ããã
å®è¡è¨ç»ãä½æããæ©è½ã®ãã¨ãCBOï¼ã³ã¹ãã»ãã¼ã¹ã»ãªããã£ãã¤ã¶ï¼ã¨ããããã®ãªããã£ãã¤ã¶åãã®çµ±è¨çãªæ å ±ã ããããªããã£ãã¤ã¶çµ±è¨æ å ±ã¨å¼ã°ãããçµ±è¨æ å ±ã®å®ä½ã¯ä½ãã¨ããã¨ããã¼ã¿ãã¼ã¹ã®åãã¼ãã«ã»åã¤ã³ããã¯ã¹ã«ã©ã ã®å¾åã表ãããã¼ã¿ãã£ã¯ã·ã§ããªãã¼ã¿ã§ããã
ä¾ãæããã¨ãä¾ãã°ã¦ã¼ã¶ãã¼ãã«ã«ï¼ï¼ï¼ä¸ä»¶ã®ãã¼ã¿ãå ¥ã£ã¦ãããããã¼ãã«çµ±è¨æ å ±ã¨ãã¦ï¼ï¼ï¼ä¸ä»¶ã®ã¬ã³ã¼ããããã¨ãããã¨ãè¨é²ããããSQLãã¥ã¼ãã³ã°ã®åºæ¬ä¸ã®åºæ¬ã¯ãã¤ã³ããã¯ã¹ãå¹æçã«ä½¿ããã¨ã§ããã
ããã«ç´ã¥ãã¦ãçµ±è¨æ å ±ã¨ããã®ã¯ããã©ã¼ãã³ã¹ãã¥ã¼ãã³ã°ã®æéè¦äºé ã¨ãããã
ãªããã£ãã¤ã¶çµ±è¨æ
å ±ãæ´æ°ããã¨ï¼ã¤ã®æ§è½é¢é£ã®å½±é¿ãçºãããã¨ã«ãªãã¾ãã
ã»ãªããã£ãã¤ã¶çµ±è¨æ
å ±ã®æ´æ°å¦çãã®ãã®ãCPUã«ããªãã®è² è·ãããã
ã»ãªããã£ãã¤ã¶çµ±è¨æ
å ±ãæ´æ°ãåãã¦ãSQLã®ãã¼ããã¼ã¹ãçºçãCPUè² è·ãããã
ã»ãªããã£ãã¤ã¶çµ±è¨æ
å ±ã®æ´æ°å¾ãSQLã®å®è¡ãã¹ãå¤ãã£ã¦ãã¾ãå
ã®æ§è½ã¨å¤§ããæ¹åã¾ãã¯æ¹æªãã
å®éã«ãåãã®ããã¸ã§ã¯ããä¸åº¦ãå®è¡è¨ç»æ´æ°ã«é¢ããé害ãå¼ããäºãããã¾ãã
ãã®è©±ãホント信じられないDB文化だけど、統計情報固定化はマジでアリ - 山本大の日記ã«æ¸ãã¾ããã
è½ã¨ãç©´ã¨ã¯ãCBOãå®è¡è¨ç»ãå¤æ´ããã¨ãã«çºçããããã¼ããã¼ã¹ãã¨å¼ã°ããå¦çã®ã³ã¹ãã«èµ·å ããã
ãã®ãã¼ããã¼ã¹å¦çãããç¥ããã¦ãããã¨ã ãçµæ§CPUã³ã¹ããé«ãããã¼ã¿ãã¼ã¹ã®è² è·ãé«ãæãªã©ã¯ï¼ç§ãï¼ç§ãã®ãã¼ãã«ã¸ã®ã¢ã¯ã»ã¹ãå ¨ã¦åæ¢ããã
æã ãæ§ç¯ãããããªå¤§è¦æ¨¡ã³ã³ã·ã¥ã¼ãåããµã¼ãã¹ã§ãï¼ç§æ¢ã¾ãã¨ï¼ï¼ä»¶ãããã®ã¢ã¯ã»ã¹ã«å½±é¿ãããã
å®éï¼ç§æ¢ã¾ã£ãã
å¯æ¬¡çã«ä½ãèµ·ãã£ããã¨ããã¨ã
å ¨ä½çãªå¦çé 延
â
ã³ãã¯ã·ã§ã³ãã¼ã«ã®æ¯æ¸
â
ãµã¼ãã¹å ¨åæ¢
ã¨ãããåã¾ããã³ã³ãã§ãã£ãã
ãããé²ãæ½çã¯ããã¤ãããã¨æãã¾ãã
ãããæ¢ã«æ¸ãããã¨ã§ã¯ããã¾ãããåãã®å¯¾çã¯ä¸è¨ã®ãããªãã®ã§ããã
åãã¯ãã®ç¾è±¡ãå½åããèªãã§ãã¾ãããï¼å¶å¾¡ãããã¦ããªãé¨åãç«ãå¹ãããã©ï¼
ã ããããªããã£ãã¤ã¶çµ±è¨æ å ±ã¯æä½æ¥ã§è¨å®ãåºå®åããã¨ãã決æããã¦ãã¾ããã
ãªããã£ãã¤ã¶çµ±è¨æ å ±ãã³ãã³ãå¤ãããªããã°ãã¼ããã¼ã¹ã¯é »çºãã¾ããã
ãã ãããã¼ã¿ãæé·ãç¶ããã¨ãã¦ãæå¹ãªãªããã£ãã¤ã¶çµ±è¨æ
å ±ãç®åºããã«ã¯SQLãã·ã³ãã«ã§ãªããã°é£ããã§ãã
SQLã§ãã¯ããã¯ãæ«é²ããã®ã¯ããããå¦çãã¬ãã¼ãã£ã³ã°ãªã©ã®ã³ã³ã·ã¥ã¼ãã¼ã®ã¢ã¯ãã£ããã£ã«çµã³ã¤ããªãå¦çã§æ´»ç¨ããã¹ãããªã¨æãã¾ãã
ã³ã³ã·ã¥ã¼ãã¼ãµã¼ãã¹ã®ç´°ããã¦è¨å¤§ãªãã©ãã£ãã¯ãèãã¦ã¯ããã¾ããã
ä¸çã®éããèªèãã¦æ¬²ããã¨æãã¾ãã
ã¾ã¨ã
ã³ã³ã·ã¥ã¼ããµã¼ãã¹ã®DBã®ç¹å¾´ã¯ã
ãã©ãã£ãã¯ãæ¥æ¿ã«å¢å ããäºãããã¨ãããã¨ã¨
ãã¼ã¿ãèç©ããããã¨ã«ãã£ã¦å¤§ãããã¼ã¿æ¤ç´¢ã®ç°å¢ãå¤ããã¨ããã¨ããããªã¨æãã¾ãã
ãããããã¡ãã¨åé¿ããããã®è¨è¨ã¨ãã¦ãã¡ã¢ãªã«ãã©ã¼ã«ã¹ãã¦ãã¥ã¼ãã³ã°ãããSQLãã¯ããã¯ãé©åã«ä½¿ããã¨ãã解決çã ãã§ã¯ãã¾ããããªãã¨æãã¾ããã
追è¨
ãã³ã¡ã«ä¸è¨ã®éããã£ãã
ã½ã¼ã·ã£ã«ã²ã¼ã ã«ãããJOINç¦æ¢ã®çç±ã¨æå³ãç解ãã¦ããªãããä¸é©åãªå®è¡è¨ç»ããããªãã¦ããã¼ãã«ã§ç¸¦ã«å²ããªãããã£ã¦åç´ãªçç±ãªããã ããä»ã«é¢ãã¦ãå ¨ãç解ãã¦ããªããã
ãããããè¨ã£ã¦ãªãã£ããã¾ãææãããã¨ãã§ãã
ãã¼ãã«ã§ç¸¦ã«å²ãè¨è¨ããã¦ã¾ããããã¦ã¼ã¶ã§æ¨ªã«å²ãè¨è¨ããã¾ããã
縦ã§å²ãã£ã¦è¨ãã®ã¯ãã¦ã¼ã¶ãå
±æããã¹ããã¼ã¿ï¼ã©ã³ãã³ã°ã¨ããã¹ã¿ã£ã½ãã®ã¨ãï¼ã¯ãã¼ãã«åä½ã«è¡¨é ååºåã£ã¦åé¢å¯è½ã«ãããã¨ã§ãã
ãããJoinç¦æ¢ã§æ¡ããããã£ãæ½çã®ä¸ã¤ã§ã¯ããã¾ãããããã®ç¨åº¦ã§ããã°ãããã¥ã¼ãªãã§è§£æ±ºå¯è½ã¨ããåè«ãäºæãã¦ãé¢åãªã®ã§ããã¦Joinç¦æ¢ã¨ãã·ã³ãã«SQLã®çç±ã«ããã¦ã¾ããã
横ã§å²ãã£ã¦ããã®ã¯ãã¦ã¼ã¶åºæã®ãã¼ã¿ã«ã¤ãã¦ãåä¸æ§æã§è¤è£½ããDBã«æããã¦IDåä½ã«æ¯ãåãã¦ã¾ããã
ãã®ä»ãå
¨ãç解ãã¦ããªãã¨ããé¨åã¯è©³ããèãããããã§ãã
ãã¾ã
åé ã§è§¦ããã¦ãã®ä¼ç¤¾ã®ãªã©ã¯ã«å¥³åã¨ããã®ã¯ãã¾ãã«ä¸è¨ã§è©±é¡ã«ãã¦ããæ¡ä»¶ã§ä¸ç·ã«DBæ
å½ããã£ã¦ããé¨ä¸ã§ãã
ä¸è¨ã®ãªããã£ãã¤ã¶çµ±è¨æ
å ±ã®æåã»ããã彼女ããã£ã¦ãã¦ãCBOã®åããèªãã§æé©ãªãªããã£ãã¤ã¶çµ±è¨æ
å ±ã®ç®åºãããã¨ããæãæã£ã¦ãã¾ããä¸é¨ã§ã¯ãã´ãããã³ããã¨å¼ã°ãã¦ãã¾ããã
ä¸è¨ã®è¨äºãSTATSPACKã®èªã¿æ¹è¬åº§ããçµæ§æ°åããå
¥ã£ã¦ãã®ã§ãããã£ããä¸èªãã ããï¼
â 一緒にまなぼ!「hiromi と楽しむOracleパフォーマンスチューニング!」【Vol.2 Statspackを見てみよう】
ã»http://www.kronos-jp.net/technologies/knowledge/08_stories/892.html
ã»http://www.kronos-jp.net/technologies/knowledge/08_stories/1197.html
ã»信じられないDB文化「固定長DB」でもあうんです。大規模コンシューマ向けサービスのRDB設計 - 山本大の日記
ã»信じられないDB文化「Join禁止」に「固定長DB」、、でも、合うんです。大規模コンシューマ向けサービスのRDB設計 - 山本大の日記
ã»ホント信じられないDB文化だけど、統計情報固定化はマジでアリ - 山本大の日記