DB°³³ä

DB³í¸®±¸Á¶

Tablespace

 Oracle°í±Þ  

µ¥ÀÌÅÍ ¿¢¼¼½º¿Í °»½Å

µ¥ÀÌÅÍ µñ¼Å³Ê¸®

¹é¾÷°úº¹±¸

PL/SQL½Ç½À

Cluster ½Ç½À

Index½Ç½À  

Sequence ½Ç½À

 View½Ç½À

SQL½Ç½À

                                                                        ¸ÞÀÎ

µ¥ÀÌÅÍ ¿¢¼¼½º¿Í °»½Å

¢Ãµ¥ÀÌÅͺ£À̽º ¹öÆÛ ij½Ã

-»ç¿ëÀÚ°¡ µ¥ÀÌÅ͸¦ ¿ä±¸Çϸé Server ÇÁ·Î¼¼½º´Â µ¥ÀÌÅͰ¡ ÀÌ¹Ì ÀÖ´ÂÁö¸¦ µ¥ÀÌÅͺ£À̽º ¹öÆÛ ij½Ã¿¡ °Ë»çÇÑ´Ù.

¢Ãµ¥ÀÌÅÍ ºí·Ï

-µ¥ÀÌÅͰ¡ ¹öÆÛ ij½Ã¿¡ ÀÖÁö ¾ÊÀ¸¸é ¼­¹ö ÇÁ·Î¼¼½º´Â µ¥ÀÌÅÍ ÆÄÀÏ¿¡¼­ ÀûÀýÇÑ ºí·ÏÀ» °¢°¢ ÇϳªÀÇ Oracle µ¥ÀÌÅÍ ºí·Ï Å©±â(DB_BLOCK_SIZE¿¡ Á¤ÀÇ)·Î µ¥ÀÌÅͺ£À̽º ¹öÆÛ ij½Ã·Î ÀÐ¾î µéÀδÙ.

-»ç¿ëÀÚ°¡ ¿ä±¸ÇÑ ºí·ÏÀ» ¼öÁ¤Çϸé ij½ÃÀÇ µ¥ÀÌÅÍ ºí·ÏÀÌ º¯°æµÈ´Ù. À̶§ º¯°æµÈ ºí·ÏÀ» ÀÌÈÄ À̹ÌÁö(after image)¶ó°í ÇÑ´Ù.

¢Ã·Ñ¹é ºí·Ï

-OracleÀº ·Ñ¹é ºí·Ï¿¡ µ¥ÀÌÅÍÀÇ ¿øº» ¹öÀüÀ» ÀúÀåÇÑ´Ù. ÀÌ ºí·ÏÀº »ç¿ëÀÚ°¡ ¼öÁ¤Çϱâ ÀÌÀüÀÇ µ¥ÀÌÅÍÀ̹ǷΠÀÌÀü À̹ÌÁö(before image)¶ó°í ÇÑ´Ù.

-º¯°æµÈ »çÇ×À» µ¥ÀÌÅͺ£À̽º¿¡ Commit Çϱâ Àü¿¡ Rollback ÇÏ¸é ·Ñ¹é ºí·ÏÀÇ Á¤º¸¸¦ ÀÌ¿ëÇÏ¿© Æ®·£Àè¼ÇÀ» ·Ñ¹é ÇÑ´Ù.

¢ÃRedo log ¹öÆÛ

-Æ®·£Àè¼ÇÀ» ó¸®ÇÏ´Â µ¿¾È ¼­¹ö ÇÁ·Î¼¼½º´Â Redo Log ¹öÆÛ¿¡ ÀÌÀü À̹ÌÁö¿Í ÀÌÈÄ À̹ÌÁö Á¤º¸¸¦ ±â·ÏÇÑ´Ù.

-Redo log ±â·ÏÀº ÆÄÀÏ, ºí·Ï, Çà, ¿­À» Æ÷ÇÔÇÑ ¿­¿¡ ´ëÇÑ À§Ä¡ ÁÖ¼Ò¸¦ °®°í ÀÖ´Ù.

¢Ã¹öÆÛ °ü¸®

-µ¥ÀÌÅͺ£À̽º ¹öÆÛ ij½Ã´Â LRU(Least Recently Used) ¸®½ºÆ®¿Í ´õƼ(Dirty) ¸®½ºÆ®·Î ±¸¼ºµÈ´Ù.

-LRU ¸ñ·ÏÀº ´ÙÀ½ ¹öÆÛ ºí·ÏµéÀ» Æ÷ÇÔÇϰí ÀÖ´Ù.

