HOME   ·Î±×ÀΠ  ȸ¿ø°¡ÀÔ
    
ȸ¿ø°¡ÀÔ
ºñ¹Ð¹øÈ£ ã±â ÀÚµ¿·Î±ä
ÀÌÀü°Ô½ÃÆÇ
   free_board
   °Ç°­°Ô½ÃÆÇ
   ¿À¶óŬDB
   Linux
   HTML/javascript
   Áú¹®°ú ´ä
È£¼­±â
   À̹ÌÁö°Ô½ÃÆÇ  
   °Ç°­°Ô½ÃÆÇ  
   À½¾ÇÀÚ·á  
   ¼ºÁØÀÌ °Ô½ÃÆÇ  
[ÀϹÝ] ¿ë·®°è»ê Å×À̺í À妽º, µ¥ÀÌºí ±âŸ
  È£¼® ´Ô²²¼­ ¾´ ±ÛÀÔ´Ï´Ù - 220.¢½.198.214 ÀÐÀ½:6055  

Á¤È®ÇÑ ¿ë·® °è»êÀº Èûµì´Ï´Ù. varchar/BLOB µîÀÇ °æ¿ì ±× Å©±â¸¦ Á¤È®È÷ °è»êÇÒ¼ö´Â ¾ø±â ¶§¹®ÀÔ´Ï´Ù. ÇÏÁö¸¸ varchar/char/int µîÀÇ ºñ±³Àû ÇÑ°è°¡ Á¤ÇØÁø ÀÚ·áÇüÀ» »ç¿ëÇÑ Å×À̺íÀÇ °æ¿ì´Â ´ë·«ÀûÀÎ ¿ë·® °è»êÀº °¡´ÉÇÕ´Ï´Ù.

 

º¸ÅëÀº worst case·Î ÃÖ´ë ¿ë·®À» °è»êÇÏ´Â ¹æ¹ýÀ» »ç¿ëÇÕ´Ï´Ù. Çϵ尡 ³²¾Æ¼­

¹®Á¦µÉ°Ç ¾øÁö¸¸ ¸ðÀÚ¶ó¸é ¹®Á¦°¡ µÇ´Ï±î.

 

±×·± ÀüÁ¦¸¦ µû¸£¸é,

 

1) ÀÏ´Ü ÇØ´ç Ä÷³ÀÇ ¸ðµç µ¥ÀÌÅÍ°¡ Å©±â¸¸Å­ »ç¿ëÇÑ´Ù°í °¡Á¤ÇÏ°í,

2) µé¾î°¡´Â µ¥ÀÌÅÍÀÇ °³¼ö¸¸Å­ row-id Å©±â¸¦ Àâ°í,

3) Àε¦½Ì ¿©ºÎ¿¡ µû¶ó¼­ ¸¸¾à À妽ÌÀ» ÇÏ´Â Ä÷³À̶ó¸é ÇØ´ç Àε¦½Ì ¹æ¹ý¿¡ µû¶ó¼­ Ãß°¡ ¿ë·®À» °è»êÇÏÁö¸¸ ÀϹÝÀûÀ¸·Î 1)ÀÇ ¾à 70% ¶ó°í º¸½Ã¸é µË´Ï´Ù.

(°¡Àå ÈçÇÑ ¹æ¹ýÀÎ B*Æ®¸®ÀÎ °æ¿ì)

 

¿¹¸¦µé¾î 60¹®ÀÚ, 100·¹ÄÚµå,ÇÁ¶óÀ̸Ӹ® Å°ÀÎ °æ¿ì¿¡´Â

 

Áï (60+8)*100 * 1.7 ÀâÀ¸½Ã¸é µË´Ï´Ù.

 

¹°·Ð µ¥ÀÌÅͺ£À̽ºÁ¤º¸, Å×À̺í Á¤º¸ µîµî °ú¿Ü·Î Ãß°¡µÇ´Â Á¤º¸µéµµ ÀÖ°í À§ ¿¹¿¡¼­´Â ÀÌ·± °ú¿ÜÁ¤º¸°¡ ÈξÀ Å©°ÚÁö¸¸ ÀϹÝÀûÀ¸·Î ½ºÅ丮Áö ¿ë·®ÀÌ ¹®Á¦°¡ µÉ °ÍÀ¸·Î ¿¹»óµÇ´Â °æ¿ì¿¡´Â ´ë´ÜÈ÷ ´ë·®ÀÇ µ¥ÀÌÅÍ°¡ ÀÖ´Â °æ¿ì¶ó¼­ ±×·± Ä«Å»·Î±× Á¤º¸µéÀº ±×´ÙÁö Ä¡Áö ¾Ê¾Æµµ ÁÁ½À´Ï´Ù.

ÀÌ ±Û¿¡ ´ëÇÑ ´ñ±ÛÀÌ ÃÑ 4°Ç ÀÖ½À´Ï´Ù.

TABLE/INDEX SIZE °è»ê °ø½Ä

 

1. TABLE SIZE °è»ê °ø½Ä(ORACLE BLOCK SIZE : 2K ·Î °¡Á¤)
-------------------------------------------------------
    $ sqlplus scott/tiger
      SQL> SELECT  GREATEST(4, ceil(ROW_COUNT /
                  ((round(((1958 - (initrans * 23)) *
                  ((100 - PCT_FREE) /100)) / ADJ_ROW_SIZE)))) * 2)
                  TableSize_Kbytes
        FROM dual;

    *. ÇÑ°³ÀÇ BLOCK¿¡ Available ÇÑ Bytes - 1958
    *. °¢ initrans ´Â 23 Bytes
    *. PCT_FREE : Table ÀÇ pctfree °ª(default 10)
    *. ADJ_ROW_SIZE : °¢ row ÀÇ Æò±Õ SIZE ÃßÁ¤Ä¡ 
    *. ROW_COUNT : table ÀÇ row ÀÇ °¹¼ö 

2. INDEX SIZE °è»ê°ø½Ä 
----------------------
    SQL> SELECT  GREATEST(4, (1.01) * ((ROW_COUNT /
                  ((floor(((2048 - 113 - (initrans * 23)) * 
                  (1 - (percent_free/100))) /
                  ((10 + uniqueness) + number_col_index + 
                  (total_col_length)))))) *2))
                  IndexSize_Kbytes
        FROM dual;

    *. ÇÑ°³ÀÇ BLOCK¿¡ Available ÇÑ Bytes ( 1935 or 2048 - 113 )
    *. °¢ initrans ´Â 23 Bytes
    *. ROW_COUNT : table ÀÇ row ÀÇ °¹¼ö
    *. PCT_FREE : Index ÀÇ pctfree °ª(default 10)
    *. number_col_index : Index ¿¡¼­ column ÀÇ ¼ö
    *. total_col_length : Index ÀÇ ±æÀÌ ÃßÁ¤Ä¡
    *. uniqueness : ¸¸ÀÏ unique index ¸é 1, non-unique index ¸é 0. 
advance´ÔÀÌ 2001-12-08 01:22:27¿¡ ÀÛ¼ºÇÑ ´ñ±ÛÀÔ´Ï´Ù.

TABLE SIZE °è»ê ÃßÁ¤ ¹æ¹ý

 

TABLE(NON-CLUSTERD TABLE)ÀÇ Ãʱ⠻ç¿ë·®À» ÃßÁ¤ÇÏ´Â ¹æ¹ýÀ» »ìÆ캸ÀÚ.
¿©±â¼­´Â ORACLE7 SERVER¸¦ ±âÁØÀ¸·Î ÇÏ¿© ¼³¸í Çϱâ Çϸç,
TABLEÀÇ Ãʱ⠻ç¿ë·®À» °è»êÇÏ´Â ´Ü°è¸¦ ´ÙÀ½°ú °°ÀÌ ³ª´­ ¼ö ÀÖ´Ù.

