1. Giới thiệu

Để chuyển đổi 1 bảng bình thường (non-partition) sang bảng partition, chúng ta có thể có nhiều cách.

Trong bài viết này tôi sẽ hướng dẫn các bạn sử dụng phương pháp EXCHANGE để thực hiện partition bảng nhé.

Nhân tiện, liên quan đến chủ đề partitioned table, nếu bạn chưa biết nó là gì, có thể tham khảo bài viết sau của tôi:

Đọc thêm  Kiến thức cơ bản về partition table
Đọc thêm  Chuyển bảng non-partition thành bảng partition bằng dbms_redefinition

2. Hướng dẫn partition bảng bằng EXCHANGE

1. Tạo bảng test:

Tạo bảng INVOICES là bảng non-partition. Giả sử đây là bảng chúng ta cần partitioning:

Thêm 1 chút dữ liệu để test

partition table 1

Đây là 1 bảng non-partition, mục tiêu của chúng ta là chia bảng ra thành partition dựa trên partition key là INVOICE_DATE.

VD: invoices_q1 tương ứng với các dòng dữ liệu có INVOICE_DATE là giá trị thời gian thuộc Quý 1. Tương tự như vậy với các partition invoices_q2, invoices_q3, invoices_q4.

2. Tạo bảng partition

Bước tiếp theo, chúng ta tạo 1 bảng khác với các cột giống hệt bảng INVOICES, nhưng đã có sẵn 1 partition

3. Thực hiện EXCHANGE table

Tiếp theo, chúng ta thực hiện lệnh sau:

Giải thích:
  • Câu lệnh này sẽ tráo đổi metadata, biến segment chứa dữ liệu tương ứng với bảng INVOICES trở thành segment của partition invoices_q4 của bảng INVOICES_P.
  • Quá trình này chỉ thực hiện ở cấp độ metadata, nên rất nhanh.

4. Kiểm tra lại kết quả:

partition table 2

5. Thực hiện SPLIT PARTITION

Tiếp theo, chúng ta sẽ dùng các câu lệnh sau để chia partition invoices_q4 của bảng INVOICES thành các partition nhỏ hơn:

6. Đổi tên bảng

Như vậy tôi đã partition bảng này thành công, việc cuối cùng là đổi tên bảng INVOICES_P thành INVOICES

7. Kiểm tra lại kết quả

Bạn kiểm tra lại kết quả cuối cùng bằng câu lệnh sau:

Kết quả như sau:

partition table 3

Hẹn gặp lại các bạn vào các bài viết tiếp theo.

Nguồn: https://dangxuanduy.com/

Hiện tại, tôi có tổ chức đều đặn các khóa học về quản trị Oracle Database, tôi sẽ để thông tin ở đây, để bạn nào quan tâm về lịch học cũng như chương trình học có thể theo dõi nhé.

KHOÁ DÀNH CHO NGƯỜI MỚI

KHÓA HỌC: QUẢN TRỊ ORACLE DATABASE THẬT LÀ ĐƠN GIẢN (ADMIN 1)

CÁC KHOÁ NÂNG CAO:

KHÓA HỌC ORACLE NÂNG CAO: QUẢN TRỊ KIẾN TRÚC MULTITENANT 12c

KHÓA HỌC ORACLE NÂNG CAO: QUẢN TRỊ HỆ THỐNG DATA GUARD

CÁC KHOÁ COMBO:

COMBO 1: ADMIN 1 + MULTITENANT 12c

COMBO 2: ADMIN 1 + DATA GUARD

COMBO 3: ADMIN 1 + MULTITENANT 12c + DATA GUARD

LỊCH HỌC:

Mời bạn xem tại đây: LỊCH HỌC CÁC LỚP ORACLE 

ĐĂNG KÝ:

https://forms.gle/MtCAoRQFenP886y79

Hãy tham gia group “Kho tài liệu kiến thức database” để cùng học hỏi và chia sẻ nhé.

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *