หน้าแรก www.oracleskill.com ข่าวความเคลื่อนไหว oracle และ oracleskill.com ความรู้ เทคนิค oracle บทความ oracle คัดสรรจากต่างประเทศ คอร์สเรียน Oracleและ บริการ ประวัติ ความเป็นมา เพิ่มพูนทักษะในการหางาน IT Oracle Webboard แลกเปลี่ยนความรู้  
 
 

 

Google
 
 

ความแตกต่างของ AUTOALLOCATE กับ UNIFORM extent allocation

(Oracle extent allocation: AUTOALLOCATE vs. UNIFORM)

 
 
 

ตั้งแต่ Oracle 9i  เป็นต้นมา DBA สามารถสร้าง tablespace แบบ locally managed ได้  ซึ่ง Locally Managed tablespace  นี้ มีความสามารถ จัดการ free extent ของตัวเองได้ โดยเก็บเป็น bitmap block เอาไว้ภายใน header ของ data files ไฟล์แรก ที่สังกัด tablespace ของมัน  ซึ่งใน bitmap block นั้น แต่ละ bit จะไป map กับ free block  แต่ะละอัน ใน tablespace

 
 

เมื่อสร้าง locally managed tablespace  เราสามารถเลือกวิธี allocated extenet ได้ ดังนี้

 
 

AUTOALLOCATE

 
 

Oracle เป็นตัวจัดการขนาดของ extent ให้  oracle จะเลือก ขนาดถัดไปแบบ optimal เริ่มจาก 64 KB   และเมื่อ segment มีขนาดโตขึ้น จนต้องการ extent เพิ่ม  oracle จะ allocate  extent ถัดไป ใหญ่ขึ้น  ใหญ่ขึ้น .. จนมีขนาด ตั้งแต่ช่วง  1MB จนถึง 64 MB   การ allocate แบบนี้ช่วยประหยัดพื้นที่ว่าง แต่ทำให้เกิด fragmentation     วิธี allocate แบบ auto นี้ เหมาะสำหรับ ตารางขนาดเล็ก หรือ ระบบที่ไม่ต้องการมาจัดการมากนัก

 
 

UNIFORM

 
 

การขยายขนาด จะจองพื้นที่ extent ถัดไป ให้มีขนาดเท่าๆกันตลอด  ซึ่งขนาดของ extent ถัดไป จะกำหนดให้เป็นหน่วย MB หรือ KB ก็ได้  โดยทั่วไปแล้ว UNIFORM extent allocation มีขนาด 1MB เป็น default     การใช้ uniform extent จะช่วยลด fragmentation จึงทำให้ performance โดยรวมดีขึ้น

 
     
 
 

เราสามารถสร้าง tablespace ที่เป็น locally managed  และ การมี allocate extent แบบ AUTOALLOCATE หรือ UNIFORM ได้ทั้งแบบ command-line หรือใช้ Enterprise Manager Database Control

 
 

สร้างแบบ Command-Line

 
 
SQL> CREATE TABLESPACE oracleskill_tbs  
     DATAFILE '/u01/oradata/oracleskill_tbs01.dbf' SIZE 50M
     EXTENT MANAGEMENT LOCAL AUTOALLOCATE;                         
 
 
SQL> CREATE TABLESPACE oracleskill_tbs  
     DATAFILE '/u01/oradata/oracleskill_tbs01.dbf' SIZE 50M
     EXTENT MANAGEMENT LOCAL UNIFORM SIZE 512K;
 
 

สร้างแบบใช้ Enterprise Manager Database Control

 
 

แท็บ General เลือก Extent Management แบบ Locally Managed

 
  สร้าง tablespace  extent management แบบ Locally Managed  
 

แท็บ Storage  เลือก Extent Allocation แบบ Automatic หรือ Uniform

 
  เลือก Extent Allocation แบบ Automatic หรือ Uniform  
 

คำแนะนำ

 
 

ให้ใช้ UNIFORM  size tablespaces   กับ ตารางที่มีขนาดใหญ่  และ ใช้ AUTOALLOCATE size tablespaces กับ ตารางที่มีขนาดเล็ก หรือ ตาราง ที่อยู่ในระบบที่ไม่ต้องมีการจัดการมากนัก

 
  RELATE LINK :  
  Create Tablespaces with Oracle Enterprise Manager 10g Database Control
Modify Tablespaces with Oracle Enterprise Manager 10g Database Control
Delete Tablespaces with Oracle Enterprise Manager 10g Database Control
 
     
 

 

 

พบปัญหา website , link เสีย ,แลก link,แสดงความเห็น หรือ ติดต่อเป็นสปอนเซอร์สนับสนุน
email : webmaster@oracleskill.com
 
All Rights Reserved 2007. http://www.oracleskill.com.