ããŒã¿ã®ã¯ãšãªããã³æ€çŽ¢ã®å®è¡
åŠç¿ã®ç®ç
ãã®åå ãå®äºãããšã次ã®ããšãã§ããããã«ãªããŸãã
- 倧éããŒã¿ã®åŠçæã«ããã©ãŒãã³ã¹ãæãªãããšãªãã¯ãšãªãå®è¡ããã
- äžæ¬ã¯ãšãªã䜿çšããŠãå€§èŠæš¡ãªããŒã¿ã»ããã«å¹ççã«ã¯ãšãªãå®è¡ããã
- 䜿çšé »åºŠã®é«ãé
ç®ããŸãšããã¹ãããŒããŒãã«ã䜿çšããã¡ãªããã説æããã
æ€çŽ¢ã¢ãŒããã¯ãã£
çµç¹ã«èšå€§ãªããŒã¿ãä¿åããã°ããã©ãŒãã³ã¹ã«åœ±é¿ããå¯èœæ§ããããééããªãæ€çŽ¢ã«ã圱é¿ãåã³ãŸããæ€çŽ¢ãšã¯ãèªç±åœ¢åŒã®ããã¹ãã«åºã¥ããŠã¬ã³ãŒããç §äŒããæ©èœã§ããSalesforce ã®æ€çŽ¢ã¢ãŒããã¯ãã£ã¯ãç¬èªã®ããŒã¿ã¹ãã¢ã«åºã¥ãããã®ããã¹ãã®æ€çŽ¢åãã«æé©åãããŠããŸãã
ããŒã¿ãæ€çŽ¢ãããããã«ã¯ãäºåã«ã€ã³ããã¯ã¹ãä»ããããŠããå¿ èŠããããŸããã€ã³ããã¯ã¹æ€çŽ¢ãå®è¡ãããšããŸãé©åãªã¬ã³ãŒãã®ã€ã³ããã¯ã¹ãæ€çŽ¢ãããæ¬¡ã«ã¢ã¯ã»ã¹æš©éãæ€çŽ¢å¶éããã®ä»ã®æ€çŽ¢æ¡ä»¶ã«åºã¥ããŠçµæãçµã蟌ãŸããŸãã
ãããŠãéåžžã¯é¢é£æ§ãæãé«ãçµæãå«ãçµæã»ãããäœæãããŸããçµæã»ãããäºåå®çŸ©ããããµã€ãºã«éãããšãæ®ãã®ã¬ã³ãŒããç Žæ£ãããŸããç¶ããŠããã®çµæã»ããã䜿çšããŠããŒã¿ããŒã¹ã®ã¬ã³ãŒããç §äŒããããŠãŒã¶ãŒã«è¡šç€ºãããé ç®ãååŸãããŸãã倧éã®ããŒã¿ã远å ãŸãã¯å€æŽãããŠããå Žåã«ã¯ããã®ããã»ã¹å šäœã«æéããããããšããããŸãã
ã¯ãšãªã®äœ¿çš
次ã®ã·ããªãªãèããŠã¿ãŠãã ãããç¡é§ã®ãªããªããžã§ã¯ãããããšããŸããã€ã³ãã°ã¬ãŒã·ã§ã³ãã«ã¹ã¿ã ã® Visualforce ããŒãžã®ã³ãŒãã¯ãã¹ãŠèšè¿°ããããã¹ãããŒã¿ã§ã¯ãã¡ããšåäœããŠããŸããã顧客ãã·ã¹ãã ã䜿ãå§ãããšããããã¹ãŠããŸããã£ãŠããŸããããã ããçµç¹ã«å€§éããŒã¿ãèªã¿èŸŒãŸãããèç©ããããããæç¹ã§ãããã©ãŒãã³ã¹ãå€§å¹ ã«äœäžãå§ããŸãã
ãã®è§£æ±ºçãšãªãã®ãã¯ãšãªã®äœæã§ããã¯ãšãªã¯ãLDV ãåŠçã§ããçµç¹ã®èšèšã«ãããŠéµãæ¡ããŸããããã§éèŠãªç¹ã¯ãéžæçãªãªã¹ããã¥ãŒãã¬ããŒããSOQL ã¯ãšãªãèšèšããããšãšãã¯ãšãªã®æé©åã«ã€ããŠçè§£ããããšã§ãã
SOQL ã¯ãšãªãš SOSL ã¯ãšãª
æ€çŽ¢ã«ã¯ãSOQL ã¯ãšãªãš SOSL ã¯ãšãªã®ããããã䜿çšããŠã¢ã¯ã»ã¹ã§ããŸããSOQL ã¯ãå-芪ãªã¬ãŒã·ã§ã³ (å€ãã®å Žåã¯å€å¯Ÿäž) ã®ã¯ãšãªãã芪-åãªã¬ãŒã·ã§ã³ (ã»ãŒãã¹ãŠãäžå¯Ÿå€) ã®ã¯ãšãªã«äœ¿çšã§ããŸãã
SOSL ã§ã¯é ç®å ã®è€æ°ã®çšèªãããŒã¯ã³åããŠãããããæ€çŽ¢ã€ã³ããã¯ã¹ãæ§ç¯ã§ããŸãã
SOQL ãš SOSL ã¯ãšãªã®å¶éäºé :
- 1 ã€ã®ãã©ã³ã¶ã¯ã·ã§ã³ã§å®è¡ã§ãã SOSL æ€çŽ¢ã®å¶é㯠20 åã§ãã
- ãã©ã³ã¶ã¯ã·ã§ã³ã« SOSL æ€çŽ¢ã 1 åãããªããã° (ããããããšã¯ãããããŸã)ãSOSL 㯠40,000 ä»¶ã®ã¬ã³ãŒããè¿ãããšãã§ããŸãããã®ã»ããåããã©ã³ã¶ã¯ã·ã§ã³ã§ SOQL ã 50,000 ä»¶ã®ã¬ã³ãŒããè¿ãå¯èœæ§ããããŸãã
- ãã©ã³ã¶ã¯ã·ã§ã³ã§ SOSL æ€çŽ¢ãäœåãå®è¡ãããå Žåãæå€§ 20 åã® SOSL æ€çŽ¢ã®ååã§è¿ãããã¬ã³ãŒãã®æå€§æ°ã¯ 2,000 ä»¶ã§ã (äŸ: 20 åã®å SOSL æ€çŽ¢ã§æå€§ 2,000 ä»¶ã®ã¬ã³ãŒããè¿ãããã°ããã©ã³ã¶ã¯ã·ã§ã³ã® 40,000 ä»¶ã®ã¬ã³ãŒãå¶éã«éããŸã)ã
ã¯ãšãªãªããã£ãã€ã¶ãŒ
Salesforce ã§ã¯ãã«ãããã³ãã¢ãŒããã¯ãã£ã䜿çšããããããæ¯æŽãªãã«ããŒã¿ããŒã¹ã·ã¹ãã ã®ãªããã£ãã€ã¶ãŒã§ Salesforce ã¯ãšãªãå¹ççã«æé©åããããšã¯ã§ããŸããããã®ãã Salesforce ãã©ãããã©ãŒã ã«ã¯ãç¬èªã®ã¯ãšãªãªããã£ãã€ã¶ãŒãæèŒãããŠããŸãããã®ãªããã£ãã€ã¶ãŒã¯ã€ã³ããã¯ã¹ä»ãé ç®ã掻çšããŠããã®ã¯ãšãªã«ãšã£ãŠæãå¹ççãªå®è¡ãã©ã³ãäœæããããŒã¿ããŒã¹ã·ã¹ãã ã®ãªããã£ãã€ã¶ãŒã Salesforce ã¯ãšãªã®å¹æçãªå®è¡ãã©ã³ãçæã§ããããã«ããŸãã
ã¯ãšãªãªããã£ãã€ã¶ãŒã«ã¯ãåã€ã³ããã¯ã¹ã®ããŒã¿ã®ååžã«é¢ããçµ±èšæ å ±ã瀺ãããŒãã«ãä¿æãããŠããŸãããã®ããŒãã«ãåºã«äºåã¯ãšãªãå®è¡ããŠãã€ã³ããã¯ã¹ã䜿çšãããšã¯ãšãªãå éãããã©ããã倿ããŸãããã®ãªããã£ãã€ã¶ãŒã¯ãã¬ããŒãããªã¹ããã¥ãŒãSOQL ã¯ãšãªãšããã«æ±ãåãããã»ãã®ã¯ãšãªã®äž¡æ¹ãåŠçããç®çã§èªåçæãããã¯ãšãªã§æ©èœããŸãã
Apex äžæ¬åŠç
äžè¬ã«ãå€§èŠæš¡ãªããŒã¿ã»ããã«ã¯ãšãªãå®è¡ããŠåŠçããæé©ãªæ¹æ³ã¯ããããåäœã§éåæåŠçããããšã§ããApex ã®äžæ¬åŠçã䜿çšããã°ãæå€§ 5,000 äžä»¶ã®ã¬ã³ãŒãã«ã¯ãšãªãå®è¡ããŠåŠçã§ããŸãã
Apex ã®äžæ¬åŠçã¯ãã¹ãŠã®äœ¿çšäºäŸã§æ©èœããããã§ã¯ãããŸããã (ããšãã°ã50,000 件以äžã®ã¬ã³ãŒããç §äŒããå¿ èŠããã Visualforce ããŒãžãªã©ã®ããã«åæçã«äœ¿çšããå Žåã¯æ©èœããŸãã)ãããŒã«ãããã«åããŠããã¹ãåªããææ³ã§ãã
äžæ¬ã¯ãšãª
å€§èŠæš¡ãªããŒã¿ã»ãããå¹ççã«ç §äŒãããã 1 ã€ã®æ¹æ³ãäžæ¬ã¯ãšãªã§ããäžæ¬ã¯ãšãªã§ã¯ãæå€§ 15 GB ã®ããŒã¿ã 15 åã® 1 GB ã®ãã¡ã€ã«ã«åå²ããŠååŸã§ããŸããçµæã 1 GB ãè¶ ããå Žåã¯ãå¿çã宿ãããããã®ãã¡ã€ã«ã远å ãããŸãã
Bulk API ã¯ãšãªã§ã¯ãquery ãš queryAll ã®äž¡æ¹ã®æäœããµããŒããããŠããŸããqueryAll æäœã§ã¯ãmerge ãŸã㯠delete ã«ãã£ãŠåé€ãããã¬ã³ãŒããè¿ãããŸããqueryAll æäœã§ã¯ãŸããã¢ãŒã«ã€ãæžã¿ã® ToDo ã¬ã³ãŒããè¡åã¬ã³ãŒãã«é¢ããæ å ±ãè¿ãããŸãã
äžæ¬ã¯ãšãªãžã§ãã«ãããã远å ãããšãã¯ãèŠæ±ã®ããããŒã® Content-Type ã«ããžã§ãã®äœææã«æå®ããã³ã³ãã³ãã¿ã€ãã«å¿ããŠãtext/csvãapplication/xmlãapplication/json ã®ãããããæå®ããå¿ èŠããããŸãããããã«æå®ããå®éã® SOQL ã¹ããŒãã¡ã³ãã¯ãå¹³æããã¹ã圢åŒã§è¡šãããŸãã
äžæ¬ã¯ãšãªã®åŠçæ¹æ³
äžæ¬ã¯ãšãªãåŠçãããšãSalesforce ã§ã¯ãšãªã®å®è¡ã詊è¡ãããŸããæšæºã®ã¿ã€ã ã¢ãŠãå¶é (2 å) å ã«ã¯ãšãªãå®è¡ãããªããã°ããžã§ãã«å€±æããQUERY_TIMEOUT ãšã©ãŒãè¿ãããŸãããã®å Žåã¯ãåçŽãªã¯ãšãªã«æžãæããŠãããããåéä¿¡ããŠãã ããã
ã¯ãšãªãæ£åžžã«å®è¡ããããšãSalesforce ã§çµæã®ååŸã詊è¡ãããŸããçµæã 1 GB ã®ãã¡ã€ã«ãµã€ãºå¶éãè¶ ããŠããããååŸã« 5 å以äžãããå Žåã¯ãåŠçãå®äºããçµæããã£ãã·ã¥ãããæ¬¡ã®è©Šè¡ãè¡ãããŸãã詊è¡åæ°ã 30 åãè¶ ãããšããžã§ãã倱æãã[Retried more than thirty times (詊è¡åæ°ã 30 åãè¶ ããŸãã)] ãšãããšã©ãŒã¡ãã»ãŒãžãè¿ãããŸãããã®å Žåã¯ãPK Chunking ããããŒã䜿çšããŠãã¯ãšãªã®çµæãå°ããªãã£ã³ã¯ã«åå²ããããšãæ€èšããŠãã ãã (PK Chunking ã«ã€ããŠã¯ãåŸç¶ã®åå ã§è©³è¿°ããŸã)ã詊è¡ã«æåãããšãçµæãè¿ããã7 æ¥éä¿åãããŸãã
ã¹ãããŒããŒãã«ã®äœ¿çš
ããšãã°ãã³ãŒãã£ã³ã°ã®ãã¹ããã©ã¯ãã£ã¹ã«åŸããSalesforce ã«ã¹ã¿ããŒãµããŒãã®å©ããåããŠå¿ èŠãªå Žæã«ã«ã¹ã¿ã ã€ã³ããã¯ã¹ãé 眮ããã®ã«ãäŸç¶ãšããŠããã©ãŒãã³ã¹ã®åé¡ãçºçããŠãããšããŸããã¬ããŒããããã·ã¥ããŒãã®ã¿ã€ã ã¢ãŠãã«é¢ããèŠæ ããŠãŒã¶ãŒããå¯ããããVisualforce ããŒãžããã³ãŒã«ããã SOQL ã®åäœã次第ã«é ããªã£ãŠããŸããäœãäœã§ãããã©ãŒãã³ã¹ãæ¹åãããå¿ èŠãããå Žåã«ã¯ãç¹å¥ã®åŒ·åãªè§£æ±ºçããããŸããã¹ãããŒããŒãã«ã§ãã
ã¹ãããŒããŒãã«ã¯ã«ã¹ã¿ã ããŒãã«ã§ãSalesforce ã®æšæºãŸãã¯ã«ã¹ã¿ã ã®åºæ¬ãªããžã§ã¯ãã«ããé ç®ã®ãµãã»ããã§æ§æãããŸãã
ã¹ãããŒããŒãã«ã¯ Salesforce ã®åºæ¬ãªããžã§ã¯ããããè¡ãçããã¹ãã£ã³ããããŒã¿ãå°ãªããããããŒã¿ããŒã¹ã®ååŸããšã«ããå€ãã®è¡ãè¿ãããšãã§ããå€§èŠæš¡ãªãªããžã§ã¯ãããèªã¿èŸŒãå Žåã®ã¹ã«ãŒããããåäžããŸã (äžå³ãåç §)ã

