Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Modeler   Code  
»áÔ±   
 
   
 
 
     
   
 ¶©ÔÄ
  ¾èÖú
Oracle 12c in memory ×é¼þdz̸
 
  À´Ô´:CSDN   ·¢²¼ÓÚ 2016-1-27
  2392  次浏览      28
 

Ëæ×ÅÐÅÏ¢ËѼ¯¼¼ÊõµÄ²»¶Ï³ÉÊ죬´óÁ¿µÄ¹«Ë¾ÒѾ­»ýÀÛÁ˺£Á¿µÄÊý¾Ý£¬ÓÚÊÇÓдóÁ¿µÄ¿Í»§ÐèÒªÒ»ÖÖÄܹ»¶Ô´óÁ¿Êý¾Ý½øÐÐʵʱ·ÖÎöµÄ¼¼ÊõÀ´Âú×ã¾ö²ßÖ§³ÖÀàÐ͵ÄÓ¦Óã¬ÊµÏÖ¶Ôº£Á¿Êý¾ÝµÄʵʱ·ÖÎö¡£Óë´Ëͬʱ£¬Ô½À´Ô½¶àµÄÆóÒµÓû§Ò²ÐèÒªÄܹ»Âú×ã»ìºÏÐÍÓ¦Ó㬼´´«Í³µÄOLTPÓ¦ÓúÍOLAPÓ¦ÓÃͬʱÔËÐеÄÊý¾Ý¿âϵͳ£¬ÊµÏÖ»ùÓÚʵʱÊý¾ÝµÄ¾ö²ßÖ§³Ö¡£

Ëæ×ÅOracle12cÍÆ³öÁËinmemory×é¼þ£¬Ê¹µÃOracleÊý¾Ý¿â¾ßÓÐÁË˫ģʽÊý¾Ý´æ·Å·½Ê½£¬´Ó¶øÄܹ»ÊµÏÖ¶Ô»ìºÏÀàÐÍÓ¦ÓõÄÖ§³Ö£º´«Í³µÄÒÔÐÐÐÎʽ±£´æµÄÊý¾ÝÂú×ãOLTPÓ¦Óã»ÁÐÐÎʽ±£´æµÄÊý¾ÝÂú×ãÒÔ²éѯΪÖ÷µÄOLAPÓ¦Óá£Inmemory×é¼þ¿ÉÒÔºÍÆäËûÊý¾Ý¿â×é¼þ¹¦ÄÜʹÓ㬲¢²»ÐèÒªÓû§µ¥¶À¿ª·¢»òÕßÐÞ¸ÄÓ¦ÓóÌÐò£¬¾Í¿ÉÒԷdz£·½±ãµÄʵÏÖ»ùÓÚʵʱÊý¾Ý¿â·ÖÎöµÄת±ä¡£±¾ÎÄ»á½éÉÜinmemory×é¼þµÄһЩÏà¹ØÖªÊ¶£¬°üº¬ÁËÒÔϵÄÄÚÈÝ£º

-ÁÐʽ´æ´¢µÄ»ù±¾ÖªÊ¶

-·ÃÎÊinmemoryareaÖеÄÊý¾Ý

-InmemoryºÍRACµÄÈÚºÏ

1.ÁÐʽ´æ´¢µÄ»ù±¾ÖªÊ¶¡£

1.1ÄÚ´æ½á¹¹

´«Í³µÄÊý¾Ý¿â²ÉÓõÄÊÇÐÐʽ´æ´¢£¬µ±Ò»¸öÊÂÎñ·¢Éúʱ£¬oracle»á¶ÔÒ»ÐУ¨»ò¶àÐУ©Êý¾Ý½øÐвÙ×÷£¬Ò²¾ÍÊÇ˵Êý¾ÝµÄ²Ù×÷µ¥Î»ÊÇÒ»ÐÐÊý¾Ý£¬¼´Ê¹¿ÉÄÜÐèÒª±»·ÃÎʵÄÊý¾ÝÖ»ÊÇÆäÖеöÁУ¬ÕâÖÖÊý¾Ý±£´æ·½Ê½¶ÔÒÔDMLΪÖ÷µÄOLTPÓ¦ÓÃÊǷdz£Êʺϣ¬Ò²ÊǷdz£¸ßЧµÄ¡£µ«ÊÇÔÚOLAPϵͳµ±ÖУ¬Õë¶Ô´óÁ¿Êý¾ÝµÄ²éѯ²Ù×÷ÊÇÕ¼¾ø¶ÔµØÎ»µÄ£¬¶øÕâЩ²éѯÍùÍùÖ»Õë¶Ô±íÖÐÒ»Ð©ÌØ¶¨µÄÁС£ÁíÍ⣬Êý¾ÝµÄ¸Ä±ä¶¼ÊÇÒÔÊý¾Ý×°ÔØµÄ·½Ê½·¢ÉúµÄ£¬Ò²¾ÍÊÇ˵Êý¾Ý±»×°Ôص½Êý¾Ý¿âºóÊǼ«ÉÙ·¢Éú¸Ä±äµÄ£¬ºÁÎÞÒÉÎÊÒÔÁеķ½Ê½×éÖ¯Êý¾ÝÎÞÒÉÊǸüºÃµÄÑ¡Ôñ¡£ÕýÊÇÒòΪÕâÁ½ÖÖ´æ·ÅÊý¾ÝµÄ·½Ê½¸÷ÓÐÀû±×£¬ÎÞÂÛÒÔÄÄÒ»ÖÖ·½Ê½À´±£´æÊý¾Ý¶¼ÎÞ·¨ºÜºÃµÄÂú×ã»ìºÏʽӦÓõÄÊý¾Ý¿âϵͳµÄÒªÇó£¬OracleÍÆ³öÁËËùνµÄ˫ģʽÊý¾Ý´æ·Å·½Ê½£ºÔÚ´ÅÅÌ(Ò²¾ÍÊÇÊý¾ÝÎļþ)ºÍdatabasebuffercacheÖÐÒÔÐеÄÐÎʽ´æ·ÅÊý¾Ý£»µ¥¶À¿ª±ÙÒ»¿éÄÚ´æ¿Õ¼ä£¨inmemoryarea£©£¬ÆäÖÐÒÔÁеķ½Ê½±£´æÊý¾Ý£¬Âú×ãOLAPÀàÐ͵IJéѯÐèÇó¡£¶øOracleÖ®ËùÒÔÑ¡Ôñµ¥¶À¿ª±ÙÒ»¿éÄÚ´æÀ´±£´æÁÐģʽÊý¾ÝµÄÖ÷ÒªÔ­ÒòÖ®Ò»¾ÍÊÇOLAPµÄÓ¦ÓÃÊÇÒÔ²éѯΪÖ÷µÄ£¬¶øÇÒÊý¾Ý¸Ä±äµÄ·¢Éú·½Ê½¾ø´ó²¿·Ö¶¼ÊÇÒÔÊý¾Ý¼ÓÔØµÄ·½Ê½·¢ÉúµÄ£¬ÕâÒâζ×ÅoracleÍêȫҲͨ¹ýÅúÁ¿Êý¾Ý¼ÓÔØµÄ·½Ê½À´Íê³Éinmemoryarea¿Õ¼äÖеÄÊý¾Ý¼ÓÔØ´Ó¶ø±£Ö¤Êý¾ÝµÄʵʱÐÔ¡£½ÓÏÂÀ´£¬´ÓinmemoryareaÄÚ´æ½á¹¹£¬Êý¾Ý¼ÓÔØ¹ý³ÌÁ½¸ö·½ÃæÀ´½éÉÜinmemory×é¼þµÄһЩ»ù±¾ÖªÊ¶¡£