·ÀÚÀ¯(Free) ¹öÆÛ: º¯°æµÇÁö ¾Ê¾Ò°í »ç¿ëÇÒ ¼ö ÀÖ´Â ¹öÆÛ

·°íÁ¤(Pinned) ¹öÆÛ: ÇöÀç ¿¢¼¼½ºµÇ°í ÀÖ´Â ¹öÆÛ

·´õƼ(Dirty) ¹öÆÛ: µð½ºÅ©¿¡ ±â·ÏµÉ Çʿ䰡 ÀÖ´Â º¯°æµÈ ¹öÆÛ

-LRU ¸ñ·Ï: °¡Àå ÃÖ±Ù¿¡ °¡Àå Àû°Ô »ç¿ëµÈ ¼øÀ¸·Î ¿¬°áµÈ ¸®½ºÆ®

-´õƼ ¸ñ·Ï: ´õƼ ¹öÆÛ¿¡ ´ëÇÑ LRU ¸®½ºÆ®

-OracleÇÁ·Î¼¼½º°¡ ¹öÆÛ¸¦ ¾×¼¼½ºÇÒ °æ¿ì ÇÁ·Î¼¼½º´Â ¹öÆÛ¸¦ LRU¸ñ·ÏÀÇ MRU(Most Recently Used)³¡À¸·Î °è¼Ó À̵¿ÇÔ¿¡ µû¶ó dirty¹öÆÛ´Â LRU¸ñ·ÏÀÇ LRU ³¡À¸·Î À̵¿½ÃŲ´Ù.

-´õ ¸¹Àº ¹öÆÛ°¡ LRU¸ñ·ÏÀÇ MRU ³¡À¸·Î °è¼Ó À̵¿ÇÔ¿¡ µû¶ó dirty¹öÆÛ´Â LRU¸ñ·ÏÀÇ LRU ³¡À¸·Î À̵¿ÇÏ°Ô µÈ´Ù.

¢ÃServer ÇÁ·Î¼¼½º

-¸ðµç SQL ¹®ÀåÀº »ç¿ëÀÚ ÇÁ·Î¼¼½º·ÎºÎÅÍ Á÷Á¢ ¿ä±¸¸¦ ¹Þ¾Æ ¼­¹ö ÇÁ·Î¼¼½º°¡ ó¸®ÇÑ´Ù.

-¼­¹ö ÇÁ·Î¼¼½º´Â ¼¼ °¡ÁöÀÇ ÁÖ¿äÇÑ Ã³¸® ´Ü°è¸¦ °ÅÃÄ »ç¿ëÀÚ ÇÁ·Î¼¼½º¿¡°Ô µ¥ÀÌÅͺ£À̽º ÀڷḦ Áö¿øÇÑ´Ù.

·±¸¹®ºÐ¼®(Parse)

­SQL ±¸¹®ÀÇ ¹®¹ý°ú ÀÇ¹Ì °Ë»ç

­º¸¾È ±ÇÇÑ, ÃÖÀû Ž»ö °æ·Î(Parse tree) ¶Ç´Â ½ÇÇà °èȹ¿¡ ´ëÇÑ Á¶È¸

­°³ÀÎ SQL ¿µ¿ª ÇÒ´ç

¡Ø¸¸¾à °íÀ¯ SQL¿µ¿ª¿¡ µ¿ÀÏÇÑ SQL ¹®ÀåÀÌ ÀÖÀ¸¸é »ç¿ëÇÑ´Ù.

·½ÇÇà(Execute)

­¹°¸®ÀûÀÎ Àб⳪ ³í¸®ÀûÀÎ ÀÐ±â ¹× ¾²±â ¼öÇà

­Á¦¾àÁ¶°Ç °Ë»ç ¼öÇà

­ÇÊ¿äÇÑ °æ¿ì µ¥ÀÌÅÍ º¯°æ

·ÀÎÃâ(Fetch)

­Select ¹®¿¡ ´ëÇÑ µ¥ÀÌÅÍ ÇàÀ» °Ë»ö

-¼­¹ö ÇÁ·Î¼¼½º´Â »ç¿ëÀÚ ÇÁ·Î¼¼½º°¡ ¿ä±¸ÇÑ µ¥ÀÌÅÍ ºí·ÏÀ» LRU ¸®½ºÆ®, Free ¹öÆÛ ¼øÀ¸·Î ã´Â´Ù.

-µð½ºÅ© ºí·ÏÀ» ij½Ã·Î ÀоîµéÀ̱â À§ÇØ ºó ¹öÆÛ ã±â