ãŸããã¹ãããŒããŒãã«ã«ã¯è«çåé€ãããè¡ (ãã¿ç®±å ã«ãã isDeleted ã true ã®ã¬ã³ãŒã) ã¯å«ãŸããªããããéåžžã¯ããŒãã«ã®å®¹éãæžå°ããŸããåºæ¬ããŒãã«ã®ã«ã¹ã¿ã ã€ã³ããã¯ã¹ãè€è£œãããåºã«ãªãããŒã¿ããŒã¹ã®ã¯ãšãªã§çããããŒãã«çµåãæžå°ãããããéåžžã¯ããã©ãŒãã³ã¹ãåäžããŸãã
ã¹ãããŒããŒãã«ã«ãã£ãŠã¯ãšãªãå éããäžäŸãšããŠæ¬¡ã®ãããªå ŽåãæããããŸãã幎éã¬ããŒããŸãã¯å¹ŽåºŠçޝèšã¬ããŒããäœæãããšãã«ã01/01/16 ïœ 12/31/16 ã®ãããªæ¥ä»ç¯å²ã䜿çšãããšå埩èšç®ãå¿ èŠãšãªããã³ã¹ããããããŸãã代ããã«ãã¹ãããŒããŒãã«ã« Year é ç®ã远å ããã°ãYear = '2016' ã§çµã蟌ãããšãã§ããŸãã
ãã©ãããã©ãŒã ã§åºæ¬ãªããžã§ã¯ããšã¹ãããŒããŒãã«ã®è¡ãèªåçã«åæããããããåžžã«ææ°ã®ããŒã¿ã衚瀺ãããŸããã¯ãšãªã®å®è¡æã«ãã©ãããã©ãŒã ããã¹ãããŒããŒãã«ã®äœ¿çšãé©ããŠãããšæãããç¶æ³ã倿ãããããã¬ããŒããä¿®æ£ããããApex ã³ãŒãã API ã³ãŒã«ãäœæãããããå¿ èŠã¯ãããŸããã
ã¹ãããŒããŒãã«ã圹ç«ã€ã®ã¯ç¹ã«äœçŸäžä»¶ãã®ã¬ã³ãŒããããããŒãã«ã§ããã¹ãããŒããŒãã«ã¯ãã«ã¹ã¿ã ãªããžã§ã¯ããããã³ååŒå ãååŒå 責任è ãåè«ããªãŒããã±ãŒã¹ã®åãªããžã§ã¯ãã«äœæã§ããŸãããããŠãã¬ããŒãããªã¹ããã¥ãŒãSOQL ã®ããã©ãŒãã³ã¹ãåäžãããããšãã§ããŸãã
ã¹ãããŒããŒãã«ã¯ãããã©ãŒãã³ã¹ã®åé¡ãæ¯æ£ãã䟿å©ãªææ®µã§ãããã ãããã¹ãŠã®äœ¿çšäºäŸã«å¯Ÿå¿ãããšã¯éãããå¹ççãªã€ã³ããã¯ã¹ãä»ãã Salesforce ã®åºæ¬ãªããžã§ã¯ãããã®èªã¿èŸŒã¿ä»¥äžã®ããã©ãŒãã³ã¹ã®æ¹åã¯èŠèŸŒããªãããšããããŸããããžãã¹ããã»ã¹ã«å¶éãŸãã¯è² è·ããããããšãããããã坿¬¡ç圱é¿ã«ã€ããŠãçè§£ããŠããå¿ èŠããããŸãã
以äžã¯ãã¹ãããŒããŒãã«ãå®è£ ããå Žåãäºåã«èæ ®ããŠããã¹ãäºé ã§ãã
-
ã¹ãããŒããŒãã«ã¯å¿
èŠæå°éã§ãããããã©ãŒãã³ã¹ãæé©ãªãã®ã«ããããã«ãç¹å®ã®ããžãã¹äœ¿çšäºäŸã®éè¡ã«å¿
èŠãªæäœéã®é
ç®ã»ããã®ã¿ã§æ§æãããŸããåŸã
ãã¬ããŒããŸã㯠SOQL ã¯ãšãªã«é
ç®ã远å ããããšã«ããå Žåã¯ãSalesforce ã«ã¹ã¿ããŒãµããŒãã«é£çµ¡ããŠããŒãã«ãäœæãçŽãå¿
èŠããããŸãã
-
Full Sandbox ã®å Žå: ã¹ãããŒããŒãã«ã¯ Full Sandbox çµç¹ã«ã³ããŒãããŸããã»ãã®çš®é¡ã® Sandbox ã§ã¯ãã¹ãããŒããŒãã«ã¯ Sandbox çµç¹ã«ã³ããŒãããŸãããFull Sandbox 以å€ã® Sandbox ã§æ¬çªçšã¹ãããŒããŒãã«ãæå¹ã«ããã«ã¯ãSalesforce ã«ã¹ã¿ããŒãµããŒãã«ãåãåãããã ããã
-
ã¹ãããŒããŒãã«ã¯åºç€ãšãªãããŒã¿ããŒã¹ã®ã«ã¹ã¿ã ããŒãã«ã§ãããåºæ¬ãªããžã§ã¯ãã«èŠããããããªã¡ã¿ããŒã¿ã®åçãªæè»æ§ã¯ãããŸãããããŒã¿åã倿Žãããš (æ°åé
ç®ããããã¹ãé
ç®ã«å€æŽããå Žåãªã©)ãã¹ãããŒããŒãã«ãç¡å¹ã«ãªããSalesforce ã«ã¹ã¿ããŒãµããŒãã«é£çµ¡ããŠæ°ããã¹ãããŒããŒãã«ãäœæãçŽãå¿
èŠããããŸãã
倧éããŒã¿ãäŒŽãæ€çŽ¢ãè¿ éã«è¡ãããã®æ°çš®é¡ã®ããŒã«ãç¿åŸãããšããã§ãããŒã¿ã®èªã¿èŸŒã¿ã«é¢ããæ¬¡ã®åå ã«é²ã¿ãŸãããã
ãªãœãŒã¹
- Salesforce éçºè : Long- and Short-Term Approaches for Tuning Force.com Performance (Force.com ã®ããã©ãŒãã³ã¹ã調æŽããé·æçããã³çæçãªã¢ãããŒã)
- Salesforce éçºè : éåžžã«å€§ãã SOQL ã¯ãšãªã®åŠç
- PDF: Force.com SOQL Best Practices: Nulls and Formula Fields (Force.com SOQL ãã¹ããã©ã¯ãã£ã¹: NULL é ç®ãšæ°åŒé ç®)
- Salesforce éçºè : 倧éã®ããŒã¿ã䜿çšãããªãªãŒã¹ã®ãã¹ããã©ã¯ãã£ã¹/SOQL ãš SOSL
- Salesforce éçºè : äžæ¬ã¯ãšãªã®åŠçæ¹æ³
- Salesforce éçºè : 倧éã®ããŒã¿ã䜿çšãããªãªãŒã¹ã®ãã¹ããã©ã¯ãã£ã¹
- Salesforce éçºè : äžæ¬ã¯ãšãªãµã³ãã«ã®èª¬æ
- PDF: Query & Search Optimization Cheat Sheet (ã¯ãšãªããã³æ€çŽ¢æé©åã®ããã®æ©èŠè¡š)