- Chuyên mục khác :
- Git cơ bản và nâng cao
- ·
- MySQL cơ bản và nâng cao
- ·
- MongoDB cơ bản và nâng cao
- ·
- SQL cơ bản và nâng cao
- ·
- Linux cơ bản và nâng cao
- Cơ bản về SQL
- Học SQL cơ bản và nâng cao
- SQL là gì
- Các khái niệm RDBMS trong SQL
- RDBMS Database trong SQL
- Cú pháp SQL cơ bản
- Kiểu dữ liệu trong SQL
- Toán tử trong SQL
- Biểu thức trong SQL
- SQL Database
- Lệnh CREATE DATABASE trong SQL
- Lệnh DROP Database trong SQL
- Lệnh SELECT DATABASE trong SQL
- Lệnh RENAME DATABASE trong SQL
- SQL Table
- CREATE Table trong SQL - Tạo bảng trong SQL
- Lệnh DROP Table trong SQL
- DELETE trong SQL
- Lệnh RENAME Table trong SQL
- Lệnh TRUNCATE TABLE trong SQL
- Lệnh ALTER TABLE trong SQL
- Mô phỏng bảng trong SQL
- Bảng tạm (Temporary Table) trong SQL
- Nhóm lệnh thao tác cơ bản
- UPDATE trong SQL
- Truy vấn INSERT trong SQL
- Truy vấn SELECT trong SQL
- Mệnh đề ORDER BY trong SQL
- Mệnh đề GROUP BY trong SQL
- Từ khóa DISTINCT trong SQL
- Sắp xếp kết quả trong SQL
- Mệnh đề trong SQL
- Mệnh đề WHERE trong SQL
- Toán tử liên hợp AND và OR trong SQL
- Mệnh đề With trong SQL
- Mệnh đề LIKE trong SQL
- Mệnh đề TOP, LIMIT, ROWNUM trong SQL
- Hoạt động SQL nâng cao
- Mệnh đề UNION trong SQL
- Giá trị NULL trong SQL
- Alias trong SQL
- Chỉ mục (Index) trong SQL
- Sử dụng View trong SQL
- Mệnh đề HAVING trong SQL
- Transaction trong SQL
- Toán tử wildcard trong SQL
- Truy vấn con trong SQL
- Sử dụng Sequence trong SQL
- Xử lý bản sao trong SQL (DISTINCT)
- Injection trong SQL
- Ràng buộc trong SQL
- Ràng buộc (Constraint) trong SQL
- Ràng buộc NOT NULL trong SQL
- Ràng buộc DEFAULT trong SQL
- Ràng buộc UNIQUE trong SQL
- Ràng buộc PRIMARY KEY trong SQL
- Ràng buộc FOREIGN KEY trong SQL
- Ràng buộc CHECK trong SQL
- Ràng buộc INDEX trong SQL
- SQL Join
- Mệnh đề JOINS trong SQL
- INNER JOIN trong SQL
- LEFT JOIN trong SQL
- RIGHT JOIN trong SQL
- FULL JOIN trong SQL
- SELF JOIN trong SQL
- CARTESIAN JOIN hoặc CROSS JOIN trong SQL
- Hàm trong SQL
- Hàm hữu ích trong SQL
- Hàm xử lý Date và Time trong SQL
- Hàm xử lý số trong SQL
- Hàm xử lý chuỗi trong SQL
- Tài liệu SQL tham khảo
- First Normal Form (1NF) trong SQL
- Second Normal Form (2NF) trong SQL
- Third Normal Form (3NF) trong SQL
- Tuning DB trong SQL
- Tài liệu SQL tham khảo
Để trở thành một Database Expert hay một Database Administrator, bạn phải trả qua một khoảng thời gian học tập và làm việc khá dài. Điều này đòi hỏi kinh nghiệm trong các Database Design đa dạng và các khóa đào tạo tốt.
Với người mới bắt đầu, các hướng dẫn được liệt kê dưới đây sẽ giúp bạn cải thiện hiệu suất cơ sở dữ liệu (Database Performance).
Sử dụng 3BNF Database Design đã được giải thích trong chương Các khái niệm về RDBMS.
Tránh chuyển đổi số-thành-ký tự bởi vì các số và ký tự là khác nhau và điều này làm giảm hiệu suất cơ sở dữ liệu.
Trong khi sử dụng lệnh SELECT, chỉ lấy thông tin nào cần thiết và tránh sử dụng * trong các truy vấn SELECT bởi vì nó sẽ tải hệ thống một cách không cần thiết.
Tạo các chỉ mục (index) một cách cẩn thận trên tất cả các bảng, là nơi bạn thường có các hoạt động tìm kiếm. Tránh sử dụng chỉ mục trên các bảng mà bạn ít sử dụng hoạt động tìm kiếm và sử dụng nhiều hoạt động chèn và cập nhật.
Một Full-table Scan xuất hiện khi các cột trong mệnh đề WHERE không có một chỉ mục được liên kết với chúng. Bạn có thể tránh một full-table scan bằng việc tạo một chỉ mục trên các cột mà được sử dụng như là các điều kiện trong mệnh đề WHERE của một lệnh SQL.
Cẩn thận với các toán tử ngang bằng với các số thực và các giá trị date/time. Cả hai loại này có thể có một sự khác nhau rất nhỏ nhưng không rõ ràng để nhìn thấy, và để tạo một so khớp chính xác là điều không thể.
Sử dụng Pattern Matching (so khớp mẫu) một cách thận trọng. LIKE COL% là một điều kiện WHERE hợp lệ, giảm tập hợp được trả về, và chỉ có các bản ghi với dữ liệu bắt đầu với chuỗi COL được trả về. Tuy nhiên, COL%Y lại không giảm tập hợp kết quả được trả về, bởi vì %Y không thể được ước lượng một cách hiệu quả. Nỗ lực để thực hiện việc ước lượng là quá lớn và cần được xem xét lại. Trong trường hợp này, COL% được sử dụng, và %Y bị bỏ.
Tinh chỉnh các truy vấn SQL của bạn bằng việc kiểm tra cấu trúc của các truy vấn (và truy vấn phụ), cú pháp SQL, để phát hiện xét xem bạn đã thiết kế bảng để hỗ trợ cho thao tác dữ liệu nhanh và các truy vấn đã viết có theo phương thức tối ưu để cho phép DBMS của bạn thao tác dữ liệu một cách hiệu quả không.
Với các truy vấn mà được thực thi trên một nền tảng thông thường, bạn sử dụng các thủ tục. Một thủ tục là một nhóm các lệnh SQL. Thủ tục có thể được biên dịch bởi Database Engine và sau đó được thực thi. Không giống một lệnh SQL, Database Engine không cần tối ưu hóa thủ tục trước khi nó được thực thi.
Bạn có thể tối ưu hóa việc có một lượng dữ liệu lớn phải tải bằng việc xóa các chỉ mục. Tưởng tượng về bảng với hàng nghìn hàng.
Khi thực hiện Batch transaction, thực hiện COMMIT ngay sau khi một số lượng bản ghi được tạo thay vì tạo chúng sau mỗi lần tạo bản ghi.
Sử dụng Defragment với Database trên một nền tảng thông thường.
Tuning Tool có sẵn
Oracle có nhiều Tool để quản lý hiệu suất lệnh SQL, trong đó có hai tool khá phổ biến, đó là:
Explain plan − tool xác định Access path mà sẽ được lấy khi lệnh SQL được thực thi.
tkprof − đánh giá hiệu suất bằng thời gian trôi qua trong suốt mỗi giai đoạn xử lý của lệnh SQL.
Nếu bạn muốn đánh giá đơn giản thời gian đã trôi qua của một truy vấn trong Oracle, bạn có thể sử dụng lệnh SET TIMING ON trong SQL*Plus.
Kiểm tra RDBMS Documentation để biết thêm chi tiết về các Tool và Defragment trên.
Bình luận (0)