·LRU ¸ñ·Ï ³¡¿¡¼­ºÎÅÍ(MRU end) °Ë»öÀ» ½ÃÀÛÇÑ´Ù.

·ÇÁ·Î¼¼½º´Â ºó ¹öÆÛ¸¦ ã°Å³ª ¹öÆÛ ÇѰèÀÇ ÀÓ°èÁ¡¿¡ µµ´ÞÇÒ ¶§±îÁö °Ë»ö

·»ç¿ëÀÚ ÇÁ·Î¼¼½º°¡ ºó ¹öÆÛ¸¦ ãÀ¸¸é ºí·ÏÀ» ¹öÆÛ·Î ÀÐ¾î µéÀ̰í À̸¦ LRU¸ñ·ÏÀÇ MRU ³¡À¸·Î À̵¿½ÃŲ´Ù.

·ºó ¹öÆÛ¸¦ ãÁö ¸øÇÏ¿© ¹öÆÛ ÇѰèÀÇ ÀÓ°èÁ¡¿¡ µµ´ÞÇϸé LRU¸ñ·Ï °Ë»öÀ» ÁßÁöÇϰí dirty¹öÆÛ¸¦ µð½ºÅ©¿¡ ±â·ÏÇϵµ·Ï DBWRÇÁ·Î¼¼½º¿¡ ½ÅÈ£¸¦ º¸³½´Ù.

¢ÃSELECT ¼öÇà (User1)

-SELECT ¿ÀÆÛ·¹À̼ÇÀº Ž»ö Á¶°Ç¿¡ »ç¿ëµÇ´Â µ¥ÀÌÅÍ ºí·ÏÀ» µ¥ÀÌÅͺ£À̽º ¹öÆÛ ij½Ã¿¡¼­ ¸ÕÀú ã°í, ¾øÀ¸¸é µð½ºÅ©·ÎºÎÅÍ ¹öÆÛ ij½Ã·Î °¡Á®¿Í »ç¿ëÇÑ´Ù.

¢ÃUPDATE ¼öÇà (User2)

¢ÃUpdate operation½Ã µ¿ÀÛ

-µ¥ÀÌÅÍ ºí·Ï(B2)À» µ¥ÀÌÅͺ£À̽º ¹öÆÛ ij½Ã·Î Àд´Ù.

-·Ñ¹é ºí·Ï(before image)À» µ¥ÀÌÅͺ£À̽º ¹öÆÛ ij½Ã·Î Àд´Ù.

-º¯°æµÉ Çà¿¡ X-LockÀ» °Ç´Ù.

-Record ³»¿ë º¯°æ (System ¹öÆÛ¸¦ ÀÌ¿ëÇØ¼­)

-·Ñ¹é µ¥ÀÌÅÍ ºí·Ï(R2)À» ·Ñ¹é ¼¼±×¸ÕÆ® ºí·Ï ¹öÆÛ(Rollback segment)¿¡ ÀúÀåÇÑ´Ù.

¡Ø·Ñ¹é ¼¼±×¸ÕÆ®´Â Ä¿¹Ô µÇÁö ¾Ê¾Ò°Å³ª ÃÖ±Ù¿¡ Ä¿¹ÔµÈ Æ®·£Á§¼Ç¿¡ ÀÇÇØ º¯°æµÈ µ¥ÀÌÅÍÀÇ ÀÌÀü °ª(ÆÄÀϹøÈ£, ºí·Ï ID, ÀÌÀü µ¥ÀÌÅÍ)À» °¡Áö°í ÀÖÀ½

-º¯°æµÈ »çÇ×À» µ¥ÀÌÅÍ ºí·Ï ¹öÆÛ( )¿¡ Àû¿ëÇÑ´Ù.

¢ÃUpdate ÈÄ¿¡ User1ÀÌ °°Àº BlockÀ» SelectÇϸé?

-ÂüÁ¶ÇÒ ºí·ÏÀÌ ´õƼ ºí·ÏÀ̹ǷΠ¼­¹ö ÇÁ·Î¼¼½º´Â ·Ñ¹é ¼¼±×¸ÕÆ®¿¡ ÀÖ´Â ÀÌÀü µ¥ÀÌÅÍ Á¤º¸(R2)¸¦ ÀÌ¿ëÇÏ¿© Àбâ Àϰü¼º(read consistent)À» À¯ÁöÇÑ´Ù.

-empno=7369ÀÇ º¯°æ Àü SAL µ¥ÀÌÅÍ 800°ú º¯°æ ÈÄ µ¥ÀÌÅÍ 880Àº Redo log ¹öÆÛ¿¡ ±â·ÏµÈ´Ù.