Tối ưu hóa truy vấn trong Oracle là một quá trình quan trọng để cải thiện hiệu suất của các câu lệnh SQL, đặc biệt là khi làm việc với các tập dữ liệu lớn. Dưới đây là các bước và kỹ thuật tối ưu hóa truy vấn phổ biến trong Oracle:
- HOME
- BASIC
- INSTALL
- ADMIN
- FULL BÀI VIẾT
- CÂU HỎI THƯỜNG GẶP
- ADMIN TUTORIAL
- CÀI ĐẶT, PATCH
- UPGRADE/MIGRATION
- NGUYÊN LÝ
- CÔNG CỤ
- INSTANCE
- USER, QUYỀN
- LƯU TRỮ (STORAGE)
- GIAO DỊCH
- BẢO MẬT
- OBJECTS
- BACKUP
- RECOVERY
- BẢO TRÌ
- HIỆU NĂNG (PERFORMANCE)
- CÁC LỖI THƯỜNG GẶP
- TROUBLESHOOTING
- QUY TRÌNH VẬN HÀNH ORACLE DATABASE A-Z
- VẬN HÀNH TỰ ĐỘNG
- TIPS
- KHO TÀI NGUYÊN
- EXADATA
- KHÁC
- DEV
- SECURITY
- TUNNING
- RAC
- HA
- OTHER DB
- SYSTEM
- SOLUTION
- TRAINING
- CONTACT
Thứ Sáu, 1 tháng 11, 2024
Thứ Hai, 28 tháng 8, 2023
Nên tạo index cho trường foreign key để tránh treo cứng hệ thống
Thứ Bảy, 26 tháng 8, 2023
[VIP5] BÍ QUYẾT KHI TẠO, QUẢN LÝ INDEX A-Z
Về index để nắm được bản chất để gặp bất kỳ bài toán nào hình thành nên PHẢN XẠ cần chú ý 1 số note sau:
Thứ Năm, 20 tháng 7, 2023
[VIP5] Tìm câu lệnh chiếm tải cao kill, tải ngay lập tức giảm
Chủ Nhật, 9 tháng 7, 2023
Cấu hình, quản trị Enterprise Manager Database Express 12c trong Oracle Database 12c
GIỚI THIỆU
Enterprise Manager Database Express 12c giúp chúng ta giám sát, quản trị, cấu hình thuận tiện hơn.
Những điều quan trọng cần nhớ về Enterprise Manager Database Express:
- EM DB Express không phải là Cloud Control (cài riêng bên ngoài) hoặc Grid Control (EM 11g)
- EM DB Express không phải là sự thay thế cho DB Control từ 11g, vì nó có ít chức năng hơn đáng kể để nhẹ hơn
- Một DBA sẽ không thể quản trị cơ sở dữ liệu chỉ bằng EM DB Express mà phải thêm các script, tool riêng
Nếu tổ chức của bạn sử dụng Cloud Control, điều đó nên, có lẽ bạn sẽ không bao giờ sử dụng EM Database Express. Mặt khác, nếu bạn đang dùng xung quanh với cơ sở dữ liệu và muốn có một giao diện đẹp để thực hiện một số tác vụ thì EM Database Express có thể là câu trả lời của bạn.
Thứ Sáu, 30 tháng 6, 2023
Kỹ thuật tối ưu truy vấn SQL
Index data structure
Leaf NodesIndex Traversal
Where Clause
query1query2query3query4query5query6
Slow index
order by, group by
Nested Loop JoinNested Loop Join With ORMHash JoinJoin DecompositionIN
InsertUpdate
NormalCursorStream
Kỹ thuật tối ưu truy vấn SQL
Index data structure
Leaf NodesIndex Traversal
Where Clause
query1query2query3query4query5query6
Slow index
order by, group by
Nested Loop JoinNested Loop Join With ORMHash JoinJoin DecompositionIN
InsertUpdate
NormalCursorStream
Chủ Nhật, 2 tháng 4, 2023
Tăng tốc database phần 15.1 Indexing NULL trong Oracle
Nếu các bạn chưa xem bài trước vui lòng xem tại đây. Trong Oracle nếu tất cả các cột trong được đánh index là NULL thì bản ghi đó sẽ không có trong index. Điều đó nghĩa là tất cả các index là partial index giống như điều kiện sau.
Tăng tốc database phần 15 NULL trong Oracle Database
NULL luôn là một thứ gây bối rối, mặc dù ý tưởng của nó chỉ đơn giản là một giá trị cho biết là chỗ này chưa có dữ liệu. Có một số cái lạ nữa như là truy vấn thì luôn dùng IS NULL chứ không dùng = NULL. Tuy nhiên ORACLE đối xử với NULL một cách dị hợm hơn chuẩn thông thường. Hơn nữa cách index trên NULL còn tiếp tục khác biệt.
Tăng tốc database phần 14 Partial Indexes
Thường thì chúng ta index sẽ hiểu là tất cả các dòng của cột đều được đánh index, nhưng trong một số trường hợp ta chỉ muốn đánh index theo một điều kiện nào đó. Một số hệ quản trị cung cấp chúng ta một tiện ích gọi là partial (PostgreSQL) or filtered (SQL Server).
Tăng tốc database phần 14 Partial Indexes
Thường thì chúng ta index sẽ hiểu là tất cả các dòng của cột đều được đánh index, nhưng trong một số trường hợp ta chỉ muốn đánh index theo một điều kiện nào đó. Một số hệ quản trị cung cấp chúng ta một tiện ích gọi là partial (PostgreSQL) or filtered (SQL Server).
Thứ Ba, 28 tháng 3, 2023
Tìm các session/SQL chiếm nhiều CPU trong Oracle Database
Mục đích: Tìm các session/SQL chiếm nhiều CPU trong Oracle Database
Chủ Nhật, 19 tháng 3, 2023
Cách lấy, đọc Execution Plan trong Oracle Database
Chủ Nhật, 12 tháng 3, 2023
Oracle Database xử lý câu lệnh SQL như thế nào?
Bài viết này giải thích cách cơ sở dữ liệu Oracle xử lý các câu lệnh DDL để tạo đối tượng, DML để sửa đổi dữ liệu và truy vấn (SELECT) để truy xuất dữ liệu.
Chương này bao gồm các chủ đề sau:
Giới thiệu về quá trình Xử lý SQL
Cơ sở dữ liệu Oracle xử lý DML như thế nào
Cơ sở dữ liệu Oracle xử lý DDL như thế nào
Thứ Hai, 30 tháng 1, 2023
Phát hiện toàn bộ những Foreign Key chưa được đánh Index trong Oracle Database
Thứ Sáu, 13 tháng 1, 2023
Tăng tốc database Index phần 13 Merge
Tăng tốc database Index phần 12 với LIKE
Nếu các bạn chưa đọc bài trước có thể đọc tại link Tăng tốc database phần 11 Tìm kiếm theo Khoảng, Lớn Hơn, Nhỏ Hơn, và BETWEEN
Truy vấn với Like nhiều lúc rất hiệu quả, nhiều lúc lại rất chậm. Có thể một số từ khóa được đánh index tốt, một số thì không. Nhiều lúc vị trí của wild card có thể cho kết quả rất khác nhau. VÍ dụ dùng % wild card ở giữa từ khóa
Tăng tốc database index phần 11 Tìm kiếm theo Khoảng, Lớn Hơn, Nhỏ Hơn, và BETWEEN
Nếu các bạn chưa đọc bài trước có thể đọc tại đây (10 - Query với tham số)
Các phép toán lớn hơn (>) nhỏ hơn (<) và BETWEEN cũng có thể sử dụng index giống toán tử bằng (=), thậm chí kể cả toán tử LIKE cũng có thể dùng được trong một số trường hợp. Việc dùng index kiểu này có giới hạn nếu đánh index trong một index chứa nhiều cột và chọn cột nào trước, cột nào sau. Nhiều khi không thể chọn được thứ tự đúng.
Tăng tốc database index phần 10 - Query với tham số
Nếu các bạn chưa đọc bài trước có thể đọc tại link Tăng tốc database index phần 9 - Function- User-Defined Function
Có hai cách để truyền dữ liệu vào database, một là truyền trực tiếp qua câu lệnh, hai là truyền qua tham số, thường là sử dụng ?, :name or @name và truyền giá trị tương ứng qua lời gọi.
Tăng tốc database index phần 9 - Function - User-Defined Function
Nếu các bạn chưa đọc bài trước có thể đọc tại link Tăng tốc database index phần 8 - Function- Tìm kiếm không phân biệt chữ Hoa chữ Thường- UPPER và LOWER
Dùng Function-based có vẻ ngon rồi nhưng có phải mọi hàm đều sử dụng được nó không? Có thể dùng hàm mặc định như UPPER cũng có thể dùng biểu thức kiểu A+B có thể dùng cả hàm tự định nghĩa nữa. Tuy nhiên có một ngoại lệ quan trọng có là hàm có phụ thuộc vào thời gian hiện tại ( dù là gián tiếp hay trực tiếp) ví dụ
ĐỌC NHIỀU
-
Checklist triển khai theo 6 giải pháp của Bộ TT&TT (có phân vai “Ai làm gì” – từng bước – mẫu tài liệu cần chuẩn bị). Template “Kế h...
-
ASM là viết tắt của “Automatic Storage Management” trong hệ thống quản lý cơ sở dữ liệu của Oracle. ASM là một công nghệ của Oracle Databas...
-
Serial: sneep All Hardware # prtdiag -v // verbose show đầy đủ thông tin # prtconf