Ê×ÏÈ£¬inmemoryareaÊǶÀÁ¢ÓÚ´«Í³µÄSGAºÍPGAµÄµ¥¶ÀµÄÄÚ´æ¿Õ¼ä£¬ÓÉ1MpoolºÍ64KpoolÁ½²¿·Ö¹¹³É¡£ÆäÖÐ1MpoolÓÃÓÚ±£´æÁиñʽµÄÊý¾Ý£¬IMCU£¨InMemoryCompressionUnit£©ÊÇ»ù±¾µÄ´æ´¢µ¥Î»£»64KpoolÓÃÓÚ±£´æºÍIMCUÏà¶ÔµÄÔªÊý¾ÝÐÅÏ¢£¬SMU(SnapshotMetadataUnit)ÊÇÕⲿ·ÖÄÚ´æµÄ»ù±¾µ¥Î»¡£¶ÁÕß¿ÉÒÔͨ¹ýÏÂÃæµÄ²éѯÁ˽âÏà¹ØµÄÐÅÏ¢¡£

IMCUÊÇÓÃÓÚÔÚÄÚ´æÖб£´æÁиñʽÊý¾ÝµÄ»ù±¾´æ´¢µ¥Î»£¬oracle»á¾¡Á¿±£Ö¤Ã¿¸öIMCUµÄ´óСΪ1M£¬Ã¿¸öIMCUÓÉͼ1ËùʾµÄÁ½²¿·Ö¹¹³É


ͼ1

SMU²¿·ÖÖ÷ÒªÓÃÓÚ±£´æIMCUµÄÔ­Êý¾ÝÐÅÏ¢£¬ÀýÈ磺IMCU¶ÔÓ¦µÄÖ¸Õ룬IMCU°üº¬µÄextent·¶Î§£¬DBA·¶Î§£¬JournaltableµÄÖ¸Õ룬RowidλͼµÈ¡£

1.2Êý¾Ý¼ÓÔØ(populate)

ÔÚÁ˽âÁËinmemoryÈçºÎÔÚÄÚ´æÖб£´æÊý¾ÝÖ®ºó£¬ÔÙÀ´¿´Ò»ÏÂÊý¾ÝÊÇÈçºÎ±»¼ÓÔØµ½ÄÚ´æÖеġ£¸ù¾Ý֮ǰÄÚÈݵĽéÉÜ£¬Êý¾ÝÔÚÊý¾ÝÎļþÖÐÊÇÒÔÐиñʽÀ´±£´æµÄ£¬ÄÇô¾ÍÐèÒªÒ»ÖÖ»úÖÆÀ´°ÑÊý¾Ý¼ÓÔØµ½inmemoryareaµ±ÖУ¬²¢ÇÒÔÚ¼ÓÔØ¹ý³Ìµ±ÖÐÍê³É´ÓÐÐģʽµ½ÁÐģʽµÄת±ä¡£

Ê×ÏÈ£¬oracleÖ§³Ö¶Ô±í£¬·ÖÇø»ò±í¿Õ¼äÖ¸¶¨inmemoryÊôÐÔ£¬Ò²¾ÍÊÇ˵inmemoryÊôÐÔÊÇÕë¶ÔÎïÀíÊý¾Ý¿â¶ÔÏóµÄ£¬¶ø²»ÊÇÂß¼­Êý¾Ý¿â¶ÔÏóµÄ¡£ÀýÈ磺ÎÒÃÇ¿ÉÒÔʹÓÃÏÂÃæµÄÓï¾äÀ´ÎªÊý¾Ý¿â¶ÔÏóÖ¸¶¨inmemoryÊôÐÔ£º

SQL>altertablesalesinmemorynomemcompressprioritycritical;

SQL>ALTERTABLESPACEts_dataINMEMORY;

SQL>ALTERTABLEsalesMODIFYPARTITIONSALES_201501INMEMORY;

ÐèҪ˵Ã÷µÄÊÇ£¬ÓÉÓÚinmemory×é¼þÖ÷ÒªÊÇÕë¶ÔOLAPÓ¦Óõ쬶øÕâÖÖÓ¦Óþø´ó²¿·ÖµÄ²Ù×÷¶¼ÊDzéѯ£¬¶øÇҺܶàʱºòÖ»¹ØÐıíÖÐÌØ¶¨µÄÒ»¸ö»ò¶à¸öÁУ¬ËùÒÔinmemoryÌØÐÔ»¹¿ÉÒÔÖ¸¶¨Ö»°Ñ±íÖеÄÌØ¶¨µÄÒ»¸ö»ò¶à¸öÁмÓÔØµ½inmemoryareaµ±ÖС£

ÓÉÓÚinmemoryareaÇøÓòµÄ´óСÊÇÓÐÏ޵ģ¬Ö÷»úµÄÄÚ´æ×ÊÔ´Ò²ÊÇÓÐÏ޵쬶øÊý¾Ý¿âµÄÈÝÁ¿ÍùÍù»á³¬¹ýÒÑÓеÄÄÚ´æ×ÊÔ´£¬ËùÒÔOracle½¨Ò齫ÐÔÄÜÒªÇóºÜ¸ßµÄ±í×°ÔØµ½inmemoryareaµ±ÖУ¬¶ø½«ÐÔÄÜÒªÇó±È½ÏµÍµÄ±í±£´æµ½ÉÁ´æ»òÕß´ÅÅÌÉÏ¡£µ±È»£¬Èç¹ûÄÚ´æ×ÊÔ´³ä×㣬¶øÇÒÊý¾Ý¿â²»´ó£¬´ó²¿·ÖµÄÓ¦ÓÃÊÇÒÔ²éѯΪÖ÷£¬Ò²¿ÉÒÔ¿¼Âǽ«ËùÓÐµÄ±í¶¼×°ÔØµ½inmemoryÇøÓòÖС£ÁíÍ⣬ҲÕýÊÇÓÉÓÚ×ÊÔ´µÄÏÞÖÆ£¬OracleÔÊÐíÓû§Îª²»Í¬µÄ±íÉèÖÃinmemory¼ÓÔØÓÅÏȼ¶£¬»ù±¾µÄÔ­ÔòÊÇÓÅÏȼ¶¸ßµÄ¶ÔÏó±»Ê×ÏȼÓÔØµ½inmemoryÇøÓòµ±ÖУ¬ÓÅÏȼ¶µÍµÄ¶ÔÏóÐèÒªµÈµ½¸ßÓÅÏȼ¶µÄ¶ÔÏó¼ÓÔØÍê±ÏÖ®ºó²ÅÄܹ»±»¼ÓÔØ¡£OracleÌṩÁË5ÖÖinmemory¼ÓÔØÓÅÏȼ¶£¬±í1°üº¬ÁËÿÖÖÓÅÏȼ¶µÄÏêϸÐÅÏ¢¡£


±í1

ÁíÍ⣬ÓÉÓÚinmemoryÖ÷ÒªÊÇÃæÏò²éѯΪÖ÷µÄOLAP»òÕß¾ö²ßÖ§³Öϵͳ£¬Ò²¾ÍÊÇ˵¾ø´ó²¿·ÖµÄÊý¾ÝÔÙ±»×°ÔØ£¨Load£©µ½Êý¾Ý¿âÖ®ºó¾Í²»»áÔٸıäÁË£¬ÄÇôÔÚ¼ÓÔØÊý¾ÝµÄͬʱ¶ÔÊý¾Ý½øÐÐѹËõÎÞÒÉ¿ÉÒÔ½ÚÊ¡ÄÚ´æ¿Õ¼ä£¬¶øÇÒ»¹Äܹ»Ìá¸ß²éѯµÄЧÂÊ£¨Ö÷ÒªµÄÔ­ÒòÊǺܶ౻²éѯµÄÁлá°üº¬´óÁ¿µÄÖØ¸´Öµ£©¡£ËùÒÔinmemory×é¼þÌṩÁ˷ḻµÄѹËõÑ¡ÏÔÊÐíÓû§ÔÚΪ¶ÔÏóÖ¸¶¨inmemoryÑ¡ÏîµÄͬʱָ¶¨Ñ¹Ëõ·½·¨¡£±í2ÁгöÁËÖ§³ÖµÄѹËõ¼¶±ð£º

ÉϱíÖеÄѹËõ±ÈÂÊÓÉÉÏÖÁÏ£¬Ô½À´Ô½¸ß¡£ÒÔϵÄsqlÓï¾ä˵Ã÷ÔÚ½«±ísalse¼ÓÔØµ½inmemoryareaʱµÄÓÅÏȼ¶×î¸ß£¬¶øÇÒÐèҪʹÓá°memcompressforquery¡±·½Ê½½øÐÐѹËõ£º

SQL>altertablesalesinmemorymemcompressforquerylowprioritycritical;

Èç¹ûÐèÒªÔÚÖ¸¶¨Ñ¹ËõÑ¡Ïî֮ǰÁ˽âÿÖÖѹËõÑ¡ÏîÄܹ»»ñµÃµÄѹËõ±È£¬¿ÉÒÔʹÓÃOracleCompressionAdvisor(DBMS_COMPRESSION°ü)À´½øÐйÀËã¡£

×îºó£¬¼ÓÔØ¹ý³ÌÊÇͨ¹ýºǫ́½ø³ÌIMCOºÍ¹¤×÷½ø³Ì£¨W00£©½ø³ÌÀ´Ð­Í¬ÊµÏֵģ¬ÔÚÊý¾Ý¿âÆô¶¯ºó»òÕßһЩ¶ÔÏóµÄinmemoryÑ¡Ïî±»ÆôÓúó£¬IMCO½ø³Ì»á´´½¨³öһЩ¼ÓÔØÈÎÎñ£¬²¢¸ù¾ÝÐèÒª·ÖÅ䏸Èô¸É¸ö¹¤×÷½ø³Ì£¬Ã¿¸ö¹¤×÷½ø³Ì¸ºÔðÒ»²¿·ÖÊý¾ÝµÄ¼ÓÔØ¹¤×÷£¬µ±ËùÓй¤×÷½ø³ÌÍê³ÉÁ˶ÔÓ¦²¿·ÖÊý¾ÝµÄ¼ÓÔØÖ®ºó£¬Í¨ÖªIMCO½ø³Ì¼ÓÔØÍê³É¡£

2.InmemoryµÄÊý¾ÝÒ»ÖÂÐÔ

Èç¹ûÎÒÃǵÄÊý¾Ý¿âÊÇÖ»¶ÁµÄ£¬ÄÇôÊÂÇé¾Í±äµÃ¼òµ¥¶àÁË£¬ÒòΪÊý¾Ý¾Í²»»á´æÔÚÒ»ÖÂÐÔÎÊÌ⣬µ«ÊÇÊÂʵ²¢·ÇÈç´Ë£¬¶ÔÓڴ󲿷ֵÄÊý¾Ý¿â£¬ÊÂÎñ´¦ÀíÊÇÒ»Ö±¶¼»á·¢ÉúµÄ£¬ÄÇôÊý¾ÝµÄÒ»ÖÂÐÔ¾ÍÐèÒªµÃµ½±£Ö¤¡£¶ÔÓÚinmemory×é¼þÒ²²»ÀýÍ⣬Èç¹ûDMLÓï¾äÐ޸ĵÄÊý¾Ý²¢Ã»Óб»¼ÓÔØµ½inmemoryÇøÓòµ±ÖУ¬ÄÇôDMLÓï¾äµÄÐ޸ľͽöÏÞÓÚSGAµ±ÖУ»·´Ö®Èç¹ûÐ޸ĵÄÊý¾ÝÒѾ­±»¼ÓÔØµ½ÁËinmemoryÇøÓòÖУ¬ÄÇô¾ÍÐèÒªÒ»ÖÖ»úÖÆÀ´È·±£Êý¾ÝµÄÒ»ÖÂÐÔ¡£ÀýÈ磺ûÓб»Ìá½»µÄÊý¾Ý²»Äܱ»¿´µ½£¬¶øÖ´ÐиıäµÄ»á»°Ó¦¸ÃÄÜ¿´µ½×îеÄÊý¾Ý¡£

OracleÊÇͨ¹ýjournaltableµÄ·½Ê½À´È·±£Êý¾ÝµÄÒ»ÖÂÐԵġ£Ã¿¸öIMCU¶¼»á¶ÔÓ¦Ò»¸ö×Ô¼ºµÄjournaltable,Èç¹ûDMLÓï¾äÐ޸ĵÄÊý¾Ý°üº¬ÔÚIMCUµ±ÖУ¬¾ÍÔÚjournaltableµ±ÖаÑÐ޸ĺóµÄÊý¾Ý¼Ç¼ÏÂÀ´£¬ÎÒÃdzÆÖ®Îªprivatejournal£»µ±ÊÂÎñÌá½»Ö®ºó£¬ÔÙ°Ñjournaltableµ±ÖжÔÓ¦µÄ¼Ç¼±êʶ³ÉΪsharedjournal¡£ÕâÑù¾Í¿ÉÒÔ±£Ö¤²éѯÔÚ·ÃÎÊIMCUʱÄܹ»»ñµÃÒ»ÖµÄÊý¾Ý£¬¶øÈç¹û²éѯÐèÒªµÄÊý¾ÝÔÚjournaltableÖÐÒ²ÎÞ·¨ÕÒµ½Ê±£¬oracle»á×Ô¶¯¸ù¾ÝIMCUÖмǼµÄRowidλͼÖеÄÐÅÏ¢Ó³Éäµ½buffercacheµ±ÖÐÏàÓ¦µÄλÖÃÀ´ÕÒµ½Âú×ã²éѯҪÇóµÄÊý¾Ý¡£Í¼2ÃèÊöÁËjournaltableºÍIMCUµÄ»ù±¾¹ØÏµ¡£


ͼ2

È»¶ø£¬Èç¹ûDMLÓï¾ä²»¶Ï·¢ÉúµÄ»°£¬¾Í»áʹjournaltableÖеÄÊý¾ÝÔ½À´Ô½¶à£¬ÉõÖÁ³öÏÖIMCUÖд󲿷ֵÄÊý¾Ý¶¼ÊǾÉÊý¾Ý£¬¶øÐÂÊý¾Ý¶¼±£´æÔÚjournaltableÖеÄÇé¿ö£¬Õâ¶ÔÓÚinmemory²éѯµÄÐÔÄÜÉ˺¦ÊǺܴóµÄ¡£ËùÒÔ£¬Oracle¶¨ÒåÁËÒ»¸ö·§Öµ£¨threshold£©,µ±IMCUÖоÉÊý¾ÝµÄ±ÈÀý´ïµ½Õâ¸ö·§ÖµÊ±¾Í»á´¥·¢ÖØÐ¼ÓÔØµÄ¹ý³Ì£¬Ò²¾ÍÊÇ˵£¬IMCOºǫ́½ø³Ì»áÿ¸ôÒ»¶Îʱ¼ä£¨Ä¬ÈÏ2·ÖÖÓ£©¼ì²éÒ»´ÎÊÇ·ñÓÐIMCUÂú×ãÖØÐ¼ÓÔØµÄÌõ¼þ£¬Èç¹û·¢ÏÖÁËÂú×ãÌõ¼þµÄIMCU£¬¾Í»á֪ͨW00¹¤×÷½ø³Ì¶ÔÏàÓ¦µÄIMCU½øÐÐÖØÐ¼ÓÔØ£¬µ«ÊÇÓÉÓÚÖØÐ¼ÓÔØµÄ³É±¾ÊDZȽϸߵ쬶øÇÒ¿ÉÄÜ»áÓ°ÏìһЩÕýÔÚÔËÐеÄÓï¾ä£¬ËùÒÔOracle»á²ÉÓý¥½øµÄ·½Ê½À´¶ÔIMCU½øÐÐÖØÐ¼ÓÔØµÄ²Ù×÷£¬Ò²¾ÍÊÇÿ´ÎֻѡÔñÒ»²¿·ÖÂú×ãÖØÐ¼ÓÔØÌõ¼þµÄIMCU½øÐд¦Àí£¬¶ø¾ßÌåµÄ³Ì¶È¿ÉÒÔͨINMEMORY_TRICKLE_REPOPULATE_SERVERS_PERCENT²ÎÊýÀ´½øÐе÷Õû¡£

