|
|
[ÀϹÝ] [Æ©´×] °è¼Ó swap paging ¹ß»ý½Ã¿¡ |
|
È£¼® ´Ô²²¼ ¾´ ±ÛÀÔ´Ï´Ù - 211.¢½.74.31 |
ÀÐÀ½:3960 |
|
|
sort_area_size Oracle
2006/12/26 11:28
http://blog.naver.com/bat1000/40032497842
Temporary tablespace,sort_area_size
2006/03/03 ¿ÀÈÄ 9:23 | oracle
## temporary tablespaceÀÇ ¿ë·®ÀÌ ³Ê¹« Å©°Ô ½×¿©°£´Ù¸é sort_area_size¸¦ Á¶Á¤ÇÏÀÚ 2005-11-03 ##
* Á¤¸®ÇÑ ¹®¼¶ó µÎ¼°¡ ¾øÀ½ ^^
1. temporary tablespaceÀÇ ¿ë·®ÀÌ ¸¹ÀÌ ´Ã¾î³²À» ÁÖ½ÃÇÔ.
- Àû°Ô ´Ã¾î°¡°Ô ÇÏ·Á¸é?? ¿¡¼ Ãâ¹ß
2. sort_area_size, sort_area_retained_size Á¶È¸
1) sort_area_size¶õ?
SORT_AREA_SIZE¿¡ ´ëÇؼ´Â ÈçÈ÷ À߸øµÈ ÀÌÇظ¦ ÇϰԵȴÙ. ´ëºÎºÐÀÇ
»ç¿ëÀÚµéÀº ÀÌ °ªÀÌ ¸ðµç »ç¿ëÀÚµéÀÌ sort ÀÛ¾÷¿¡ »ç¿ëÇÏ°Ô µÇ´Â
°ø¿ë ¸Þ¸ð¸® ¿µ¿ªÀÇ Å©±â·Î ÀÌÇظ¦ Çϴµ¥, ½ÇÁ¦·Î´Â »ç¿ëÀÚ ÇÁ·Î¼¼½º
º°·Î »ç¿ëÇÏ°Ô µÇ´Â sort ¿µ¿ªÀÇ Å©±â¸¦ ³ªÅ¸³½´Ù. ¾Õ¿¡¼ »ìÆ캻
µÎ°³ÀÇ ÆĶó¹ÌÅÍ¿Í ´Þ¸®, SORT_AREA_SIZE´Â SGA¿µ¿ª¿¡ ¼ÓÇÏÁö ¾Ê´Â´Ù.
¸¸¾à sort_area_size °ªÀÌ ³Ê¹« ÀÛ´Ù¸é, sort ÀÛ¾÷ ´ëºÎºÐÀÌ »ç¿ëÀÚÀÇ
temporary tablespace¿¡¼ µð½ºÅ©¸¦ »ç¿ëÇÏ¿© ÀÌ·ç¾î Áö°Ô µÈ´Ù.
SQL 󸮽à order by ³ª, group by µîÀ» »ç¿ëÇÒ °æ¿ì¿¡´Â sort ÀÛ¾÷ÀÌ
¹ß»ýÇϳª. index »ý¼ºµî¿¡µµ sort°¡ ¹ß»ýÇÑ´Ù.
- index »ý¼º½Ã
- order by³ª group by
- select ¹®Àå¿¡¼ distinct function
- union, intersect, minus operation
- sort-merge joins
- analyze command
¸Þ¸ð¸® sort´Â µð½ºÅ© sort¿¡ ºñÇØ ÈξÀ ÁÁÀº ¼º´ÉÀ» º¸À̹ǷÎ,
Áö¼ÓÀûÀ¸·Î SORT_AREA_SIZE °ªÀ» ¸ð´ÏÅÍÇÏ¿© Æ©´×À» Çϴ°ÍÀÌ ¹Ù¶÷Á÷ÇÏ´Ù.
ÇÏÁö¸¸, ÀÌ °ªÀ» ³Ê¹« Å©°Ô ÁöÁ¤ÇÒ °æ¿ì, swappingÀÌ ¹ß»ýÇϸé¼
½Ã½ºÅÛ ¼º´ÉÀÌ ±Þ°ÝÇÏ°Ô ÀúÇ쵃 ¼ö ÀÖ´Ù.
* SORT_AREA_SIZE´Â ¼¼¼Çº°·Îµµ ÁöÁ¤°¡´ÉÇϸç, ÁöÁ¤Çϱâ À§Çؼ´Â
ALTER SESSION ±ÇÇÑÀÌ ÀÖ¾î¾ß ÇÑ´Ù. ƯÁ¤ ¼¼¼Ç¿¡¼ ½Ã½ºÅÛ»óÀÇ
¸ðµç ¸Þ¸ð¸®¸¦ »ç¿ëÇϵµ·Ï ÇÒ °æ¿ì ½Ã½ºÅÛ ¼º´ÉÀÌ ±Þ°ÝÈ÷ ÀúÇÏ
µÉ ¼öµµ ÀÖ´Ù.
2) sort_area_retained_size¶õ?
init.ora ÆÄÀÏ¿¡¼ ÁöÁ¤ÇÏ´Â sort ÀÛ¾÷ °ü·ÃµÈ ÆĶó¹ÌÅÍ·Î
SORT_AREA_RETAINED_SIZE µµ ÀÖ´Ù. ÀÌ °ªÀº sort °¡ ³¡³ ÈÄ¿¡µµ
À¯ÁöÇÏ°íÀÚ ÇÏ´Â SORT_AREA_SIZE¸¦ ³ªÅ¸³½´Ù. ÀÌ ÆĶó¹ÌÅÍ´Â
SORT_AREA_SIZE °ª°ú °°°Å³ª Àû°Ô ÁöÁ¤µÇ¾î¾ß ÇÑ´Ù.
SORT_AREA_RETAINED_SIZE´Â SORT_AREA_SIZE¿Í ¸¶Âù°¡Áö·Î ÀûÀýÇÑ
°ªÀÌ ÁöÁ¤µÇ¾î¾ß Çϴµ¥, ¼ÒÆ®ÀÛ¾÷À» ¼öÇàÇϱâ À§ÇØ ÇÒ´çµÈ
¸Þ¸ð¸® ¿µ¿ªÀÌ ¼ÒÆ® ÀÛ¾÷ÀÌ ³¡³ ÈÄ°¡ ¾Æ´Ï¶ó ¼¼¼ÇÀÌ Á¾·áµÉ ¶§
±îÁö À¯ÁöµÉ ¼ö Àֱ⠶§¹®ÀÌ´Ù. SORT_AREA_SIZE °ªÀº ´Ù¸¥ ÆĶó¹ÌÅÍ¿Í
¸¶Âù°¡Áö·Î ½Ã½ºÅÛ¿¡ °¡¿ëÇÑ ½ÇÁ¦ ¸Þ¸ð¸® Å©±â À̳»¿¡¼ Á¶Á¤µÇ¾î¾ß
ÇÑ´Ù. ÀϹÝÀûÀ¸·Î ±Ç°íµÇ´Â SORT_AREA_SIZE °ªÀº 65k ¿¡¼ 1M »çÀÌ
¿¡¼ °áÁ¤µÈ´Ù.
- show parameter sort_area_size
- show parameter sort_area_retained_size
- sort_size´Â ÇÊ¿ä ÀÌ»óÀ¸·Î Å©°Ô ÇÒ´ç½Ã ³¶ºñ °¡´É¼º ÀÖÀ½(¼¼¼Ç¸¶´Ù ÇÒ´ç, 1.3MB=65kb*20user)
- 9iÀΰæ¿ì workarea_size_policy ÆĶó¹ÌÅÍ¿¡¼ ÀÚµ¿ºÐ¹è(auto)ÁöÁ¤Çϸé sort_area_size¸¦ ¹«È¿È ÇÏ°í ´ë½Å¿¡ pga_aggregate_target ÃʱâÈ ÆĶó¹ÌÅ͸¦ »ç¿ëÇϸé, PGA¿ëÀ¸·Î ÇÒ´çµÈ Àüü ¸Þ¸ð¸® ¿ë·®ÀÇ »óÇÑÄ¡¸¦ Á¤ÇÒ ¼ö ÀÖ´Ù.
À̶§¿¡´Â °³°³ÀÇ ¼¹ö ÇÁ·Î¼¼½ºÀÇ ÇÊ¿ä·®¿¡ µû¶ó PGA°¡ ÇÒ´çµÊ
3. sort °¨½Ã (sortÀÇ È½¼ö¿Í sortÀÇ ´ë»ó Çà¼ö Á¶»ç, sort_area_size¸¦ ´Ã·Á¾ß ÇÏ´ÂÁö ÆǺ°)
1) select * from v$sysstat where name like '%sorts%';
- sorts(memory) ¸Þ¸ð¸® ³»¿¡¼ ½ÇÇàµÇ°í ¼ÒÆ®µÈ Ƚ¼ö
- sorts(disk) ÀϽÃÀûÀ¸·Î ¼¼±×¸ÕÆ®ÀÇ O/O°¡ ÇÊ¿äÇÑ ¼ÒÆ®ÀÇ È½¼ö
- sorts(rows) ¼ÒÆ®ÀÇ ´ë»ó Çà¼ö
2) select m.value memory, d.value disk from v$sysstat m, v$sysstat d
where m.name='sorts(memory)' and d.name ='sorts(disk)';
- Memory¶õÀº ¸Þ¸ð¸® ¼ÒÆ®ÀÇ È½¼ö, Disk¶õÀº µð½ºÅ© ¼ÒÆ®ÀÇ È½¼ö
- µð½ºÅ© ¼ÒÆ®°¡ Àüü(¸Þ¸ð¸® ¼ÒÆ® + µð½ºÅ© ¼ÒÆ®)ÀÇ 5%¸¦ ÃÊ°úÇÒ ¶§¿¡´Â ¼ÒÆ®¿ëÀÇ ¸Þ¸ð¸® ºÎÁ·À» ³ªÅ¸³½´Ù.
- sort_area_size ¶Ç´Â pga_aggregate_target¿¡¼ ¼ÒÆ®¿ëÀÇ ¸Þ¸ð¸® ¿µ¿ªÀÇ »çÀÌÁ ÀûÀýÈ÷ Å©°Ô ¼³Á¤ÇÏ¸é µð½ºÅ© ¼ÒÆ® Ƚ¼ö¸¦ ÁÙÀÏ ¼ö ÀÖ´Ù.
- ¿©±â¼, ¸ðµç ¹®¼(?)¸¦ µÚÁ®ºÃÁö¸¸ 'ÀûÀýÈ÷'¶ó´Â Àǹ̸¦ ¸ð¸£°Ú´Ù. sga sizeó·³ °è»ê ¹æ¹ýÀÌ Àִ°͵µ ¾Æ´Ï°í..-_- ÇÏ¿©°£ °¡Àå ±ÙøÇÑ ³»¿ëÀº À§Ã³·³ v$sysstat¸¦ Á¶È¸ÇÑ °ªÀ¸·Î 'ÀûÀýÇÑ'°ªÀ» ¿¹»óÇÒ »Ó.. -_-
- sort_area_size´Â Ãʱ⠵ðÆúÆ® 64kb·Î ¼³Á¤µÈ´Ù.
3. ¸Þ¸ð¸® ÇÒ´ç - sort_area_size ¿µ¿ªÀº Server ±¸¼º¿¡ µû¶ó ´Þ¶óÁø´Ù.
- °¢ sessionº°·Î ù¹ø° sort°¡ ¼öÇàµÇ´Â ¼ø°£ memory°¡ ÇÒ´çµÇ°í sort°¡
ÁøÇàµÈ´Ù. sort°¡ ¼öÇàµÇ±â À§ÇØ ÇÊ¿äÇÑ ¿µ¿ªÀÌ Á¡Â÷ Áõ°¡ÇÏ´Ù°¡, sort°¡
¿ÏÀüÈ÷ ³¡³ª°Å³ª SORT_AREA_SIZE Å©±â¿¡ µµ´ÞÇÏ¸é ´õ ÀÌ»ó memory¸¦
ÇÒ´çÇÏÁö ¾Ê´Â´Ù.
ÀÌ·¸°Ô SORT_AREA_SIZE initialization parameter´Â ÇϳªÀÇ sort¿¡ ÀÇÇØ
»ç¿ëµÇ¾îÁú real main memoryÀÇ ÃÖ´ë Å©±â¸¦ ³ªÅ¸³½´Ù. ÀÌ parameterÀÇ
default°ªÀº 64K bytesÀ̸ç, ÀÌ parameter¿¡ ÀÇÇØ ¸¸µé¾îÁö´Â sort memory
¿µ¿ªÀº ´ÙÀ½°ú °°ÀÌ, server configuration¿¡ µû¶ó ´Ù¸¥ ºÎºÐ¿¡ À§Ä¡ÇÏ°Ô µÈ´Ù.
(1) dedicated server configuration
sort area°¡ Program Global Area (PGA)¿¡ ÇÒ´çµÈ´Ù. PGA´Â ÀÌ ¿Ü¿¡µµ
user ±ÇÇѵîÀ» Æ÷ÇÔÇÑ session information, cursor status, stack
space µîÀ» Æ÷ÇÔÇÑ´Ù.
(2) multi threaded server (MTS) configuration
sort area°¡ User Global Area(UGA)¿¡ ÇÒ´çµÈ´Ù. ÀÌ UGA´Â SGAÀÇ ÇÑ
±¸¼º ¿ä¼ÒÀÎ shared pool³»¿¡ À§Ä¡ÇÑ´Ù.
sort°¡ ¿ÏÀüÈ÷ ³¡ÀÌ ³ª¸é, sort¿µ¿ªÀº SORT_AREA_RETAINED_SIZE parameter¿¡
ÀÇÇØ Á¤ÇØÁø memoryÅ©±â·Î ÁÙ¾îµç´Ù. Áï, SORT_AREA_RETAINED_SIZE´Â ´ÙÀ½
sort¸¦ À§Çؼ ¹Ì¸® È®º¸ÇØ µÎ´Â ¿µ¿ªÀÌ´Ù. ¸¸¾à SORT_AREA_RETAINED_SIZE°¡
0À¸·Î ¼³Á¤µÇ¸é °°Àº process¶óµµ ¸Å¹ø sort½Ã´Ù¸¶ »õ·Î memory¸¦
SORT_AREA_SIZE¸¸Å ÇÒ´çÇÏ°Ô µÇ´Â °ÍÀÌ´Ù.
SORT_AREA_RETAINED_SIZEÀÇ default°ªÀº SORT_AREA_SIZE¿Í °°¾Æ¼, ÀÌÀü
sort½Ã¿¡ »ç¿ëµÈ memoryºÎºÐÀÌ Ç×»ó ´ÙÀ½ sort½Ã¿¡ ±×´ë·Î ÀÌ¿ëµÈ´Ù.
process°¡ ¿ÏÀüÈ÷ Á¾·áµÇ¸é ÀÌ ¿µ¿ªµµ ÇØÁ¦µÇ¾î MTS¶ó¸é shared pool¿µ¿ªÀ¸·Î
¹ÝȯµÇ°í, dedicated¹æ½ÄÀÎ °æ¿ì operating system¿µ¿ªÀ¸·Î ¹ÝȯµÈ´Ù.
4. ¼¼¼Ç ·¹º§ ÁöÁ¤
- ÀÌ µÎ initial parameter´Â session level¿¡¼µµ ¼öÁ¤ÀÌ °¡´ÉÇÏ´Ù, ¿¹¸¦ µé¾î
µÎ paramter¸¦ ¸ðµÎ 1m·Î ¼³Á¤ÇÏ´Â ¸í·ÉÀº ´ÙÀ½°ú °°´Ù.
SQL>alter session set
sort_area_size = 1024000
sort_area_retained_size=1024000;
¸¸¾à ¾ÕÀ¸·Î »õ·Î »ý¼ºµÇ´Â ¸ðµç session¿¡ ´ëÇؼ ¿µÇâÀ» ¹Þµµ·Ï ÇÏ·Á¸é
alter system ¸í·ÉÀ» ÀÌ¿ëÇÏ¿©¾ß ÇÑ´Ù. ¿¹¸¦ µé¸é ´ÙÀ½°ú °°´Ù.
SQL>alter system set
sort_area_size=102400 deferred
sort_area_retained_size=102400 deferred;
5. userº° ÁöÁ¤
3.¹ø ¸Þ¸ð¸® ÇÒ´ç¿¡¼ ¼³¸íÇÑ SORT_AREA_SIZEÀÇ memory¿Ü¿¡µµ Ãß°¡ÀûÀ¸·Î sort½Ã °ø°£ÀÌ
ÇÊ¿äÇÏ´Ù¸é, À̶§´Â ÀÌ¹Ì sort°¡ µÈ dataµéÀº disk¿¡ ¾²¿©Áö°í, memory³»ÀÇ
sort¿µ¿ªÀ» ºñ¿î ´ÙÀ½ ±× ¿µ¿ªÀ» »õ·Î¿î sortµÇ¾îÁ®¾ß ÇÒ dataµéÀÌ »ç¿ëÇϵµ·Ï
ÇÏ¸é¼ Àüü data¸¦ sortÇÑ´Ù. ¹°·Ð ÀÌ·¸°Ô ºÎºÐÀûÀ¸·Î sort°¡ µÈ ´ÜÀ§µéÀº
³ªÁß¿¡ ´Ù½Ã merge´Ü°è¸¦ °ÅÃÄ Àü¿¡ data°¡ ¸ðµÎ sort°¡ µÇµµ·Ï ÇÑ´Ù. ÀÌ¿Í
°°ÀÌ ÀϺΠÁ¤·ÄµÈ dataµéÀÌ disk¿¡ ¾º¿©Áö¸é temporary segment°¡ »ý¼ºµÇ°Ô
µÈ´Ù.
ÀÌ·¸°Ô Á¤·ÄµÈ dataµéÀÌ Àӽ÷Π¾º¿©Áö´Â temporary tablespace´Â °¢
user¸¶´Ù »ý¼º½Ã ÁöÁ¤µÇ¸ç, ÀÓÀÇ·Î º¯°æ °¡´ÉÇÏ´Ù.
¿¹¸¦ µé¸é ´ÙÀ½°ú °°´Ù.
SQL>create user scott identified by tiger
default tablespace users
temporary tablespace temp;
SQL>alter user scott temporary tablespace newtemp;
5.tablespaceÀÇ space management
(dictionary managed vs. locally managed)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
tablespace´Â extent´ÜÀ§·Î space¸¦ ÇÒ´çÇϴµ¥, free space¿Í used space¸¦
°ü¸®ÇÏ´Â ¹æ¹ýÀº dictionary managed¹æ½Ä°ú oracle8i¿¡¼ »õ·Î ¼Ò°³µÈ
locally managed, ÀÌ·¸°Ô µÎ°¡Áö·Î ±¸ºÐµÉ ¼ö ÀÖ´Ù.
locally managed tablespace¿¡ °üÇÑ ÀÚ¼¼ÇÑ »çÇ×Àº <Bul:11860>À» ÂüÁ¶Çϵµ·Ï
ÇÑ´Ù.
(1) dictionary managed tablespace
ÀÌ°ÍÀº oracle8.0°ú ±× ÀÌÀü version¿¡¼, tablespace¿¡¼ extent¸¦ ÇÒ´çÇÏ°í
¹ÝȯÇÏ´Â ¹æ¹ýÀ¸·Î »ç¿ëµÇ´Â °ÍÀÌ´Ù.
data dictionary table¿¡ extent¸¦ ÇÒ´çÇϰųª ÇØÁ¦ÇÔ¿¡ µû¶ó º¯°æµÇ´Â
extentÁ¤º¸¸¦ ÀúÀåÇÑ´Ù. user¿¡°Ô´Â dba_extents³ª dba_free_space¿Í °°Àº
view¸¦ ÅëÇØ Á¶È¸°¡´ÉÇÏ´Ù.
ÀÌ·¯ÇÑ ÇüÅÂÀÇ tablespace³»¿¡ ÀúÀåµÇ´Â segment´Â storage optionÀÎ
initial, next, pctincrease ¿¡ ÀÇÇØ ÇÊ¿äÇÑ extent¸¦ free space·Î ºÎÅÍ
ÇÒ´ç¹Þ¾Æ°¡°Ô µÇ´Âµ¥ temporary segment¸¦ À§ÇÑ tablespace¶ó¸é, ±× tablespace
(ÁÖ·Î TEMP¶ó°í À̸§Áö¾îÁü) ¿¡ »ý¼ºµÇ´Â ¸ðµç temporary segment´Â
tablespaceÀÇ default storageÀÇ °ªÀ» segmentº°·Î Àû¿ëÇÏ°Ô µÈ´Ù.
(2) locally managed tablespace
ÀÌ°ÍÀº 8i¿¡¼¸¸ »ç¿ë°¡´ÉÇÑ ¹æ¹ýÀ¸·Î, tablespace ÀÚü°¡ ÀÚ½ÅÀÇ extent¿¡
´ëÇÑ Á¤º¸¸¦ °¡Áö°í °ü¸®ÇÑ´Ù. locally managed tablespace¿¡ ¼ÓÇÑ °¢
datafileµéÀº °¢ datafile¸¶´Ù bitmapÀ» °¡Áö°í ÀÖ¾î¼, °¢ blockÀÇ
free¿Í used»óŸ¦ À¯ÁöÇÑ´Ù. bitmapÀÇ °¢ blockÀº ÇϳªÀÇ block ȤÀº
ÇϳªÀÇ blockÀÇ groupÀ» ³ªÅ¸³½´Ù.
ÀÌ·¸°Ô extent¸¦ ÀÚ½ÅÀÌ °ü¸®ÇÏ´Â tablespace´Â, ÀÏÁ¤ÇÑ Å©±âÀÇ extent
size¸¦ À¯ÁöÇÏ´Â UNIFORMÇüųª, system¿¡¼ ÀÚµ¿À¸·Î °¡º¯ÀûÀÎ extent
size¸¦ °áÁ¤ÇÏ´Â AUTOALLOCATE¹æ½Ä, µÎ°¡Áö·Î ÁöÁ¤°¡´ÉÇÏ´Ù.
ÀÌ·¯ÇÑ ÇüÅÂÀÇ tablespace´Â INITIAL, NEXT, PCTINCREASE, MINEXTENTS
µîÀÇ storage optionÀ» »ç¿ëÇÒ ¼ö ¾ø´Ù.
locally managed tablespace´Â ´ÙÀ½°ú °°Àº ÀÌÁ¡À» °¡Áø´Ù.
- extent¸¦ localÇüÅ·Π°ü¸®Çϸé, recursive space management operationÀ»
ÁÙÀÏ ¼ö ÀÖ´Ù. Áï dictionary table¿¡ ´ëÇÑ Á¶È¸³ª dmlÀ» ÇÇÇÒ ¼ö ÀÖ´Ù.
- ÀÚµ¿À¸·Î bitmap¸¸À» ÅëÇؼ, free space°¡ ÀÎÁ¢ÇØÀÖ´ÂÁö°¡ È®ÀÎÀÌ µÇ±â
¶§¹®¿¡ extent¸¦ coalescingÇÒ ÇÊ¿ä°¡ ¾ø¾îÁø´Ù.
tablespace¸¦ »ý¼ºÇÒ ¶§´Â À§ÀÇ µÎ ÇüÅ Áß Çϳª·Î tablespace¸¦ »ý¼ºÇÏ¿©¾ß
Çϸç, alter ¹®ÀåÀ» ÅëÇؼ ÇüŸ¦ º¯°æÇÒ ¼ö´Â ¾ø´Ù.
6. permanent tablespace¿¡ temporary segment»ý¼º
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ÀϹÝÀûÀ¸·Î TEMP¶ó´Â À̸§À» °¡Áö´Â user°¡ temporary tablespace·Î ÁöÁ¤ÇÏ´Â
tablespace´Â temporary³ª permanent Áß Çϳª·Î ÁöÁ¤°¡´ÉÇÏ´Ù.
permanent·Î ÁöÁ¤ÇÏ°Ô µÇ¸é sort°¡ ÇÊ¿äÇÒ ¶§¸¶´Ù temporary segment¸¦
tablespace¿¡ »ý¼ºÇÏ°Ô µÇ°í sort°¡ ³¡³ª¸é SMONÀÌ ÀÌ segment¸¦ ÇØÁ¦ÇÑ´Ù.
ÀϹÝÀûÀ¸·Î´Â ÀÌ·¸°Ô permanent·Î ÁöÁ¤À» ÇÏ¿©µµ db userÀÇ temporary·Î
ÁöÁ¤µÈ tablespace¿¡´Â ÀÏ¹Ý userÀÇ schema object¸¦ »ý¼ºÇÏÁö´Â ¾ÊÁö¸¸,
½ÇÁ¦ÀûÀ¸·Î´Â »ý¼ºÇÏ¿©µµ »ý¼ºµÈ objectÀÇ »ç¿ë¿¡ ÁöÀåÀº ¾ø´Ù.
±×·±µ¥ permanent·Î ÁöÁ¤ÇÏ°Ô µÇ¸é ´ÙÀ½°ú °°Àº ´ÜÁ¡ÀÌ ÀÖ´Ù.
- transaction level·Î sort°¡ ÇÊ¿äÇÒ ¶§¸¶´Ù temporary segment¸¦ »ý¼ºÇÏ°Ô
µÇ¹Ç·Î ¿©·¯°³ÀÇ temporary segment°¡ »ý¼ºµÇ¾î Áø´Ù.
- temporary segment°¡ ÀÚÁÖ »ý¼ºµÇ°í ´Ù½Ã ¾ø¾îÁü¿¡ µû¶ó fragmentationÀÌ
¹ß»ýÇÒ °¡´É¼ºÀÌ Å©´Ù.
- SMONÀÌ sort°¡ ¿Ï·áµÇ¸é temporary segment¸¦ free½ÃÅ°´Â ¿ªÇÒÀ» Çϴµ¥,
srot segment°¡ ¸Å¿ì ¸¹ÀÌ »ý¼ºµÇ°Ô µÇ¸é, SMONÀÌ ±× segemnt¸¦ Áö¿ì´Âµ¥
¸¹Àº ½Ã°£À» ÇÒ¾ÖÇÏ°Ô µÈ´Ù. ÀÌ·¸°Ô µÇ¸é ÀüüÀûÀÎ db performance¿¡
¿µÇâÀ» ÁÖ°Ô µÈ´Ù.
permanent typeÀ¸·Î temporary segment¸¦ À§ÇÑ tablespace¸¦ »ý¼ºÇÏ´Â
¹®ÀåÀÇ ¿¹¸¦ ±â¼úÇÏ¿´´Ù.
(Oracle 8.1¿¡¼´Â ÀÌ·¸°Ô ¼±¾ðÇϸé default·Î dictionary-managedÇüÅ·Î
»ý¼ºµÈ´Ù)
SQL>create tablespace temp datafile '/oracle/oradata/temp01.dbf'
default storage(initial 1m next 1m pctincrease 0);
Oracle 8.1À̻󿡼 temporary segment¸¦ À§ÇØ locally-managed permenent
tablespace¸¦ »ý¼ºÇÏ´Â ¿¹¹®Àº ´ÙÀ½°ú °°´Ù.
´Ü, ¹Ýµå½Ã UNIFORM extent size¸¸ÀÌ °¡´ÉÇÏ´Ù.
SQL>create tablespace temp datafile '/oracle/oradata/temp01.dbf
extent management local uniform size 1m;
7.temporary tablespace¿¡ temporary segment»ý¼º
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Oracle7.3ºÎÅÍ sort operationÀ» ´õ¿í È¿À²ÀûÀ¸·Î »ç¿ëÇϱâ À§ÇØ temp
tablespace¸¦ ¸í½ÃÀûÀ¸·Î temporary·Î ÁöÁ¤ÇÏ´Â °ÍÀÌ °¡´ÉÇÏ°Ô µÇ¾ú´Ù.
ÀÌ·¸°Ô ÇÔÀ¸·Î½á, temporary tablespace¿¡ sort space(temporary segment)¸¦
ÇÒ´çÇÏ°í ÇØÁ¦ÇÏ´Â ÀÛ¾÷ÀÇ ¹Ýº¹À» ÇÇÇÒ ¼ö ÀÖ´Ù.
ƯÈ÷, ÀÌ·¯ÇÑ ÁöÁ¤Àº OPSȯ°æ¿¡¼ ¼º´É Çâ»ó¿¡ µµ¿òÀÌ µÇ¸ç, µ¿½Ã¿¡ sortÀÛ¾÷ÀÌ
¿©·¯°³°¡ ¼öÇàµÇ¾î memory sort¸¸À¸·Î´Â ºÎÁ·ÇÑ °æ¿ì¿¡ ¼º´É Çâ»óÀ» ±â´ëÇÒ ¼ö
ÀÖ´Ù.
ÀÌ·¯ÇÑ ÇüÅÂÀÇ tablespace¿¡ »ý¼ºµÇ´Â temporary (sort) segment´Â
db startup ÈÄ Ã³À½¼öÇàµÇ´Â sortÀÛ¾÷ÀÌ memory³»ÀÇ sort¸¦ ¸¶Ä¡°í, disk·Î
³»·Á ¾µ¶§ »ý¼ºµÈ´Ù. ÀÌ·¸°Ô ÀÏ´Ü temporary segment°¡ »ý¼ºµÇ¸é ÀÌ segment´Â
db°¡ restartupµÉ¶§±îÁö ÁÙ¾îµé°Å³ª ÇØÁ¦µÇÁö ¾Ê´Â´Ù. sort°¡ ÇÊ¿äÇÑ
´Ù¸¥ transactionµéÀº ¹Ì¸® »ý¼ºµÈ temporary segment¸¦ °øÀ¯ÇÏ°Ô µÇ³ª,
extent¸¦ °øÀ¯ÇÏÁö´Â ¾Ê´Â´Ù.
sort ÀÛ¾÷Àº »ç¿ë°¡´ÉÇÑ extent°¡ Á¸ÀçÇÏÁö ¾ÊÀ¸¸é »õ·Î¿î extent¸¦ ÇÒ´çÇϸé¼
temporary segment¸¦ ´Ã·Á³ª°¡¸ç, ÀÌ¹Ì ¼³¸íÇÑ ¹Ù¿Í °°ÀÌ db°¡ runningµÇ¾î
ÀÖ´Â µ¿¾ÈÀº ÁÙ¾îµéÁö ¾Ê´Â´Ù. ±×·¯³ª sort°¡ ³¡³ª°Ô µÇ¸é »ç¿ëÇÑ extent¸¦
free·Î Ç¥½ÃÇÏ¿© ´Ù¸¥ transactionÀÌ Àç»ç¿ë°¡´ÉÇϵµ·Ï ÇÑ´Ù. °á±¹ temporary
segment´Â ¹«ÇÑÁ¤ °è¼Ó ´Ã¾î³ª±â º¸´Ù´Â ÀÏÁ¤ÇÑ sizeÁ¤µµ±îÁö ´Ã¾î³ ÈÄ¿¡´Â
extentº°·Î Àç»ç¿ë µÇ¾îÁö´Â °ÍÀÌ´Ù.
ÀÌ·¯ÇÑ temporary tablespace³»ÀÇ sort segment¿¡ ´ëÇÑ Á¤º¸´Â
Sort Extent Pool (SEP)¿¡ ÀúÀåÇϸç, ÀÌ°ÍÀº SGA³»¿¡ À§Ä¡ÇÑ´Ù.
temporary tablespace¸¦ ÀÌ¿ëÇÏ¿© sort¸¦ ¼öÇàÇÏ¿©¾ß ÇÏ´Â ¸ðµç ¹®ÀåÀº
SGA³»ÀÇ ÀÌ SEP¸¦ È®ÀÎÇÏ¿© free extent¸¦ ã¾Æ³½´Ù. ÀÌ·¸°Ô °¢ operationÈÄ¿¡
extent°¡ ÇÒ´ç, ÇØÁ¦µÇ´Â °úÁ¤ÀÌ ÇÊ¿ä¾ø±â ¶§¹®¿¡ ±âÁ¸ÀÇ permanent
tablespace¿¡ temporary segment¸¦ »ý¼ºÇÏ´Â °Íº¸´Ù dbÀü¹ÝÀûÀÎ ¼Óµµ°¡
Çâ»óµÇ´Â °ÍÀÌ´Ù.
¾Õ¿¡¼ ÀÌ temporary tablespaceÇüÅ°¡ ƯÈ÷ OPS¿¡¼ ¼º´É Çâ»óÀ» °¡Á®¿Ã
¼ö ÀÖ´Ù°í ÇÏ¿´´Âµ¥ ±× ÀÌÀ¯´Â ÀÌ SEP¿¡¼ ÇÒ´çµÇ´Â extent´Â ´Ù¸¥
instance³¢¸® °°Àº extent¸¦ »ç¿ëÇÏ´Â °æ¿ì´Â ¾øµµ·Ï instance id¸¦ ÀÌ¿ëÇÏ¿©
ÇÒ´ç¹Þµµ·Ï ÇÏ¿© Ç×»ó °°Àº instance¿¡¸¸ ÇÒ´çÀÌ µÈ´Ù.
Áï, pingÀÌ ¹ß»ýÇÒ È®·üÀÌ ÁÙ°Ô µÇ¾î ¼ÓµµÀÇ Çâ»óÀ» °¡Á®¿À°Ô µÈ´Ù.
temporary tablespace³»ÀÇ sort segmentÀÇ ÇØÁ¦ ÀÛ¾÷Àº db shutdown½Ã¿¡
ÀÚµ¿À¸·Î ÀÌ·ç¾îÁö´Â °ÍÀÌ ¾Æ´Ï°í db startup½Ã¿¡ SMON¿¡ ÀÇÇؼ ¼öÇàµÈ´Ù.
database°¡ openµÇ°í ³ª¸é, temporary tablespace¿¡¼ extent¸¦ ÇØÁ¦ÇÏ¿©
coalescingÀÛ¾÷À» ¼öÇàÇÑ´Ù. ÀÌ·¯ÇÑ ÀÛ¾÷À¸·Î ÀÎÇØ db°¡ startupµÈ Á÷ÈÄ
SMONÀÌ CPU¸¦ ¸¹ÀÌ »ç¿ëÇÏ´Â °æ¿ì°¡ ¹ß»ýÇÏ´Â °ÍÀÌ´Ù.
¸¸¾à¿¡ temporary tablespaceÀÇ NEXT°ªÀÌ ³Ê¹« ÀÛ°Ô ÁöÁ¤µÇ¾î ¸Å¿ì ¸¹Àº
°¹¼öÀÇ extent°¡ ¸¹µé¾îÁö°Ô µÇ¸é, SMONÀÇ ÀÌ·¯ÇÑ ÀÛ¾÷À¸·Î ÀÎÇØ »ç¿ë°¡´ÉÇÑ
CPU resource°¡ °ÅÀÇ ¾ø¾îÁüÀ¸·Î ÀÎÇØ db»ç¿ë¿¡ ¹®Á¦°¡ ¾ß±âµÉ ¼ö ÀÖ´Ù.
tablespace¸¦ temporary·Î ÁöÁ¤ÇÏ´Â ¹®ÀåÀÇ ¿¹´Â ´ÙÀ½°ú °°´Ù.
(Oracle 8.1¿¡¼´Â ÀÌ·¸°Ô ¼±¾ðÇϸé default·Î dictionary-managedÇüÅ·Î
»ý¼ºµÈ´Ù)
SQL>create tablespace temp datafile '/oracle/oradata/temp01.dbf'
default storage(initial 1m next 1m pctincrease 0)
temporary;
Oracle 8.1À̻󿡼 temporary segment¸¦ À§ÇØ locally-managed temporary
tablespace¸¦ »ý¼ºÇÏ´Â ¿¹¹®Àº ´ÙÀ½°ú °°´Ù.
´Ü, temporary tablespace¿¡¼´Â ¹Ýµå½Ã UNIFORM extent size¸¸ÀÌ °¡´ÉÇÏ´Ù.
SQL>create temporary tablespace temp
datafile '/oracle/oradata/temp01.dbf
extent management local uniform size 1m;
ÀÌ·¸°Ô temporary tablespace·Î »ý¼ºµÈ tablespace¿¡´Â tableÀ̳ª index¿Í
°°Àº permanentÇÑ schema object´Â »ý¼ºµÉ ¼ö ¾ø´Ù.
dictionary-managed temporary tablespaceÀÇ °æ¿ì´Â ´ÙÀ½°ú °°Àº ¹®Àå¿¡
ÀÇÇØ permanent·Î º¯°æÀÌ °¡´ÉÇÏ´Ù.
SQL>alter tablespace temp permanent;
8.guidelines
~~~~~~~~~~~~
- temporary segment°¡ ÀÚÁÖÇÒ´çµÇ°í, ÇØÁ¦µÇ´Â °ÍÀ» ÇÇÇÏ°íÀÚ ÇÑ´Ù¸é temporary
typeÀÇ tablespace¸¦ »ç¿ëÇÑ´Ù.
- Çϳª ÀÌ»óÀÇ temporary tablespace¸¦ »ç¿ëÇÏ´Â °Íµµ µ¿½Ã¿¡ sort°¡ ¹ß»ýÇÏ´Â
°æ¿ì µµ¿òÀÌ µÈ´Ù. Áï db user¸¶´Ù temporary tablespace¸¦ ´Þ¸® ÁöÁ¤Ç϶ó´Â
°ÍÀε¥, ÀÌ°ÍÀº db userº°·Î ¾÷¹« ºÐÇÒÀÌ Àß µÇ¾î ÀÖ´Â OPS¿¡¼ ƯÈ÷ À¯¿ëÇÏ´Ù.
±× ¿Ü¿¡µµ °¢ tablespace¸¦ ´Ù¸¥ disk¿¡ À§Ä¡½ÃÅ°´Â °æ¿ì ¼Óµµ Çâ»óÀ» °¡Á®¿Ã
¼ö ÀÖ°í, db userº°·Î ¾÷¹«°¡ ³ª´µ´Â °æ¿ì °¢ ¾÷¹«¿¡ ÇÊ¿äÇÑ sort space¸¦
µû·Î °ü¸®ÇÏ´Â ÀåÁ¡ÀÌ ÀÖ´Ù.
- temporary tablespaceÀÇ default storage¸¦ ÁöÁ¤ÇÏ´Â °æ¿ì, INITIALÀº NEXT¿Í
°°°Ô ÇÏ°í pctincrease´Â Ç×»ó 0À¸·Î ÇÑ´Ù.
pctincrease°¡ 0À̸é temporary tablespaceÀÇ ¸ðµç extent´Â °°Àº Å©±âÀÇ
Á¶°¢À» °¡Áö°Ô µÇ°í, ÀÌ·¸°Ô µÇ¸é coalescingÀÌ ¼öÇàµÇÁö ¾Ê¾Æµµ »õ·Î¿î
sortÀÛ¾÷ÀÌ ±âÁ¸¿¡ ¹ß»ýÇÑ extent¸¦ ±×´ë·Î ÀÌ¿ëÇÒ ¼öÀÖ°Ô µÈ´Ù.
- NEXT´Â ´ÙÀ½°ú °°Àº °ø½Ä¿¡ ÀÇÇؼ ¼³Á¤ÇÏ´Â °ÍÀÌ À¯¸®ÇÏ´Ù.
n*s + b
n: ¾ç¼ö
s: SORT_AREA_SIZE parameterÀÇ °ª
b: DB_BLOCK_SIZE parameterÀÇ °ª
ÀÌ·¸°Ô ÇÏ´Â ÀÌÀ¯´Â temporary segment´Â Ç×»ó sort_area_size¸¸Å¾¿
memory¿¡¼ ¾²¿©Áö°Ô µÇ¸ç db_block_size¸¸ÅÀÇ header blockÀ» extent¸¶´Ù
°¡Áö±â ¶§¹®ÀÌ´Ù.
9.temporary segments¿¡ ´ëÇÑ Á¤º¸ È®ÀÎ
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
v$sort_segment view¿¡¼ sort segment¸¦ Æ÷ÇÔÇÏ´Â temporary tablespace¸¦
È®ÀÎÇÒ ¼ö ÀÖ´Ù.
extent_size : extentÀÇ Å©±â, Oracle block°¹¼ö
tatal_extents : ºó °Í°ú, »ç¿ëÁßÀÎ °Í ¸ðµÎ ÇÕÇØ segment¿¡ Æ÷ÇÔµÈ tatal
extentÀÇ °¹¼ö
used_extents : ÇöÀç »ç¿ëÁßÀÎ extentÀÇ °¹¼ö
free_extents : ÇöÀç free·Î Ç¥½ÃµÇ¾î ÀÖ´Â extentÀÇ total°¹¼ö
max_used_size : ÇϳªÀÇ operation, Áï ÇÑ transaction¿¡ ÀÇÇÑ ÇѹøÀÇ sort¿Í
°°Àº ÀÛ¾÷À» À§ÇØ »ç¿ëµÈ extentÀÇ °¹¼ö Áß ÃÖ´ë·Î Å« °æ¿ì
ÇöÀç user¿¡ ÀÇÇØ »ç¿ëµÇ¾îÁö°í ÀÖ´Â temporary segment³»ÀÇ °ø°£À»
È®ÀÎÇÏ·Á¸é, v$sort_usage¿Í v$session view¸¦ ÀÌ¿ëÇÑ´Ù.
´Ü, sort_usage´Â sort½Ã¿¡¸¸ Á¤º¸°¡ ³ªÅ¸³ª´Â °ÍÀ» ÁÖÀÇÇØ¾ß ÇÑ´Ù.
¿¹¸¦ µé¾î ´ÙÀ½°ú °°ÀÌ Á¶È¸ÇÒ ¼ö ÀÖ´Ù.
select s.username, u.tablespace, u.contents, u.extents, u.blocks
from v$session s, v$sort_usage u
where s.saddr=u.session_addr;
USERNAME TABLESPACE CONTENTS EXTENTS BLOCKS
-------- ----------- ---------- -------- --------
SCOTT TEMP TEMPORARY 10 10240000
--------------------------------------------------------------------------------
ÀÌ¾ß±â µÑ **********************************************************************
1) SystemÀû º¯°æ
- DB ¸¦ ´Ù½Ã create ÇÒ °æ¿ì DB_BLOCK_SIZE¸¦ Áõ°¡½ÃŲ´Ù.
ÀÌ block size °¡ Å« °æ¿ì, ´õ ÀÛÀº I/O cycle ÀÌ ¹ß»ýÇÑ´Ù.
ÀÌ º¯°æ°ªÀÌ permanentÇÑ °æ¿ì´Â º¯°æ Àü°ú ºñ±³ÇÑ ¸ðµç È¿°ú¸¦ °í·ÁÇÑ´Ù.
- 1°³ÀÇ Ä¿´Ù¶õ rollback segment ¸¦ »ý¼ºÇÏ°í, ÀÌ¿ÜÀÇ rollback segment´Â ¸ðµÎ offline ÇÑ´Ù.
- 1°³ÀÇ rollback segment´Â import µÇ¾îÁú table Áß °¡Àå Å« °ÍÀÇ 50%
Á¤µµ·Î Àâ´Â´Ù. import ´Â ±âº»ÀûÀ¸·Î insert into table_name values
(,,,,,) ÀÌ°í ÀÌ °æ¿ì rollback segment ¿¡´Â rowid ¸¸ µé¾î°¡°Ô µÇ¹Ç·Î
2°³ÀÇ °°Àº size ÀÎ extent¸¦ °®´Â rollback À» »ý¼ºÇÏ¸é µÈ´Ù.
- import °¡ ³¡³¯ ¶§±îÁö database ¸¦ NOARCHIVELOG mode·Î À¯ÁöÇÑ´Ù.
ÀÌ´Â archive log ¸¦ »ý¼ºÇÏ´Â overhead ¸¦ ¾ø¾Ù ¼ö ÀÖ´Ù.
- rollback segment¿Í ¸¶Âù°¡Áö·Î, Ä¿´Ù¶õ redo log fileÀ» »ý¼ºÇÑ´Ù.
Ŭ¼ö·Ï log switch °¡ ¹ß»ýÇÏÁö ¾ÊÀ¸¹Ç·Î import ½Ã´Â ÁÁ´Ù.
ÀÛÀº size ÀÇ redo log ´Â offline Çϵµ·Ï ÇÑ´Ù. alert.log ¿¡ ³ªÅ¸³ª´Â
'Thread 1 cannot allocate new log, sequence 17, Checkpoint not
complete'ÀÇ ¸Þ½ÃÁö´Â Á» ´õ Å©°Å³ª ´õ ¸¹Àº °¹¼öÀÇ redo log file ÀÌ
ÇÊ¿äÇÔÀ» ³ªÅ¸³½´Ù.
- °¡´ÉÇÏ´Ù¸é table, rollback, redo log file ÀÌ ´Ù¸¥ disk¿¡ ÀÖµµ·Ï ÇÑ´Ù.
ÀÌ´Â i/o contentionÀ» ÁÙÀÏ ¼ö ÀÖ´Ù.
2) Init.ora Parameter º¯°æ
- LOG_CHECKPOINT_INTERVALÀ» redo log fileÀÇ size º¸´Ù Å©°Ô ÁØ´Ù.
ÀÌ ¼ýÀÚ´Â OS block À» ÀǹÌÇÏ¿© unix ¿¡¼´Â 512 byte ÀÌ´Ù.
À̸¦ Å©°Ô Çϸé log swich timeÀ» ÁÙÀÏ ¼ö ÀÖ´Ù.
- SORT_AREA_SIZE¸¦ Áõ°¡½ÃŲ´Ù.
À妽º¸¦ ¾ÆÁ÷ »ý¼ºÇÏÁö ¾Ê¾Ò´Ù ÇÏ´õ¶óµµ, unique, primary key´Â ÀÖ±â
¶§¹®ÀÌ´Ù.
ÀÌ °ªÀÇ Áõ°¡´Â °°Àº machine ¾È¿¡ º°µµÀÇ ¾î¶² ÀÛ¾÷ÀÌ Àִ°¡,
free memoty °¡ ¾ó¸¶ ¸¸Å ÀÖ´À³Ä¿¡ µû¶ó ´Ù¸£±ä ÇÏÁö¸¸ Æò»ó ½ÃÀÇ 5-10
¹è·Î ÇÑ´Ù.
¸¸ÀÏ machineÀÌ swappingÀ̳ª pagingÀÌ ¹ß»ýÇÏ¸é ´õ¿í Å©°Ô ÇØÁØ´Ù.
3) Import Options º¯°æ
- COMMIT=N optionÀ» »ç¿ëÇÑ´Ù.
À̸¦ »ç¿ëÇϸé bufferÀÇ data °¡ insertµÇ°í commitÇÔÀÌ ¾Æ´Ï¶ó, °¢
object(table) ÀÇ ¸ðµç data°¡ insert ÈÄ commit µÈ´Ù.
¸¸ÀÏ rollback ÀÌ ÀÛ´Ù¸é ÀÌ option À» ÀÌ¿ëÇÒ ¼ö ¾ø´Ù.
- BUFFER Å©±â¸¦ Å©°Ô ÇÑ´Ù.
ÀÌ°Í ¿ª½Ã ½Ã½ºÅÛÀÇ ´Ù¸¥ activity ³ª, µ¥ÀÌŸº£À̽º Å©±â¿¡ µû¶ó ´Ù¸£´Ù.
ÀÌ °ªÀÌ Å©¸é export fileÀ» access Çϴ Ƚ¼ö¸¦ ÁÙÀÏ ¼ö ÀÖ´Ù.
- import ½Ã INDEXES=N optionÀ» »ç¿ëÇÑ´Ù.
¸¸ÀÏ index¸¦ »ý¼º ½Ã´Â SORT_AREA_SIZE ´Â ´õ¿í Ä¿¾ß ÇÑ´Ù.
----------------------------------------------------------------------------------
|
|
|
|
|
|