Thứ Tư, 2 tháng 3, 2022

File tham số khởi tạo PFILE và SPFILE

Giới thiệu bài viết:

Bài viết về PFILEs và SPFILEs là một trong những bài viết được nhiều người quan tâm

Sửa bài viết

Mệnh đề Query trong Oracle Datapump Expdp

Mục đích: Export với datapump bảng emp_tab WHERE created > sysdate -40 .

Sửa bài viết

Sinh 1 triệu row dữ liệu ngẫu nhiên để thực hành SQL

-- Ví dụ: Script PL/SQL thêm 1 triệu row vào bảng employees (bảng partition hoặc không partition)

Sửa bài viết

Partition kết hợp (composite partitioning) trong Oracle Database

Composite Range-Hash Partitioning

CREATE TABLE page_history
( id                NUMBER NOT NULL
, url               VARCHAR2(300) NOT NULL
, view_date         DATE NOT NULL
, client_ip         VARCHAR2(23) NOT NULL
, from_url          VARCHAR2(300)
, to_url            VARCHAR2(300)
, timing_in_seconds NUMBER
) PARTITION BY RANGE(view_date) INTERVAL (NUMTODSINTERVAL(1,'DAY'))
SUBPARTITION BY HASH(client_ip)
SUBPARTITIONS 32
(PARTITION p0 VALUES LESS THAN (TO_DATE('01-JAN-2006','dd-MON-yyyy')))
PARALLEL 32 COMPRESS;
Sửa bài viết

Thứ Hai, 28 tháng 2, 2022

KHI NÀO CẦN TẠO PARTITION CHO BẢNG CSDL ORACLE

KHI NÀO NÊN TẠO PARTITION CHO BẢNG?

Oracle đã dựa trên câu chuyện bó đũa của Việt Nam để đưa ra tính năng tuyệt vời này: Tức là với bảng lớn (tương đương 10 cây đũa) thì rất khó chúng ta có thể thao tác, quản trị; nhưng khi chia thành những phần nhỏ chúng ta lại dễ dàng quản trị (bẽ gây đũa) được 😀😀😀

Vậy khi nào chúng ta cần tạo partition cho CSDL Oracle Theo khuyến cáo của Oracle thì chúng ta cần cân nhắc tạo partition cho bảng khi:
• Khi bảng lớn hơn 2GB
• Bảng có dữ liệu lịch sử: Chỉ cần DML trong tháng hiện tại (VD tháng 10/2019), còn lại trước đó Read Only
• Bảng chứa nhiều partition phân tán trên các phân vùng đĩa khác nhau (như SSD, FC, SAS, SATA) khi đó sẽ được lưu trên các tablespace tương ứng (như DATA2019, DATA2018, DATA2017,...)
• Còn 1 nội dung nữa mà Oracle không đưa ra trong phần lý thuyết đó là: Thực tế câu lệnh SELECT của chúng ta hay sử dụng quét theo điều kiện gì (theo ngày, theo tháng, theo quý hay theo năm) để chúng ta quyết định loại partition cho phù hợp.

Lựa chọn kiểu partition gì?

Chúng ta lựa chọn các kiểu partition dưới đây hoặc kết hợp các loại partition với nhau (composite):
- Với dữ liệu lịch sử thì đánh theo By Range.
- Với dữ liệu xác định trước được giá trị thì đánh theo By list.
- Với dữ liệu không có quy luật thì đánh theo By Hash.

Ví dụ:

-- Partition theo RANGE
CREATE TABLE invoices
(invoice_no    NUMBER NOT NULL,
 invoice_date  DATE   NOT NULL,
 comments      VARCHAR2(500))
PARTITION BY RANGE (invoice_date)
(PARTITION invoices_q1 VALUES LESS THAN (TO_DATE('01/04/2001', 'DD/MM/YYYY')) TABLESPACE users,
 PARTITION invoices_q2 VALUES LESS THAN (TO_DATE('01/07/2001', 'DD/MM/YYYY')) TABLESPACE users,
 PARTITION invoices_q3 VALUES LESS THAN (TO_DATE('01/09/2001', 'DD/MM/YYYY')) TABLESPACE users,
 PARTITION invoices_q4 VALUES LESS THAN (TO_DATE('01/01/2002', 'DD/MM/YYYY')) TABLESPACE users);
-- Partition theo HASH
CREATE TABLE invoices
(invoice_no    NUMBER NOT NULL,
 invoice_date  DATE   NOT NULL,
 comments      VARCHAR2(500))
PARTITION BY HASH (invoice_no)
PARTITIONS 4
STORE IN (users, users, users, users);
-- Composite Partition (partition theo RANGE và subpartition theo HASH)
CREATE TABLE invoices
(invoice_no    NUMBER NOT NULL,
 invoice_date  DATE   NOT NULL,
 comments      VARCHAR2(500))
PARTITION BY RANGE (invoice_date)
SUBPARTITION BY HASH (invoice_no)
SUBPARTITIONS 8
(PARTITION invoices_q1 VALUES LESS THAN (TO_DATE('01/04/2001', 'DD/MM/YYYY')),
 PARTITION invoices_q2 VALUES LESS THAN (TO_DATE('01/07/2001', 'DD/MM/YYYY')),
 PARTITION invoices_q3 VALUES LESS THAN (TO_DATE('01/09/2001', 'DD/MM/YYYY')),
 PARTITION invoices_q4 VALUES LESS THAN (TO_DATE('01/01/2002', 'DD/MM/YYYY'));
Hy vọng hữu ích cho bạn.
=============================
* 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
Sửa bài viết

Hiểu về index partition, phân biệt local index và global index

Mục đích: 

Index tạo trên bảng partition có thể là partition hoặc nonpartition, với partition index giúp dễ dàng quản lý, tăng tính sẵn sàng, hiệu năng cao hơn và khả năng mở rộng tốt hơn. Bạn có thể tạo partititioin độc lập (global index) hoặc tự động ánh xạ 1-1 với partition của table (local index). Nhưng nhìn chung bạn nên tạo global index cho ứng dụng OLTP (do nhiều khi không quét theo trường partition key của bảng được) và local index cho ứng dụng data warehousing hoặc DSS (decision support system).

Qua bài viết này hy vọng sẽ giúp bạn Hiểu về index partition, phân biệt local index và global index. 
Sửa bài viết

ĐỌC NHIỀU

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