STEP 1 - ÃÑ ºí·° Çìµå Å©±â(BLOCK HEADER SIZE)¸¦ °è»ê
STEP 2 - µ¥ÀÌŸ ºí·° ´ç »ç¿ë °¡´ÉÇÑ µ¥ÀÌŸ ¿µ¿ªÀ» °è»ê
STEP 3 - Æò±Õ ROWÀÇ Àüü Ä÷³ÀÇ ±æÀÌ(COMBINED COLUMN LENGTH)¸¦ °è»ê
STEP 4 - ÃÑ Æò±Õ ROW Å©±â¸¦ °è»ê
STEP 5 - µ¥ÀÌŸ ºí·°³»ÀÇ Æò±Õ ROW ¼ö¸¦ °è»ê
STEP 6 - Å×ÀÌºí¿¡¼­ ¿ä±¸µÇ´Â ºí·°°ú ¹ÙÀÌÆ® ¼ö¸¦ °è»ê


1. [ STEP 1 ] : ÃÑ ºí·° Çìµå Å©±â(TOTAL BLOCK HEADER SIZE)¸¦ °è»ê

1) total block header 

    total block header = block header, part A +
                        block header, part B
    
    block header, part A = (fixed header + variable transaction header) 
    block header, part B = (table directory + row directory)
  
    ** fixed header          : 57 bytes (°íÁ¤µÈ ºí·° Çìµå)
      variable transaction  : 23 * I
      header                ( I´Â ÇØ´ç TABLEÀÇ INITRANSÀÇ °ª)

      table directory        : 4
      row directory          : 2 * R
                              ( RÀº ºí·°ÀÇ ROW ¼ö, STEP 5¿¡¼­ °è»ê)

2) ¿¹¸¦ µé¾î, INITRANS = 1À϶§ °æ¿ìÀÇ total block header
    total block header = (57 + (23*1)) + (4 + (2*R))
                      = 80 + (4 + (2*R)) bytes

2. [ STEP 2 ] : µ¥ÀÌŸ ºí·° ´ç »ç¿ë °¡´ÉÇÑ µ¥ÀÌŸ ¿µ¿ª
                (DATA SPACE PER DATA BLOCK)À» °è»ê

  1) available data space

    available data space = (block size - total block header) -
                          ((block size - block header, part A) *
                            (PCTFREE/100))
    
    ** block size  :  µ¥ÀÌŸº£À̽ºÀÇ ºí·° Å©±â
                      (SQL*DBAÀÇ SHOW PARAMETER¿¡¼­ 
                      db_block_size¸¦ È®ÀÎ)
      
2) ¿¹¸¦ µé¾î, db_block_size=2K, PCTFREE=10 ÀÏ °æ¿ì
    available data space = (2048 - (80 + (4 + 2R)) -
                          ((2048 - 80) * (10 / 100))
                        = (1964 - 2R) - (1968 * 0.1)
                        = (1964 - 2R - 196)
                        = (1768 - 2R) bytes

3. [ STEP 3 ] : Æò±Õ ROWÀÇ Àüü Ä÷³ÀÇ ±æÀÌ
                (COMBINED COLUMN LENGTH)¸¦ °è»ê

    ROW ±æÀ̸¦ °è»êÇϱâ À§ÇÏ¿© TABLE Á¤ÀÇ¿¡¼­ Ä÷³ ¼ö, °¢ Ä÷³ÀÇ µ¥ÀÌŸ 
  ŸÀÔ, °¡º¯ ±æÀÌ Ä÷³ÀÇ Æò±Õ Å©±âµîÀ» ÂüÁ¶ÇÑ´Ù.

1) D (data space/average row) : table T °¡ ´ÙÀ½ÀÇ ½ºÅ°¸¶·Î Á¤ÀǵǾî 
                                ÀÖÀ» °æ¿ìÀÇ ROWÀÇ Æò±Õ ±æÀÌ
    - create table T ( A char(10), B date, C number(10,2))

  
    D (data space/average row) = ( A + B + C ) 
  

  ** A(Ä÷³ AÀÇ ±æÀÌ) : 10 bytes -----> CHAR ŸÀÔÀÎ °æ¿ì fixed length
      B(    BÀÇ ±æÀÌ) :  7 bytes -----> DATE ŸÀÔÀÎ °æ¿ì 
      C(    CÀÇ ±æÀÌ) :  5 bytes = (P / 2) + 1 
                                  -----> NUMBER ŸÀÔÀÎ °æ¿ì¿¡´Â
                                        PRECISIONÀ» °í·ÁÇؼ­ °è»êµÊ
                                        (´Ü, PRECISION¿¡¼­ NUMBERÀÇ ±æ 
                                        À̸¦ ³ªÅ¸³»¹Ç·Î SCALEÀº ¹«°üÇÔ)
  
4. [ STEP 4 ] : ÃÑ Æò±Õ ROW Å©±â¸¦ °è»ê(TOTAL AVERAGE ROW SIZE) 
                    
  ¿©±â¼­´Â Å×À̺íÀÇ ROW¿¡ ÀÇÇØ ¿ä±¸µÇ´Â ÃÖ¼Ò »ç¿ë ¿µ¿ªÀ» °è»êÇÏ´Â °ø½ÄÀ» 
  Á¦°øÇÑ´Ù.

1) bytes/row 

      bytes/row = row header + F + V + D

    
  ** row header : ROW ´ç 3 bytes ( NON-CLUSTERED TABLE)
    F          : 250 bytes ÀÌÇϸ¦ »ç¿ëÇÏ´Â Ä÷³ÀÇ TOTAL LENGTH BYTES
                ( °¢ Ä÷³ ´ç 1 bytes )
    V          : 250 bytes ÀÌ»óÀ» »ç¿ëÇÏ´Â Ä÷³ÀÇ TOTAL LENGTH BYTES
                ( °¢ Ä÷³ ´ç 3 bytes )
    D          : [STEP 3]ÀÇ D (data space/average row)

2) ¿¹¸¦ µé¾î, [STEP 3]ÀÇ Å×À̺í T ÀÇ TOATL AVERAGE ROW SIZE
  - 250 byte ÀÌÇÏÀÇ Ä÷³ ¼ö    = 3
    250 byte ÀÌ»óÀÇ Ä÷³ ¼ö    = 0
    D (data space/average row) = 22 ÀÎ °æ¿ì
  - avg. row size, table T = ( 3 + (1 * 3) + (3 * 0) + 22)
                            = 28 bytes
  
5. [ STEP 5 ] : µ¥ÀÌŸ ºí·°³»ÀÇ Æò±Õ ROW ¼ö(AVERAGE ROWS PER BLOCK)¸¦  °è»ê
                              
  
1) R (avg. # of rows/block) 

    R (avg. # of rows/block) = available space / average row size

  
    ** available space  : [STEP 2]ÀÇ available data space
      average row size : [STEP 4]ÀÇ bytes/row    

2) ¿¹¸¦ µé¾î, [STEP 2]ÀÇ available space°¡ (1768 - 2R) bytesÀÌ°í,
    [STEP 4]ÀÇ Å×À̺í TÀÇ bytes/row°¡ 28bytesÀÏ °æ¿ì

    -    R = (1768 - 2R)bytes / 28bytes
      28R = 1768 - 2R
      30R = 1768
        R = 58 rows/block

6. [ STEP 6 ] : Å×ÀÌºí¿¡¼­ ¿ä±¸µÇ´Â ºí·°°ú ¹ÙÀÌÆ® ¼ö¸¦ °è»ê
                (NUMBER OF BLOCKS AND BYTES)

1) # blocks for table°ú # bytes for table  


    # blocks for table = # rows  /  R


    ** # rows  : TABLEÀÇ ROW ¼ö
      R      : [STEP 5]ÀÇ R rows/block


    # bytes for table = # blocks for table  *  2048 bytes/block


    ** 2048 bytes/block : µ¥ÀÌŸº£À̽ºÀÇ ºí·° Å©±â (db_block_size)  