¶ÔÓÚÊÂÎñËù²úÉúµÄjournaltable¶Ôϵͳ²úÉúµÄ¶îÍâ¸ºÔØµ½µ×Óжà´ó£¬Õâ¸öÊǺÜÄѽøÐÐÁ¿»¯µÄ£¬ÒòΪÓÐÌ«¶àµÄÒòËØ»á¶ÔËü²úÉúÓ°Ï죬ÀýÈç¼ÓÔØÊ±²ÉÓõÄѹËõ·½·¨£¬¸Ä±äµÄ·½Ê½£¬Ó¦ÓóÌÐò·ÃÎÊÊý¾ÝµÄÐÐΪ¡£µ«ÊÇ£¬ÈÔÈ»ÓÐһЩ»ù±¾µÄÔ­ÔòÊÇ¿ÉÒÔ¾¡Á¿¼õÉÙÊý¾Ý¸Ä±ä¶Ôinmemory²úÉúµÄÓ°ÏìµÄ¡£ÓÉÓÚÊý¾ÝÔÙ±»¼ÓÔØµ½inmemoryareaʱÊÇÒÔextentΪµ¥Î»µÄ£¬Èç¹û¶ÔÊý¾ÝµÄ¸Ä±äÊÇËæ»ú·Ö²¼µ½±íµÄ¸÷¸öextentµÄ»°£¬ÖØÐ¼ÓÔØµÄ³É±¾¾Í»áºÜ¸ß£¬ÒòΪÕâÒâζ×Å´óÁ¿µÄIMCUÐèÒª±»ÖØÐ¹¹½¨£»¶øÈç¹ûÊý¾ÝµÄ¸Ä±äÄܹ»¼¯Öе½Ìض¨·¶Î§µÄextentÖУ¬»òÕߴ󲿷ֵĸı䶼ÊÇÊý¾Ý²åÈë¶øÇÒʹÓÃÖ±½Ó·¾¶¼ÓÔØµÄ»°£¬ÄÇÃ´ÖØÐ¼ÓÔØµÄ³É±¾¾Í»á±»´ó´ó½µµÍ¡£ÁíÍâµÄ½¨Òé¾ÍÊǶԾ¡Á¿Ê¹Ó÷ÖÇø±íÀ´±£´æÊý¾Ý£¬ÕâÑùÓÐÀûÓÚ½«Êý¾ÝµÄ¸Ä±äÏÞ¶¨µ½Ìض¨µÄ·ÖÇøµ±ÖУ¬¶øÇÒÕë¶ÔÕâЩ·ÖÇø²»Ê¹ÓûòÕß¾¡Á¿Ê¹ÓÃDML£¬MEMORYCOMPRESSFORDMLÕâЩÇáÁ¿¼¶µÄѹËõ·½Ê½¡£

3.·ÃÎÊinmemoryareaÖеÄÊý¾Ý

3.1µ¥±í·ÃÎÊ

ÔÚÊý¾Ý±»¼ÓÔØµ½inmemoryÇøÓòÖ®ºó¾Í¿ÉÒÔͨ¹ýsqlÓï¾ä¶ÔËüÃǽøÐзÃÎÊÁË¡£·ÖÎöÐͲéѯµÄÒ»¸öºÜ´óµÄÌØµã¾ÍÊÇËüÖ»¹ØÐÄ±íµ±ÖÐÌØ¶¨µÄһЩÁжø²»ÊÇÈ«²¿µÄÁУ¬¶øÇÒÕâЩÁеÄÖµºÜ¶àʱºò»áÓдóÁ¿µÄÖØ¸´Öµ£¬²¢ÇÒ×÷ΪÌõ¼þµÄÁкܶàʱºò¶¼Êdz£¼ûµÄÊý¾ÝÀàÐÍ£¨ÀýÈ磺ÊýÖµ£¬×Ö·û´®£¬ÈÕÆÚ£©£¬»ùÓÚÕâÐ©ÌØµã£¬OracleµÄinmemory×é¼þÒ²×öÁËÏàÓ¦µÄÉè¼ÆÀ´Ìá¸ßÕâЩ·ÖÎöÐͲéѯÓï¾äµÄÐÔÄÜ¡£

Ê×ÏÈ£¬ÔÚIMCUµ±ÖÐÿһ¸öÁж¼»á°üº¬¶ÔÓ¦µÄ×ÖµäÐÅÏ¢ºÍ´æ´¢Ë÷ÒýÐÅÏ¢¡£ÔÚ¼ÓÔØ¹ý³Ìµ±ÖУ¬¹¤×÷½ø³Ì»á½«¶ÔÓ¦µÄIMCUÖÐÿ¸öÁÐËùÓµÓеIJ»Í¬Öµ±àд³ÉÒ»¸ö×ֵ䣬֮ºóΪ¸ÃÁеÄÿһÐÐÊý¾ÝÖ¸¶¨Ò»¸ökeyvalue,ÓÃÕâ¸ökeyvalueÀ´´úÌæ¾ßÌåµÄÖµ£¬ÕâÑù×ö¼È¿ÉÒÔ½ÚÊ¡¿Õ¼äҲΪ½«À´²éѯʱÄܹ»Ê¹ÓÃCPUµÄSIMD¼¼Êõ×ö×¼±¸¡£¶ø´æ´¢Ë÷Òý£¨StorageIndex£©Êµ¼ÊÉÏÊÇÊý¾Ý²Ö¿âÖг£¼ûµÄÒ»ÖÖ¼¼Êõ£¬Ëûͨ¹ý¼Ç¼ijһ¸öÁеÄ×î´óÖµºÍ×îСֵµÄ·½Ê½Äܹ»±ÜÃâ·ÃÎÊ´óÁ¿²»Âú×ãÌõ¼þµÄÊý¾Ý¡£ÔÚIMCUÖÐÿ¸öÁеÄÍ·ÐÅÏ¢µ±Öж¼»á±£´æÕâ¸öÁÐÔÚ¶ÔÓ¦µÄIMCUµ±ÖеÄ×î´óÖµºÍ×îСֵ£¬ÒÔ¼°ËûÃÇËù¶ÔÓ¦µÄÆ«ÒÆÁ¿¡£Í¨¹ýÕâÖÖ·½·¨¾Í¿ÉÒÔÔÚ²éѯÊý¾Ýʱͨ¹ý¶Ô±È×î´óºÍ×îСֵµÄ·½Ê½¿ìËÙ¹ýÂ˵ô²»Âú×ãÌõ¼þµÄÊý¾Ý£¬¶øÇÒÒ»µ©Êý¾Ý¸Ä±äÓ°Ïìµ½ÁË´æ´¢Ë÷ÒýÖеÄÐÅÏ¢£¬¿ÉÒÔ¿ìËÙ¶¨Î»µ½¶ÔÓ¦µÄλÖᣵ«ÊÇÐèÒªÖ¸³öµÄÊÇ£¬´æ´¢Ë÷Òý²¢²»¼ûµÃÊÊÓÃÓÚËùÓеÄwhereÌõ¼þ£¨Î½´Ê£©¡£

