Hiển thị các bài đăng có nhãn SQL Tunning. Hiển thị tất cả bài đăng
Hiển thị các bài đăng có nhãn SQL Tunning. Hiển thị tất cả bài đăng

Thứ Sáu, 1 tháng 11, 2024

Cách tối ưu hóa truy vấn trong cơ sở dữ liệu hiệu quả nhất

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:

1. Sử dụng Index (Chỉ mục)

Sửa bài viết

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.

Sửa bài viết

Thứ Sáu, 30 tháng 6, 2023

Kỹ thuật tối ưu truy vấn SQL

Mục lục nội dung

What is an index ?
Index data structure
Leaf Nodes
Index Traversal
Create Index for optimising query
Where Clause
query1
query2
query3
query4
query5
query6
Slow index
order by, group by
Join
Nested Loop Join
Nested Loop Join With ORM
Hash Join
Join Decomposition
IN
Chopping Up a Query
Partition
Type of column
Bulk insert/update
Insert
Update
Paging in SQL
Query – Strategery
Normal
Cursor
Stream
Tổng kết
Sửa bài viết

Kỹ thuật tối ưu truy vấn SQL

Mục lục nội dung

What is an index ?
Index data structure
Leaf Nodes
Index Traversal
Create Index for optimising query
Where Clause
query1
query2
query3
query4
query5
query6
Slow index
order by, group by
Join
Nested Loop Join
Nested Loop Join With ORM
Hash Join
Join Decomposition
IN
Chopping Up a Query
Partition
Type of column
Bulk insert/update
Insert
Update
Paging in SQL
Query – Strategery
Normal
Cursor
Stream
Tổng kết
Sửa bài viết

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.

Sửa bài viết

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.

Sửa bài viế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).

Sửa bài viế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).

Sửa bài viết

Chủ Nhật, 19 tháng 3, 2023

Cách lấy, đọc Execution Plan trong Oracle Database

1. Execution Plan là gì?

Kế hoạch thực thi là một tập hợp các bước mà trình tối ưu hóa thực hiện khi thực thi một câu lệnh SQL và thực hiện một hoạt động nào đó, chúng ta có thể tưởng tượng như đường đi đến đích khi chúng ta dùng Google Map để định vị.
Sửa bài viết

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

Sửa bài viết

Thứ Hai, 30 tháng 1, 2023

Thứ Sáu, 13 tháng 1, 2023

Tăng tốc database Index phần 13 Merge

Đã lâu không quay lại chủ đề này, vì trước mấy ku em bảo mình viết hàn lâm khó hiểu quá nên mình chuyển qua dạng vấn đáp xem có dễ hiểu hơn chút nào không? Các bạn có góp ý vui lòng comment nhé!
Sửa bài viết

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

Sửa bài viết

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.

Sửa bài viết

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.

Sửa bài viết

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ụ

Sửa bài viết

ĐỌC NHIỀU

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