วันอาทิตย์ที่ 26 กรกฎาคม พ.ศ. 2552

Oracle Database Newbie: Overview โครงสร้าง Logical


โครงสร้าง Logical นั้นประกอบไปด้วย data blocks, extents, segments, and tablespaces.

Oracle Database Data Blocks

ขนาดเล็กที่สุดคงไม่พ้น Oracle database data block, ข้อมูลของ oracle database จะเก็บใน “data blocks”, 1 data block นั้นจะสอดคล้อง กับจำนวน byte ของขนาด physical database บน disk. ขนาดของ data block นั้นจะถูกกำหนดด้วยค่า “DB_BLOCK_SIZE” initialization parameter. อย่างไรก็ตามเรายังสามารถกำหนด block size อื่นๆ ได้อีก 4 block sizes

SQL> show parameter k_cache_size

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_16k_cache_size big integer 0
db_2k_cache_size big integer 0
db_32k_cache_size big integer 0
db_4k_cache_size big integer 0
db_8k_cache_size big integer 0

ถ้าเรากำหนด DB_BLOCK_SIZE เป็น 8K ดังนั้น “db_8k_cache_size” จะไม่ถูกสนใจ (ignore) เมื่อเราต้องการ block size อื่นๆ อีก

Extents

ในลำดับต่อมาของ logical database คือ “extent” ซึ่งเป็นตัวกำหนดจำนวนของ data blockน็ปั

Segments

ในระดับที่สูงมาอีกของ extents ในส่วน logical คือ “segment” ซึ่งมองได้ว่าเป็นเซตของ extents โดยถูกจัดสร สำหรับ table, index rollback segment หรือ temporary. extents ทั้งหมดเป็นส่วนหนึ่งของ segment ซึ่งอยู่บน tablespace เดียวกัน แต่อาจอยู่บน data files ที่ต่างกัน

เมื่อ extents ของ segment เต็ม Oracle database จะจัดสรร extent ที่อื่น สำหรับ segment นั้น. extent จะถูกจะสรรรตามที่จำเป็น ดังนั้น extent ของ segment อาจอยู่ชิดกันหรือไม่ชิดกันก็ได้

Tablespaces

database ถูกแบ่งในส่วน logical เรียกว่า tablespaces ซึ่งกลุ่มนี้จะเกี่ยวข้องกับ data blocks, extents และ segments

ทุก oracle database ต้องมี SYSTEM tablespace และ SYSAUX tablespace ซึ่งถูกสร้าง auto เมื่อ database ถูกสร้าง

tablespaces ถูกสร้างเป็น “smallfile tablespace” หรือ “bigfile tablespace” แต่ถ้าไม่กำหนดจะเป็น smallfile tablespace

ไม่มีความคิดเห็น: