Mục đích:
Khi nào cần tạo partition cho index?
Lựa chọn kiểu partition index nào?
Khi quyết định loại partition index nào sẽ sử dụng, bạn nên xem xét các nguyên tắc sau theo thứ tự này:
Nếu cột partition key được sử dụng là 1 trong các điều kiện WHERE của DML/DDL, thì hãy sử dụng local index. Nếu đúng như vậy thì bạn đã xong. Nếu không đúng như vậy, hãy tiếp tục hướng dẫn 2.
Nếu là unique index và không bao gồm các cột partition key, thì hãy sử dụng global index. Nếu đúng như vậy thì bạn đã xong. Nếu không, hãy tiếp tục hướng dẫn 3.
Nếu ưu tiên của bạn là khả năng quản lý, thì hãy xem xét dùng local index. Nếu đúng như vậy thì bạn đã xong. Nếu không đúng như vậy, hãy tiếp tục hướng dẫn 4.
Nếu ứng dụng là loại OLTP và người dùng cần thời gian phản hồi nhanh thì hãy sử dụng global index. Nếu ứng dụng là loại DSS và người dùng quan tâm hơn đến dung lượng sử dụng (quét nhiều dữ liệu), thì hãy sử dụng local index.
LOCAL PARTITION INDEX
Local partition index dễ quản lý hơn global partition index. Chúng cũng cung cấp tính khả dụng cao hơn và phổ biến trong môi trường DSS. Lý do cho điều này là phân vùng trang bị: mỗi partition của local index được liên kết với chính xác một partition của bảng. Chức năng này cho phép Oracle tự động giữ các index partition được đồng bộ hóa với các table partition và làm cho mỗi cặp table-index trở nên độc lập. Bất kỳ hành động nào làm cho dữ liệu của một partitioin không hợp lệ (invalid) hoặc không có sẵn chỉ ảnh hưởng đến một phân vùng duy nhất.
Các local partition index hỗ trợ tính khả dụng (availability) hơn khi có các hoạt động bảo trì partition hoặc subpartition trên bảng. Khi thêm mới, drop, merge, split, hash partition hay subpartition được thêm mới thì index partition sẽ được tự động tạo theo.
Bạn không thể thêm partition vào local index. Thay vào đó, các partition mới chỉ được thêm vào local index khi bạn thêm partition vào bảng bên dưới. Tương tự như vậy, bạn không thể drop một partition khỏi một local index. Thay vào đó, các partition của local index chỉ bị drop khi bạn drop partition từ bảng.
Local index có thể là duy nhất. Tuy nhiên, để 1 local index là duy nhất, partition key của bảng là một phần trong các cột đánh index.
Đây cũng là kiểu index mà tôi thường sử dụng nếu không muốn nói là 100% cho các bảng đánh partition và rất hiệu quả với những ứng dụng Core, online 24/7, phức tạp "bậc nhất" ở VN mà tôi đang quản trị.
Ví dụ:
1 bảng app_owner.tab1 partition theo trường start_datetime
câu lệnh SQL hay sử dụng là select * from app_owner.tab1 where start_datetime >= sysdate-1 and start_datetime <sysdate and sub_id=:a1;
Khi đó ta tạo local index như sau:
create index app_owner.tab1_ind1 on app_owner.tab1(sub_id) tablespace INDX local online;
(Có thể dùng câu lệnh sau nếu dữ liệu lớn:
create index app_owner.tab1_ind1 on app_owner.tab1(sub_id) tablespace INDX nologging local parallel 8 online;
alter index app_owner.tab1_ind1 noparallel;)
Global Partitioned Indexes
Global Range Partitioned Indexes
Global Hash Partitioned Indexes
Bảo trì Global Partitioned Indexes
- Index vẫn avaiable và online trong suốt quá trình hoạt động. Do đó không có ứng dụng nào khác bị ảnh hưởng bởi thao tác này.
- Index không phải rebuild sau các hoạt động trên
- Việc duy trì global index cho DROP và TRUNCATE được thực hiện dưới dạng metadata.
Global Nonpartitioned Indexes
câu lệnh SQL hay sử dụng là select * from app_owner.tab1 where start_datetime >= sysdate-1 and start_datetime <sysdate and sub_id=:a1;
Khi đó ta tạo Global nonpartitioned index như sau:
create index app_owner.tab1_ind1 on app_owner.tab1(sub_id) tablespace INDX online;
(Có thể dùng câu lệnh sau nếu dữ liệu lớn:
create index app_owner.tab1_ind1 on app_owner.tab1(sub_id) tablespace INDX nologging parallel 8 online;
alter index app_owner.tab1_ind1 noparallel;)
Tham khảo thêm tài liệu chuẩn của Oracle: https://docs.oracle.com/database/121/VLDBG/toc.htm
* KHOÁ HỌC ORACLE DATABASE A-Z ENTERPRISE trực tiếp từ tôi giúp bạn bước đầu trở thành những chuyên gia DBA, đủ kinh nghiệm đi thi chứng chỉ OA/OCP, đặc biệt là rất nhiều kinh nghiệm, bí kíp thực chiến trên các hệ thống Core tại VN chỉ sau 1 khoá học.
* 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
=============================
KẾT NỐI VỚI CHUYÊN GIA TRẦN VĂN BÌNH:
📧 Mail: binhoracle@gmail.com
☎️ Mobile: 0902912888
⚡️ Skype: tranbinh48ca
👨 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: http://bit.ly/ytb_binhoraclemaster
👨 Tiktok: https://www.tiktok.com/@binhoraclemaster?lang=vi
👨 Linkin: https://www.linkedin.com/in/binhoracle
👨 Twitter: https://twitter.com/binhoracle
👨 Đị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
=============================
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,khóa học pl/sql, 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 dataguard, oracle goldengate, mview, oracle exadata, oracle oca, oracle ocp, oracle ocm , oracle weblogic, middleware, hoc solaris, hoc linux, hoc aix, unix, securecrt, xshell, mobaxterm, putty