Thứ Ba, 5 tháng 8, 2025

Extent gồm bao nhiêu block và 1 segment gồm bao nhiêu extent

🧠 I. Extent là gì (nhắc lại nhẹ nhàng)?

  • Extent = một cụm block liên tiếp trong datafile.

  • Dùng để chứa dữ liệu của một segment (bảng, index...).

  • Khi segment cần thêm chỗ chứa dữ liệu, Oracle cấp thêm extent mới.

📏 II. Thông thường 1 extent gồm bao nhiêu block?

✅ Không có con số cố định, nhưng có nguyên tắc như sau:

1. Phụ thuộc vào tablespace

  • Uniform size: Tất cả extent trong tablespace này có cùng kích thước cố định.

sql
CREATE TABLESPACE tbs_uniform DATAFILE 'tbs_uniform01.dbf' SIZE 100M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1M;

→ Khi đó:

  • Nếu block size là 8KB

  • 1 extent = 1MB = 128 blocks

2. Autoallocate (Oracle tự điều chỉnh)

sql
CREATE TABLESPACE tbs_auto DATAFILE 'tbs_auto01.dbf' SIZE 100M EXTENT MANAGEMENT LOCAL AUTOALLOCATE;

→ Oracle cấp extent theo bậc thang tùy theo mức độ lớn của segment:

Mức độKích thước extent
Nhỏ64KB (≈ 8 blocks nếu block size 8KB)
Trung bình1MB
Lớn8MB
Rất lớn64MB

📘 Theo Oracle Docs, khi dùng AUTOALLOCATE, Oracle bắt đầu với extent nhỏ, rồi tăng dần để tối ưu I/O và quản lý space.


📦 III. Vậy 1 Segment có bao nhiêu extent?

Câu trả lời là:

Không giới hạn rõ ràng, Oracle cấp dần dần, khi nào cần thêm thì cấp extent mới.

Tuy nhiên:

  • Trong thực tế, một bảng có thể có hàng ngàn, hàng chục ngàn extent.

  • Từ Oracle 10g trở đi, Oracle tự động quản lý tốt nên không cần quá lo về số lượng extent.

📌 Dù vậy, quá nhiều extent nhỏ có thể gây:

  • Quản lý metadata phức tạp

  • Làm chậm query nếu dùng MSSM


🧪 Ví dụ minh họa dễ hiểu:

  • Bạn tạo bảng big_sales_data trên tablespace tbs_auto

  • Mỗi lần bảng lớn hơn → Oracle tự cấp extent mới như sau:

text
Segment: big_sales_data ├── Extent 1: 64KB (8 blocks) ├── Extent 2: 1MB (128 blocks) ├── Extent 3: 1MB ├── Extent 4: 8MB (1024 blocks) ...

→ Số block trong mỗi extent khác nhau → tùy Oracle quản lý nếu bạn dùng AUTOALLOCATE.


🛠 Kiểm tra số extent và block trong 1 segment:

sql
-- Xem số extent và block trong bảng SELECT segment_name, COUNT(*) AS num_extents, SUM(blocks) AS total_blocks FROM dba_extents WHERE segment_name = 'YOUR_TABLE_NAME' GROUP BY segment_name;

✅ Kết luận dễ nhớ:

Câu hỏiTrả lời dễ hiểu
1 extent = bao nhiêu block?Tùy cấu hình: có thể 8, 128, 1024... block
1 segment có bao nhiêu extent?Cấp bao nhiêu tùy theo dữ liệu – có thể hàng ngàn
Có giới hạn không?Không đáng lo – Oracle tự quản lý tốt từ 10g+
Khi nào nên quan tâm?Khi bị phân mảnh, hiệu năng giảm, hoặc quản lý metadata lớn
=============================
Website không chứa bất kỳ quảng cáo nào, mọi đóng góp để duy trì phát triển cho website (donation) xin vui lòng gửi về STK 90.2142.8888 - Ngân hàng Vietcombank Thăng Long - TRAN VAN BINH
=============================
Nếu bạn không muốn bị AI thay thế và tiết kiệm 3-5 NĂM trên con đường trở thành DBA chuyên nghiệp hay làm chủ Database thì hãy đăng ký ngay KHOÁ HỌC ORACLE DATABASE A-Z ENTERPRISE, được Coaching trực tiếp từ tôi với toàn bộ bí kíp thực chiến, thủ tục, quy trình của gần 20 năm kinh nghiệm (mà bạn sẽ KHÔNG THỂ tìm kiếm trên Internet/Google) từ đó giúp bạn dễ dàng quản trị mọi hệ thống Core tại Việt Nam và trên thế giới, đỗ OCP.
- CÁCH ĐĂNG KÝ: Gõ (.) hoặc để lại số điện thoại hoặc inbox https://m.me/tranvanbinh.vn hoặc Hotline/Zalo 090.29.12.888
- Chi tiết tham khảo:
https://bit.ly/oaz_w
=============================
2 khóa học online qua video giúp bạn nhanh chóng có những kiến thức nền tảng về Linux, Oracle, học mọi nơi, chỉ cần có Internet/4G:
- Oracle cơ bản: https://bit.ly/admin_1200
- Linux: https://bit.ly/linux_1200
=============================
KẾT NỐI VỚI CHUYÊN GIA TRẦN VĂN BÌNH:
📧 Mail: binhoracle@gmail.com
☎️ Mobile/Zalo: 0902912888
👨 Facebook: https://www.facebook.com/BinhOracleMaster
👨 Inbox Messenger: https://m.me/101036604657441 (profile)
👨 Fanpage: https://www.facebook.com/tranvanbinh.vn
👨 Inbox Fanpage: https://m.me/tranvanbinh.vn
👨👩 Group FB: https://www.facebook.com/groups/DBAVietNam
👨 Website: https://www.tranvanbinh.vn
👨 Blogger: https://tranvanbinhmaster.blogspot.com
🎬 Youtube: https://www.youtube.com/@binhguru
👨 Tiktok: https://www.tiktok.com/@binhguru
👨 Linkin: https://www.linkedin.com/in/binhoracle
👨 Twitter: https://twitter.com/binhguru
👨 Podcast: https://www.podbean.com/pu/pbblog-eskre-5f82d6
👨 Địa chỉ: Tòa nhà Sun Square - 21 Lê Đức Thọ - Phường Mỹ Đình 1 - Quận Nam Từ Liêm - TP.Hà Nội

=============================
AI, trí tuệ nhân tạo, artificial intelligence, machine learning, deep learning, LLM, ChatGPT, DeepSeek, Grok, oracle tutorial, học oracle database, Tự học Oracle, Tài liệu Oracle 12c tiếng Việt, Hướng dẫn sử dụng Oracle Database, Oracle SQL cơ bản, Oracle SQL là gì, Khóa học Oracle Hà Nội, Học chứng chỉ Oracle ở đầu, Khóa học Oracle online,sql tutorial, khóa học pl/sql tutorial, học dba, học dba ở việt nam, khóa học dba, khóa học dba sql, tài liệu học dba oracle, Khóa học Oracle online, học oracle sql, học oracle ở đâu tphcm, học oracle bắt đầu từ đâu, học oracle ở hà nội, oracle database tutorial, oracle database 12c, oracle database là gì, oracle database 11g, oracle download, oracle database 19c, oracle dba tutorial, oracle tunning, sql tunning , oracle 12c, oracle multitenant, Container Databases (CDB), Pluggable Databases (PDB), oracle cloud, oracle security, oracle fga, audit_trail,oracle RAC, ASM, oracle dataguard, oracle goldengate, mview, oracle exadata, oracle oca, oracle ocp, oracle ocm , oracle weblogic, postgresql tutorial, mysql tutorial, mariadb tutorial, ms sql server tutorial, nosql, mongodb tutorial, oci, cloud, middleware tutorial, hoc solaris tutorial, hoc linux tutorial, hoc aix tutorial, unix tutorial, securecrt, xshell, mobaxterm, putty

ĐỌC NHIỀU

Trần Văn Bình - Oracle Database Master