|
|
[ÀϹÝ] analyze Å×À̺í - Äõ¸® ÃÖÀûÈ Çϱâ |
|
È£¼® ´Ô²²¼ ¾´ ±ÛÀÔ´Ï´Ù - 121.¢½.39.7 |
ÀÐÀ½:3728 |
|
|
CBO(Cost Based Optimizer)
iwish73 ´äº¯Ã¤Å÷ü 74.7%
2003.11.24 11:15
Áú¹®ÀÚÀÎ»ç ´äº¯ÇØ Áּż ´ë´ÜÈ÷ °¨»çÇÕ´Ï´Ù..Á¦°¡ ¿À¶óŬ¿¡ ´ëÇÑ ±âº»Áö½ÄÀÌ ¾ø´Ùº¸´Ï Áú¹®À» Á¦´ë·Î ¸»¾¸µå¸®Áö ¸øÇß½À´Ï´Ù.. Á¤¸» ºü¸¥ ´äº¯ ´Ù½ÃÇѹø ´ë´ÜÈ÷ °¨»çµå¸®¸ç Ç×»ó ÁÁÀºÀϸ¸ ÀÖÀ¸½Ã±æ °£ÀýÈ÷ Èñ¸ÁÇÕ´Ï´Ù...^^
¿À¶óŬÀÇ ¿ÉƼ¸¶ÀÌÀú´Â 2°¡Áö ¹æ½ÄÀÔ´Ï´Ù.
¹Ù·Î CBO¿Í RBO(Rule Based Optimizer)ÀÔ´Ï´Ù.
±×·¯³ª ¿À¶óŬÀº 8¹öÀü(8i¹Ù·Î Àü ¹öÀüÀÌÁÒ)¿¡¼ºÎÅÍ CBOÀÇ ±â´ÉÀ» ÇÑâ °ÈÇßÀ¸¸ç, ÃßÈÄ¿¡´Â ¿ÏÀüÈ÷ CBO·Î »ç¿ëÇÏ°Ú´Ù´Â ÀÔÀåÀÔ´Ï´Ù.
¸ÕÀú ¿À¶óŬÀÌ ÇöÀç ¾î¶² ¼³Á¤À¸·Î µÇ¾îÀÖ´ÂÁö ¾Ë¾Æº¸±â À§Çؼ´Â..
SQL*PLUS»ó¿¡¼ show parameter OPT ·Î Çغ¸½Ã¸é..
optimizer_mode string CHOOSE
ÀÌ·±½ÄÀ¸·Î ³ª¿É´Ï´Ù.
ÇöÀç ¼³Á¤Àº CHOOSE·Î µÇ¾îÀÖ½À´Ï´Ù. Áï ¿À¶óŬÀÌ ¾Ë¾Æ¼ CBO³ª RBO¸¦ ¼±ÅÃÇÏ°Ú´Ù´Â ¸»ÀÌÁÒ.
ÀÌ ¼³Á¤À» º¯°æÇϱâ À§Çؼ´Â..
$ORACLE_HOME\database\initSID.ora ÆÄÀϳ»¿¡ OPTIMIZER_MODE ¸¦ º¯°æÇØÁÖ½É µË´Ï´Ù.
¹°·Ð ÀÌ·¸°Ô Çϸé DB¸¦ RESTARTÇؾßÇÕ´Ï´Ù.
¸í·É¾î·Î º¯°æÇϱâ À§Çؼ±..
alter session set optimizer_ mode = {choose | rule | first_rows | all_rows}
¾î·µç ÇöÀç CHOOSE¶ó¸é º¯°æ¾øÀÌ »ç¿ëÇصµ ÁÁ½À´Ï´Ù.
±×·³ Áú¹®¿¡ ´äÇÏ°Ú½À´Ï´Ù.
1.INDEXÇÑ °æ¿ì¿Í ¾È ÇÑ °æ¿ì
-±âº»ÀûÀ¸·Î À妽º°¡ ¾ø´Ù¸é À妽º¸¦ ¾È Ÿ°ÚÁÒ. ¾Æ´Ï ¸ø ŸÁÒ..^^
ÀÌ °æ¿ì¿¡´Â CBOÀû¿ëÀÌ ¾ÈµË´Ï´Ù.(¸ÂÀ»°Ë´Ù ¾Æ¸¶..^^)
CBO¸¦ Àû¿ëÇϱâ À§Çؼ± ¼±°áµÇ¾î¾ß ÇÒ ¹®Á¦°¡ Àִµ¥¿ä.
¹Ù·Î ANALYZEÀÛ¾÷ÀÌ ¼±ÇàµÇ¾î¾ß ÇÕ´Ï´Ù.
- compute statistics, estimate statistics
Àüü ÇàÀÇ ±æÀÌ°¡ 1064º¸´Ù Àû°Å³ª, 50%ÀÌÇÏ·Î percentage°¡ ÁöÁ¤µÈ °æ¿ì
estimateµµ compute·Î ½ÇÇàµÊ
analyze script ¸¸µé±â
set heading off
spool xxxx.sql
select 'analyze table ' || table_name || ' estimate statistics;' from user_tables;
select 'analyze index ' || index_name || ' estimate statistics;' from user_indexes;
Áï ´Ù½Ã ¸»ÇÏÀÚ¸é, ÀÌ·± ANALYZEÀÛ¾÷¿¡ ÀÇÇÑ Åë°è°ªÀÌ ¾ø´Ù¸é ¿À¶óŬÀº
Á¤È®ÇÏ°Ô CBO¸¦ ¼öÇàÇÒ ¼ö ¾ø´Ù´Â°ÅÁÒ.
CBO, Áï ¿ÉƼ¸¶ÀÌÀúÀÇ Á¤È®ÇÑ °á°ú¸¦ À§Çؼ± ANALYZE°¡ ¼±ÇàµÇ¾î¾ß ÇÕ´Ï´Ù.
°³¹ßÀÚ ¿©·¯ºÐµéµµ º¸Åë Å×ÀÌºí¿¡ Å« º¯°æÀÌ ÀÖ´Â ´ëÇü ¹èÄ¡ Àâ °°Àº°É
¼öÇàÇÏ½Ã°í ³ª¸é ANALYZE¸¦ ÇØÁÖ½Ã´Â°Ô ÁÁ½À´Ï´Ù.
¼ø¼´Â À§¿¡ ó·³ TABLE¸¦ ¸ÕÀú ÇϽðí INDEX¸¦ ÇÏ¸é µÇÁÒ.
¹°·Ð DBÀüü¸¦ ÇÒ ¼öµµ ÀÖÁö¸¸, ½Ã°£ ¾öû °É¸± ¼ö ÀÖ½À´Ï´Ù.
ƯÈ÷ COMPUTE ¿É¼ÇÀÇ °æ¿ì¿¡´Â¿ä.
2.SORT¸¦ ÇÑ °æ¿ì¿Í ¾ÈÇÑ °æ¿ì
- ÀϹÝÀûÀ¸·Î(¾Æ´Ï Á¦°¡ ¾Æ´Â Çѵµ¿¡¼±, Áï Ʋ¸± ¼ö ÀÖ´Ü ¾ê±âÁÒ ^^) SORT´Â
TEMP TABLESPACE¿Í »ó°üÀÌ ÀÖ½À´Ï´Ù.
¹°·Ð ±× ¿Ü¿¡µµ ¿ª½Ã initSID.ora ³»¿¡ À§Ä¡ÇÑ,
sort_area_size ÀÌ·± ÆĶó¹ÌÅͿ͵µ »ó°üÀÌ ÀÖ½À´Ï´Ù¸¸..
¾î·µç Äõ¸® ¼öÇà Áß sort¸¦ ÇؾßÇÒ °æ¿ì ¿À¶óŬÀº temp tablespace¸¦ »ç¿ëÇÕ´Ï´Ù.
Àû´çÇÏÁö ¾ÊÀº, Áï ³Ê¹« ÀÛÀº temp tablespace¸¦ »ç¿ëÇÒ °æ¿ì
´À¸± ¼ö ÀÖ½À´Ï´Ù.
3.¿ÉƼ¸¶ÀÌÀú´Â..
- »ç½Ç ¿ÉƼ¸¶ÀÌÀú´Â Á¶ÀÎÀ» ÇÒ ¶§ µî¿¡ ÈξÀ ¸¹ÀÌ ¾²ÀÔ´Ï´Ù.
CBO¶ó´Â ¸» ÀÚü°¡, Cost...Áï ¾ó¸¶³ª ÀûÀº ½Ã°£À¸·Î »¡¸® °¡Á®¿À³Ä..¸¦
°áÁ¤Çؼ ¿À¶óŬ Áö ¸¾´ë·Î(?) °¡Á®¿À´Â°ÅÁÒ.
°ú¿¬ ¾î¶»°Ô Á¶ÀÎÇϴ°Ô(nested loop, hash join, sort-merge join µî)
°¡Àå ºñ¿ëÀÌ Àû°Ô µå´À³Ä¸¦ Áö°¡ °áÁ¤Çϴ°̴ϴÙ.
±×·¯¹Ç·Î °¡Àå ÈǸ¢ÇÑ °á°ú¸¦ À§Çؼ´Â analyzeÀÛ¾÷ÀÌ ¼±ÇàµÇ¾î¾ß ÇÕ´Ï´Ù.
±×·¸´Ù°íÇؼ analyze¸¦ ½Ãµµ¶§µµ ¾øÀÌ ÇÏ´Â°Ô ÁÁÀ¸³Ä..?
±×°Ç ¶Ç ¾Æ´Õ´Ï´Ù. ^^
Èì...Âü°í°¡ µÇ¼Ì³ª¿ä? ^^
|
|
|
|
|
|