2) ¿¹¸¦ µé¾î, Å×À̺í T°¡ 10000°³ÀÇ rowsÀ» °¡Áú °æ¿ìÀÇ 
    Å×ÀÌºí ´ç ºí·° ¼ö 
  
  - # blocks for table T = 10000 rows  /  58 rows/block
                        = 173 blocks

  - # bytes for table T  = 173 blocks  *  2048 bytes/block
                        = 354304 bytes
                        = 346 Kbytes

Oracle Korea Customer Support Technical Bulletins¸¦ ÂüÁ¶Çß½À´Ï´Ù.
advance´ÔÀÌ 2001-12-08 01:23:57¿¡ ÀÛ¼ºÇÑ ´ñ±ÛÀÔ´Ï´Ù.

À妽º »çÀÌÁî ±¸ÇÏ´Â ¹æ¹ý

 

À妽º SIZE¸¦ °è»êÇÏ´Â °ø½ÄÀÔ´Ï´Ù.

 

SELECT GREATEST(4, (1.01) * ((ROW_COUNT /

((floor(((2048 - 113 - (initrans * 23)) *

(1 - (PCT_FREE/100))) /

((10 + uniqueness) + number_col_index +

(total_col_length)))))) *2))

IndexSize_Kbytes

FROM dual;

 

ÇÑ°³ÀÇ BLOCK¿¡ Available ÇÑ Bytes ( 1935 or 2048 - 113 )

°¢ initrans ´Â 23 Bytes

ROW_COUNT : table ÀÇ row ÀÇ °¹¼ö

PCT_FREE : Index ÀÇ pctfree °ª(default 10)

number_col_index : Index ¿¡¼­ column ÀÇ ¼ö

total_col_length : Index ÀÇ ±æÀÌ ÃßÁ¤Ä¡

uniqueness : ¸¸ÀÏ unique index ¸é 1, non-unique index ¸é 0

 

initrans = 1,PCT_FREE = 10À¸·Î³õ°í °è»êÇغ¸´Ï 310MÁ¤µµ ³ª¿É´Ï´Ù.

 

from en-core.com

advance´ÔÀÌ 2001-12-13 08:26:45¿¡ ÀÛ¼ºÇÑ ´ñ±ÛÀÔ´Ï´Ù.

ƯÁ¤ Å×À̺íÀÌ Â÷ÁöÇÏ´Â Å©±â ¾Ë±â

 

ANALYZE TABLE <table_name> ESTIMATE STATISTICS ¶ó´Â°É »ç¿ëÇؼ­ Å×À̺í Åë°è¸¦ ±¸Çϸé, ´ÙÀ½°ú °°ÀÌÇؼ­ blocks¿Í empty_blocks¸¦ º¼ ¼ö Àִµ¥, ÀÌ ¶§ ±¸ÇØÁö´Âµ¥ ÀÌ ºí·°¼ö¿¡ DB_BLOCK_SIZE ¸¦ °öÇÏ¸é °ÅÀÇ Á¤È®ÇÑ »çÀÌÁî°¡ ±¸ÇØÁöÁÒ. (byte´ÜÀ§)

 

SELECT blocks, empty_blocks FROM user_tables WHERE table_name = <table_name>

 

 

¾Æ´Ï¸é, ½ÇÁ¦ ¹°¸®ÀûÀ¸·Î Á¡À¯ÇÏ°í ÀÖ´Â Å©±â·Î ¾Ë°í ½ÍÀ¸½Ã¸é dba_segments¶ó´Â ºä¸¦ º¸½Ã¸é µÇ´Âµ¥, ÀÌ´Â À̸§ ±×´ë·Î dba±ÇÇÑÀÌ ÀÖ¾î¾ß Çϱ¸¿ä.