ÁíÍ⣬ÓÉÓÚÊý¾ÝÒѾ­±»¼ÓÔØµ½ÁËÄÚ´æµ±ÖУ¬ËùÒÔ¾ø´ó²¿·ÖµÄ²Ù×÷¶¼ÊÇÐèҪͨ¹ýcpuÀ´ÊµÏֵģ¬I/OÏà¹ØµÄ²Ù×÷»ù±¾²»»á³öÏÖÁË£¨³ý·Ç±»²éѯµÄ±íÓÐÒ»²¿·ÖÊý¾Ý»¹Ã»Óб»¼ÓÔØµ½inmemoryÇøÓòÖÐÀ´£©¡£ÈçºÎÄܹ»¸ü¼Ó¸ßЧµÄÀûÓÃCPU×ÊÔ´¾Í³ÉΪÁ˾ö¶¨ÐÔÄܵÄÒ»¸öÖØÒªÒòËØ£¬ËùÒÔOracle²ÉÓÃÁËSIMD¼¼Êõ£¨SingleInstructionprocessingMultipleDatavalues£©Ê¹CPUÄÜÔÚÒ»¸öÖ¸Áîµ±ÖзÃÎʶà¸öÊý¾Ý£¬µ«ÊÇÓÉÓÚSIMDËùÖ§³ÖµÄÖ¸ÁîÊÇÓÐÏ޵ģ¬ËùÒÔÕâÒ²½âÊÍÁËΪʲôOracleÔÚ¹¹½¨IMCUʱ»áΪÿ¸öÁж¼´´½¨×ÖµäÐÅÏ¢¡£Í¼3ÃèÊöÁËSIMD·ÃÎÊÊý¾ÝµÄ»ù±¾¸ÅÄî.


ͼ3

ÔÚÉÏͼÖУ¬sales±í±»¼ÓÔØµ½ÁËinmemoryareaµ±ÖУ¬¶øÇÒIMCUÖÐPROMO_IDÁеÄÍ·ÐÅÏ¢µ±ÖÐÒ²°üº¬Á˸ÃÁеÄ×ÖµäÐÅÏ¢£¬¸ÃÁе±ÖеÄÿһÐеÄÖµ¶¼ÒѾ­±»×ª»»³ÉΪÁËkeyvalue,µ±²éѯÌõ¼þΪPROMO_ID=9999ÊÇ£¬¾Í¿ÉÒÔÀûÓÃSIMD¼¼ÊõʹCPUÿ´Î±È½Ï¶àÐÐÊý¾Ý£¬´Ó¶ø¼«´óµØÌáÉýÁ˲éѯµÄÐÔÄÜ¡£

×îºó£¬ÎÒÃÇ¿ÉÒÔͨ¹ýÔÚÖ´Ðмƻ®ÖвéÕÒ¡°TABLEACCESSINMEMORYFULLTEST¡±ÐÅÏ¢À´È·ÈÏÊÇ·ñʹÓÃÁËinmemoryÑ¡Ïî·ÃÎÊ±í¡£ÀýÈ磺

3.2¶à±íÁ¬½Ó

³ýÁËÕë¶Ô·ÃÎʱíµÄÓÅ»¯£¬inmemory×é¼þÕë¶Ô±íÁ¬½ÓÒ²½øÐÐÁ˸Ľø£¬Ö÷ÒªµÄÌØÐÔÓУº²¼Â¡¹ýÂËÆ÷ºÍinmemory¾ÛºÏ¡£

¶ÔÓÚ²¼Â¡¹ýÂËÆ÷(BloomFilters)£¬ÏàÐÅ´ó¼Ò²¢²»Ä°Éú¡£ËüµÄÖ÷Òª×÷ÓþÍÊÇÅжÏijһ¸öÊý¾ÝÊÇ·ñ³öÏÖÔÚÁíÒ»¸ö¼¯ºÏµ±ÖУ¬»òÕßÓÃÓڱȽϴóÊý¾Ý¼¯ºÏÖ®¼äµÄ¹²Í¬ÔªËØ¡£Oracle´Ó10g¿ªÊ¼¾ÍÔÚ´¦ÀíһЩSQLÓï¾äÖеıíÁ¬½ÓʱʹÓò¼Â¡¹ýÂËÆ÷¡£Èç¹û±íÁ¬½ÓÖÐÉæ¼°µ½µÄ±í¶¼ÒѾ­Ö¸¶¨ÁËinmemoryÊôÐÔ£¬²¢ÇÒÒѾ­¼ÓÔØµ½ÁËinmemoryareaµ±ÖУ¬ÄÇôÓÅ»¯Æ÷»áÊ×ÏÈÑ¡ÔñÁ¬½ÓÖеÄÒ»¸ö±í£¨Í¨³£ÊǽÏСµÄ±í£©£¬¶Ô×÷ΪÁ´½ÓÌõ¼þµÄÁнøÐÐһϵÁеÄhashº¯Êý£¬²¢²úÉúÒ»¸ö½á¹ûλͼ£¨bitmap£©£¬Ö®ºóÔÙ¶ÔÁíÒ»¸ö±íµÄÊý¾Ý·ÖÅú½øÐÐͬÑùµÄhashº¯Êý£¬²¢ºÍ֮ǰµÄ½á¹ûλͼ½øÐбȽϣ¬ÔÚÕû¸ö¹ý³ÌÖв¢²»»á²úÉúI/O¶øÇÒSIMD¼¼ÊõÔڱȽϹý³ÌÖÐÒ²¿ÉÒÔ±»Ê¹Óã¬ËùÒÔ²¼Â¡¹ýÂËÆ÷µÄÒýÈëʹinmemoryÔÚ´¦Àí±íÁ¬½Óʱ±äµÃ¸ü¼Ó¸ßЧ¡£

CBO»áÔÚÖÆ¶¨Ö´Ðмƻ®Ê±×Ô¶¯ÅжÏÊÇ·ñʹÓò¼Â¡¹ýÂËÆ÷£¬Óû§²»ÐèÒªÊÖ¶¯Ö¸¶¨¡£Èç¹ûÔÚÖ´Ðмƻ®Öп´µ½ÁËÒÔϵÄÐÅÏ¢£¬ËµÃ÷²¼Â¡¹ýÂËÆ÷±»Ê¹ÓÃÁË¡£

ÔÚÉÏÃæµÄÖ´Ðмƻ®ËµÃ÷£º

1.Ê×ÏÈÔÚinmemoryareaÖзÃÎÊÁË±í¡°TEST_SMALL¡±£¬¾ÍÊÇÖ´Ðмƻ®ÖеĵÚ5²½£¬Ö®ºó¹¹½¨ÁËÁ´½ÓʹÓõĹýÂËÆ÷£¨BF0000£©£¬Ò²¾ÍÊÇÖ´Ðмƻ®ÖеĵÚ4²½¡£
2.Ö®ºóÔÚinmemoryareaÖзÃÎÊÁË±í¡°TEST_BIG¡±£¬¾ÍÊÇÖ´Ðмƻ®ÖеĵÚ7²½£¬Ö®ºóʹÓÃÁË֮ǰ¹¹½¨µÄ¹ýÂËÆ÷¡£

3.3¶à±íÁ¬½Ó

ÔÚÒÔ·ÖÎöÐ͵IJéѯÓï¾äΪÖ÷µÄÊý¾Ý²Ö¿âÓ¦Óõ±ÖУ¬³ýÁ˼òµ¥µÄ±íÁ¬½Ó£¬»¹¾­³£³öÏÖ¶à±íµÄÁ´½Ó£¬¶øÇÒ¾­³£»á°üº¬Ò»Ð©¾ÛºÏºÍ·Ö×é²Ù×÷£¬ÀýÈçÊý¾Ý²Ö¿âÓ¦Óõ±ÖеÄÐÇÐͲéѯ¡£Õë¶ÔÕâÖÖ²éѯ£¬oracleÌá³öÁËÏòÁ¿·Ö×飨VectorGroupBY£©ÌØÐÔÀ´Ìá¸ßselectÓï¾äµÄÐÔÄÜ¡£ÏòÁ¿·Ö×éÊÇÒ»¸öÁ½½×¶ÎµÄ¹ý³Ì£º

½×¶Î1£ºCBO»áÕÒµ½²éѯÖÐÊý¾ÝÁ¿½ÏСµÄά¶È±í£¨Dimensiontable£©£¬½«Âú×ãÌõ¼þµÄ×÷ΪºÍÅÓ´óµÄÊÂʵ±í£¨Facttable£©½øÐÐÁ¬½ÓµÄÁÐÕÒ³öÀ´²¢Éú³ÉÏòÁ¿×飨VectorGroup£©¡£Ö®ºó½«ÏòÁ¿×éºÍÐèÒª½øÐзÖ×é»òÕ߾ۺϵÄÊÂʵ±íÖеÄÁÐ×éºÏ£¬ÐγÉÒ»¸ö¶àάÊý×éºÍÈô¸É¸öÁÙʱ±í¡£

½×¶Î2£ºÔÚÊÂʵ±íÉÏÓ¦ÓÃÉÏÒ»½×¶Î²úÉúµÄÏòÁ¿·Ö×飬֮ºóÏòÁÙʱ±íµ±ÖÐÌí¼ÓÐèÒª¼ÆËã·Ö×é»ò¾ÛºÏ½á¹ûµÄÁеÄÖµ¡£×îºó½«ÕâЩÁÙʱ±íµÄÊý¾ÝÓ¦Óõ½¶àάÊý×éÖУ¬¼ÆËã³ö×îºóµÄ·Ö×é»òÕ߾ۺϽá¹û¡£

ÔÚÕû¸ö¹ý³ÌÖÐÏòÁ¿·Ö×éµÄ¹¹½¨ºÍÏòÁ¿ÓÚÊÂʵ±íµÄ±È½Ï¶¼ÊÇÔÚÄÚ´æÖÐÍê³ÉµÄ£¬¶øÇÒSIMDÒ²»á±»Ê¹Óã¬ËùÒÔ¿ÉÒÔ¼«´óµÄÌáÉýÕâÖÖ²éѯµÄÐÔÄÜ¡£µ±È»£¬ÓÉÓÚÕâÖÖ²Ù×÷¶¼ÊÇÔÚÄÚ´æÖÐÍê³ÉµÄ£¬ËùÒÔ¶ÔϵͳµÄÄÚ´æ×ÊÔ´ÒªÇóÒ²ÊDZȽϴóµÄ£¬ÒªÇóÔËÐÐÕâÖÖ²éѯµÄ½ø³ÌÓµÓÐ×ã¹»µÄPGA¿Õ¼ä¡£ÏÂÃæµÄÖ´Ðмƻ®ËµÃ÷ÁË·Ö×éÏòÁ¿ÔÚ²éѯÖеÄÓ¦Óãº

¸ù¾ÝÉÏÃæµÄÖ´Ðмƻ®£º

-Ê×ÏÈ£¬±í¡±TEST_SMALL_1¡±ºÍ¡±TEST_SMALL_2¡±±»·ÃÎÊ£¬µ±È»ËüÃǶ¼ÒѾ­±»¼ÓÔØµ½ÁËinmemoryarea
µ±ÖС£Ö®ºó·Ö×éÏòÁ¿±»¹¹½¨£¬ËûÃÇÊÇ¡±KV0000¡±ºÍ¡±KV0001¡±,¶øÇÒÔÚºÍÐèÒª·Ö×éµÄ±í½øÐнáºÏºó£¬ÁÙʱ±íÒ²±»´´½¨Á˳öÀ´£¬ËüÃÇÊÇ¡°SYS_TEMP_0FD9D6604_116B7C6¡±ºÍ¡°SYS_TEMP_0FD9D6604_116B7C6¡±¡£
-±í¡°TEST_BIG¡±±»·ÃÎÊ£¬Ö®ºóÏòÁ¿·Ö×é±»Ó¦Óõ½ÁËÕâ¸ö±íÉÏ¡£È»ºó¿ªÊ¼ÏòÁÙʱ±íµ±ÖÐÌí¼Ó·Ö×é½á¹û¡£
-¶àάÊý×éÖеĽá¹û±»Éú³É£¬ËüÊÇ¡°VW_VT_F486F43F¡±¡£×îºóͨ¹ý¡°HASHGROUPBY¡±µÄ·½Ê½Íê³É×îºóµÄ·Ö×é¡£

4.InmemoryºÍRACµÄÈÚºÏ

ÑÓÐøOracleÐÂÌØÐÔµÄÒ»¹áÌØµã£¬inmemoryÌØÐÔÒ²¿ÉÒÔºÍÒѾ­´æÔ򵀮äËüÊý¾Ý¿â×é¼þ¼æÈÝ£¬ÀýÈçRAC£¬´Ó¶øÊµÏÖϵͳµÄ¸ß¿ÉÓÃÐԺͿÉÀ©Õ¹ÐÔ¡£ÓÉÓÚRACÊôÓÚµäÐ͵Äshareeverything½á¹¹£¬Ëü¿ÉÒÔͬʱÔÚ¶à¸ö½Úµã´ò¿ªÏàͬµÄÊý¾Ý¿â£¬ËùÒÔ¶ÔÓÚͬһ¸öÊý¾Ý¿â¶ÔÏó£¬Ëü¿ÉÒÔ±»¼ÓÔØ£¨populate£©µ½¶à¸ö½ÚµãÉÏÈ¥¡£µ±È»£¬Ç°ÌáÌõ¼þÊÇÕâЩ½ÚµãµÄÊý¾Ý¿âʵÀý¶¼ÉèÖÃÁËinmemoryarea(²ÎÊýinmemory_size²»µÈÓÚ0)¡£¼ÈÈ»Êý¾Ý¿ÉÒÔ±»¼ÓÔØµ½¶à¸ö½Úµã£¬ÄÇô¾ÍÒâζ×ÅÎÒÃÇÐèҪ˼¿¼Á½¸öÎÊÌ⣺

-ÎÊÌâ1£ºÈçºÎ½«Êý¾Ý·Ö²¼µ½¶à¸ö½Úµã¡£

-ÎÊÌâ2£ºÊý¾ÝÊÇ·ñÓбØÒªÔÚinmemoryareaµ±Öб£´æÈßÓàÀ´È·±£¸ß¿ÉÓÃÐÔ¡£