dba_segmentsºä¿¡¼­ segment_nameÀ» tableÀ̸§À¸·Î Áּż­

SELECT segment_name, bytes, blocks, extent FROM dba_segments WHERE segment_name = <table_name> ·Î º¸½Ã¸é µË´Ï´Ù.

 

 

dba_segmentÀÇ blocks´Â user_tables ¿¡¼­ ±¸ÇÑ blocks + empty_blocks°¡

µÇ±¸¿ä.

½ÇÁ¦·Î, Å×À̺íÀº extent´ÜÀ§·Î È®ÀåµÇ±â ¶§¹®¿¡ ÇöÀç Á¡À¯ÇÏ°í ÀÖ´Â ¹°¸®ÀûÀÎ Å©±â´Â dba_segment°¡ ¸Â±¸¿ä. ÃÖÀûÀÇ extent¸¦ ±¸¼ºÇϱâ À§Çؼ­´Â user_tablesÀÇ blocks·Î °í·ÁÇؾ߰ÚÁÒ.

 

from oracle forum



¸ñ·Ï

ºÐ·ù ¼±ÅÃ
54 Áú¹® Á¶¾ðÀ» ºÎŹµå¸³µð´Ï´Ù. ³ªÁß¿¬ 06-07-26 2858
1 ÀÏ¹Ý TEST (1) È£¼® 05-06-11 3420
  ÀÏ¹Ý    TEST È£¼® 05-06-13 3426
2 ÀÏ¹Ý RAISE_APPLICATION_ERROR È£¼® 05-06-20 4695
3 ÀÏ¹Ý ¹é¾÷À» À§ÇÑ Ç¥ÁØ ½ºÅ©¸³Æ®ÀÇ ÀÛ¼º È£¼® 05-07-06 3836
4 ÀÏ¹Ý ORA-01034: ORA-27101: ¿¡·¯¹ß»ýÀº ÁÖ·Î SID ¹®Á¦ È£¼® 05-07-06 7403
ÀÏ¹Ý ¿ë·®°è»ê Å×À̺í À妽º, µ¥ÀÌºí ±âŸ È£¼® 05-07-06 6056
6 ÀÏ¹Ý SGA TUNING SCRIPT È£¼® 05-07-22 3430
13 ÀÏ¹Ý    Æ®¸®°Å È°¼ºÈ­ ½ÃÅ°´Â ÇÁ·Î½ÃÁ® È£¼® 05-11-02 3963
24 ÀÏ¹Ý [¿À¶óŬƩ´×] Æ©´×Á¤¸®( ÀÌÈ£Çö ) È£¼® 05-11-02 4407
25 ÀÏ¹Ý PHP¿Í ¿À¶óŬÀÇ ÃÖÀûÈ­ ÇÁ·Î±×·¡¹Ö È£¼® 05-11-04 5855
26 ÀÏ¹Ý [¿À¶óŬƩ´×] shared_pool_size sga ¿µ¿ªÀÇ ¼öÁ¤ È£¼® 05-11-08 5158
27 ÀÏ¹Ý ¿À¶óŬ¿¡¼­ MS SQL Server 2000 Á¢¼Ó¹æ¹ýÀÔ´Ï´Ù. È£¼® 05-11-09 5508
  ÀÏ¹Ý    ¿À¶óŬ¿¡¼­ MS SQL Server 2000 Á¢¼Ó¹æ¹ýÀÔ´Ï´Ù. È£¼® 05-11-09 4671
28 ÀÏ¹Ý freetds ¼³Ä¡ È£¼® 05-11-10 3808
1 [2] [3] [4] [5] [6] [7] [8] [9] [10]  ´ÙÀ½¸Ç³¡

 
Copyright © zenos.pe.kr. All rights reserved.