¶ÔÓÚÊý¾ÝµÄ·Ö²¼·½Ê½£¬oracleÌṩÁ˸ù¾ÝÊý¾ÝµÄROWID·¶Î§»ò¸ù¾Ý±íµÄ·ÖÇø£¨»ò×Ó·ÖÇø£©Á½ÖÖ·½Ê½À´½«Êý¾Ý·Ö²¼µ½¶à¸ö½ÚµãÉÏ¡£µÚÒ»ÖÖ·½·¨ÊÇÖ¸½«±íµÄÊý¾Ý°´ÕÕrowidµÄ·¶Î§»®·Ö³ÉÈô¸É·Ý£¬Ö®ºó½«Ã¿·ÝÊý¾Ý¾ùÔȵļÓÔØµ½²»Í¬µÄ½Úµãµ±ÖÐÈ¥£¬ÕâÖÖ·Ö²¼·½Ê½±È½ÏÊÊÓÃÓÚÊý¾Ý·Ö²¼²»¾ùÔÈµÄ±í£¬¶øÇÒÓ¦ÓóÌÐò¶Ô±íµÄ·ÃÎÊÔÚÿ¸öʵÀýÉ϶¼ÊDZȽϾùÔȵij¡¾°¡£ÀýÈ磺
ALTERTABLEtestINMEMORYDISTRIBUTEBYROWIDRANGE;µÚ¶þÖÖ·½Ê½ÊÊÓÃÓÚ·ÖÇø±í£¬oracle»á¸ù¾Ý·ÖÇøµÄ¶¨Ò彫ÿ¸ö·ÖÇø¼ÓÔØµ½²»Í¬½ÚµãµÄinmemoryareaµ±ÖÐÈ¥£¬ÕâÖÖ·Ö²¼·½Ê½±È½ÏÊʺÏÊý¾Ý·Ö²¼¾ùÔÈµÄ±í¡£Èç¹ûÓ¦ÓóÌÐò¶Ô±íµÄ·ÃÎÊÔÚÿ¸öʵÀýÉ϶¼ÊDZȽϾùÔȵģ¬ÓÈÆäÊʺÏhash·ÖÇø±í¡£ÀýÈ磺ALTERTABLElineorderINMEMORYDISTRIBUTEBYPARTITION;

¶ÔÓÚÊý¾ÝÊÇ·ñÓ¦¸ÃÔÚinmemoryareaÖб£´æÈßÓ࣬Èç¹ûÊÇÆÕͨµÄRACÊý¾Ý¿â£¬ÄÇôÊý¾Ý²¢²»»áÔÚinmemoryareaÖб£´æÈßÓࣻ¶ø¶ÔÓÚExadataÒ»Ìå»ú£¬inmemoryareaÖеÄÊý¾ÝÊÇ¿ÉÒÔÉèÖÃÈßÓàµÄ¡£Ö®ËùÒÔÑ¡ÔñÕâÑù×öµÄÔ­ÒòÔÚÓÚ£¬·ÇExadataÒ»Ìå»úµÄRACϵͳµÄË½ÍøÅäÖÃǧ²îÍò±ð£¬Èç¹ûÑ¡Ôñ±£´æÈßÓàµÄ»°£¬Ò»µ©µ±Ä³Ò»¸öʵÀýdownµôÖ®ºó£¬Òâζ×Å»áÓдóÁ¿µÄÊý¾ÝÐèÒªÔÚ½ÚµãµÄË½ÍøÖ®¼ä½øÐд«Ê䣬ÒÔ±ãÈ·±£Êý¾ÝµÄÈßÓ࣬Èç¹ûË½ÍøµÄÐÔÄܲ»Äܵõ½±£Ö¤µÄʱºò£¬ÕâÖÖÊý¾ÝµÄ´«Êä¿ÉÄÜÏûºÄ´óÁ¿µÄʱ¼äºÍÍøÂç×ÊÔ´£¬²¢µ¼ÖÂÑÏÖØµÄºó¹û¡£¶øExadataÒ»Ìå»úµÄË½Íø²ÉÓùâÏËÍøÂ磬¶øÇÒʹÓÃÁËÏȽøµÄRDSЭÒ飬Êý¾Ý´«Êä¿ÉÒÔ´ïµ½¼¸Ê®GÿÃ룬ËùÒÔÔÚ´¦ÀíÓÉÓÚ½Úµã¹ÊÕϵ¼ÖµĴóÁ¿Ë½ÍøÊý¾Ý´«Êäʱ£¬ÈÔÈ»¿ÉÒÔ±£Ö¤¼¯ÈºµÄË½ÍøÕý³£¹¤×÷¡£

ÁíÍ⣬ÓÉÓÚĿǰӲ¼þ²ãÃæµÄ¸ß¿ÉÓü¼ÊõÒѾ­·Ç³£³ÉÊ죬һ¸öÊý¾Ý¿âʵÀý»òÕß½ÚµãdownµôµÄʹʴ󲿷ֶ¼ÊÇÒ»´ÎÐԵģ¬ºÜ¿ì¾ÍÄָܻ´¡£ËùÒÔOracleÔÚ·¢ÏÖijһ¸öʵÀý»òÕß½ÚµãfailÖ®ºó²¢²»»áÂíÉÏ´¥·¢Êý¾ÝµÄÖØÐ·ֲ¼£¬¶øÊÇ»áµÈ´ýÒ»¶Îʱ¼äÒÔ±ãÈÃÎÊÌâ½Úµã»òʵÀýÄܹ»ÖØÐÂÆô¶¯²¢¼ÓÔØ×Ô¼ºµÄÊý¾Ý£¬Ö»Óе±µÈ´ýʱ¼ä³¬Ê±Ö®ºó£¬ÆäËû½Úµã²Å»á´¥·¢Êý¾ÝÖØÐ·ֲ¼µÄ¹ý³Ì£¬½«Ê§°Ü½ÚµãµÄinmemoryareaÖеÄÊý¾ÝÖØÐ·ֲ¼µ½Õý³£½Úµã¡£»ùÓÚÕâÖÖÉè¼ÆÄ£Ê½£¬½¨ÒéÔÚʹÓÃRACϵͳÉϵÄinmemoryÑ¡ÏîʱӦ¸ÃΪÿ¸ö½ÚµãµÄinmemoryareaÔ¤Áô³öÒ»²¿·Ö¿Õ¼ä£¬ÒÔ±ãÈ·±£Êý¾ÝÖØÐ·ÖÅäʱÈÔÈ»ÓÐ×ã¹»µÄ¿Õ¼ä¡£
ÏÂÃæµÄͼ4ºÍͼ5ÃèÊöÁËExadata»·¾³ºÍ·ÇExadata»·¾³inmemoryarea±£´æÊý¾ÝµÄÇø±ð


ͼ4-Exadata»·¾³


ͼ5-·ÇExadata»·¾³

¸ù¾ÝÉÏÃæµÄͼÐβ»ÄÑ·¢ÏÖ£¬ÔÚRAC»·¾³Ïµģ¬Ã¿¸ö½Úµã¶¼²»»á°üº¬±íµ±ÖеÄËùÓÐÊý¾Ý¡£ËùÒÔÔÚRAC»·¾³Ï£¬ÐèÒªÆôÓÃoracleµÄ×Ô¶¯²¢Ðвéѯ£¨AutoDOP£©²ÅÄܹ»Ê¹ÓÃinmemoryµÄ·½Ê½·ÃÎʼÓÔØµ½inmemoryareaÖÐµÄ±í¡£ÁíÍ⻹Ҫ˵Ã÷µÄÊÇÔÚ¶àʵÀýµÄ²¢·¢²éѯÖÐʵÀýÖ®¼ä´«ÊäµÄ²¢²»ÊÇIMCU£¬¶øÊÇÿ¸ö½Úµã¶¼»á¶Ô±¾½ÚµãµÄÊý¾ÝÔËÐÐÏàͬµÄsqlÓï¾ä£¬Ö®ºó°Ñ×Ô¼ºµÄ½á¹û¼¯·¢Ë͸ø·¢ÆðsqlÓï¾äµÄʵÀý£¬×é³É×îÖյĽá¹û·µ»Ø¸øÓû§¡£ÀýÈ磺һ¸ö4½ÚµãµÄRACÊý¾Ý¿â£¬±ísalesÒѾ­±»¼ÓÔØµ½ÁËinmemoryareaµ±ÖС£ÔËÐÐÏÂÃæµÄ²éѯ£º

selectsum(stock)fromsaleswherestore_idin(100,200,300)andorder_date=to_date(¡®2016-01-01¡¯,¡®yyyy-mm-dd¡¯);

CBOÊ×ÏÈ»á¼ÆËãʹÓÃinmemoryscanµÄ³É±¾£¬Èç¹û³É±¾×îµÍ£¬CBO¾Í»áÑ¡ÔñʹÓÃÔÚinmemoryareaÖзÃÎÊsales±í¡£½ÓÏÂÀ´£¬oracle»á·ÃÎÊÊý¾Ý×ÖµäÖеÄÐÅÏ¢£¬ÕÒµ½Õâ¸ö±í±»¼ÓÔØµ½ÁËÄÄЩʵÀý£¬²¢ÔÚ¶ÔÓ¦µÄ½ÚµãÆô¶¯ÏàÓ¦µÄ²¢·¢½ø³Ì£¨parallelslave£©£¬°ÑÕâ¸ö²éѯÓï¾ä·¢Ë͸ø²¢·¢½ø³ÌÔËÐС£Ã¿¸öʵÀýµÄ²¢·¢½ø³ÌÔËÐÐÍê¶ÔÓ¦µÄsqlÓï¾äÖ®ºó£¬°Ñ²úÉúµÄ»ã×ÜÖµ·¢Ë͸ø·¢Æð²éѯµÄʵÀý£¬Éú³É×îÖյĻã×ÜÖµ²¢·µ»Ø¸ø¿Í»§¡£ÔÚÕû¸ö¹ý³ÌÖУ¬²¢²»ÊÇIMCUÔÚʵÀýÖ®¼ä´«µÝ£¬¶øÊÇ»ã×ÜÖµÔÚ´«µÝ£¬ËùÒÔÄܹ»±ÜÃâ´óÁ¿µÄË½ÍøÊý¾ÝͨÐÅ¡£

ÒÔÉϾÍÊÇ×÷Õß¶Ôoracle12cinmemory×é¼þһЩ´ÖdzµÄ½éÉÜ£¬Ï£Íû¶Ô¸÷λʹÓÃOracleÊý¾Ý¿â½øÐпª·¢µÄÈËÔ±ÓÐËù°ïÖú£¬Äܹ»ÔÚʹÓÃÁËinmemoery×é¼þµÄoracleÊý¾Ý¿âÉÏ¿ª·¢Ó¦ÓóÌÐòʱÓÐЩ½è¼ø×÷Óá£

×÷Õß¼ò½é£º¸ß±ó£¬OracleÊ×ϯ¼¼ÊõÖ§³Ö¹¤³Ìʦ£¬Ö÷Òª¸ºÔðOracleRAC¡¢ExadataµÄ¼¼ÊõÖ§³Ö¹¤×÷£¬Éó¤ÔÚѹÁ¦»·¾³Ï´¦Àí¸´ÔÓµÄÊý¾Ý¿â¼¼ÊõÎÊÌ⣬¶à´Î³É¹¦½â¾ö¹úÄÚÍâ¿Í»§ÖØÒªÏµÍ³µÄ¼¼ÊõÎÊÌâ¡£

   
2392 ´Îä¯ÀÀ       28
Ïà¹ØÎÄÕÂ

»ùÓÚEAµÄÊý¾Ý¿â½¨Ä£
Êý¾ÝÁ÷½¨Ä££¨EAÖ¸ÄÏ£©
¡°Êý¾Ýºþ¡±£º¸ÅÄî¡¢ÌØÕ÷¡¢¼Ü¹¹Óë°¸Àý
ÔÚÏßÉ̳ÇÊý¾Ý¿âϵͳÉè¼Æ ˼·+Ч¹û
 
Ïà¹ØÎĵµ

GreenplumÊý¾Ý¿â»ù´¡Åàѵ
MySQL5.1ÐÔÄÜÓÅ»¯·½°¸
ijµçÉÌÊý¾ÝÖÐ̨¼Ü¹¹Êµ¼ù
MySQL¸ßÀ©Õ¹¼Ü¹¹Éè¼Æ
Ïà¹Ø¿Î³Ì

Êý¾ÝÖÎÀí¡¢Êý¾Ý¼Ü¹¹¼°Êý¾Ý±ê×¼
MongoDBʵս¿Î³Ì
²¢·¢¡¢´óÈÝÁ¿¡¢¸ßÐÔÄÜÊý¾Ý¿âÉè¼ÆÓëÓÅ»¯
PostgreSQLÊý¾Ý¿âʵսÅàѵ
×îл¼Æ»®
DeepSeekÔÚÈí¼þ²âÊÔÓ¦ÓÃʵ¼ù 4-12[ÔÚÏß]
DeepSeek´óÄ£ÐÍÓ¦Óÿª·¢Êµ¼ù 4-19[ÔÚÏß]
UAF¼Ü¹¹ÌåϵÓëʵ¼ù 4-11[±±¾©]
AIÖÇÄÜ»¯Èí¼þ²âÊÔ·½·¨Óëʵ¼ù 5-23[ÉϺ£]
»ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 4-26[±±¾©]
ÒµÎñ¼Ü¹¹Éè¼ÆÓ뽨ģ 4-18[±±¾©]

MySQLË÷Òý±³ºóµÄÊý¾Ý½á¹¹
MySQLÐÔÄܵ÷ÓÅÓë¼Ü¹¹Éè¼Æ
SQL ServerÊý¾Ý¿â±¸·ÝÓë»Ö¸´
ÈÃÊý¾Ý¿â·ÉÆðÀ´ 10´óDB2ÓÅ»¯
oracleµÄÁÙʱ±í¿Õ¼äдÂú´ÅÅÌ
Êý¾Ý¿âµÄ¿çƽ̨Éè¼Æ


²¢·¢¡¢´óÈÝÁ¿¡¢¸ßÐÔÄÜÊý¾Ý¿â
¸ß¼¶Êý¾Ý¿â¼Ü¹¹Éè¼ÆÊ¦
HadoopÔ­ÀíÓëʵ¼ù
Oracle Êý¾Ý²Ö¿â
Êý¾Ý²Ö¿âºÍÊý¾ÝÍÚ¾ò
OracleÊý¾Ý¿â¿ª·¢Óë¹ÜÀí


GE Çø¿éÁ´¼¼ÊõÓëʵÏÖÅàѵ
º½Ìì¿Æ¹¤Ä³×Ó¹«Ë¾ Nodejs¸ß¼¶Ó¦Óÿª·¢
ÖÐÊ¢Òæ»ª ׿Խ¹ÜÀíÕß±ØÐë¾ß±¸µÄÎåÏîÄÜÁ¦
ijÐÅÏ¢¼¼Êõ¹«Ë¾ PythonÅàѵ
ij²©²ÊITϵͳ³§ÉÌ Ò×ÓÃÐÔ²âÊÔÓëÆÀ¹À
ÖйúÓÊ´¢ÒøÐÐ ²âÊÔ³ÉÊì¶ÈÄ£Ðͼ¯³É(TMMI)
ÖÐÎïÔº ²úÆ·¾­ÀíÓë²úÆ·¹ÜÀí