Sau khi tối ưu bộ nhớ lưu trữ, chúng ta sẽ có thêm rất nhiều bảng mới. Khi đó sẽ sinh ra một vấn đề mới khi chúng ta muốn lấy dữ liệu từ nhiều bảng thì phải thực hiện join các bảng trước.
Việc Join các bảng mất rất nhiều thời gian, đặc biệt là khi kết hợp các bảng lớn với nhau. Một vài kĩ thuật để tăng tốc xử lý dữ liệu, bao gồm: denormalization, clustering và indexing.
48
Denormalization rất thích hợp trong trường hợp thông tin trong bảng được query thường xuyên nhưng ít update. Các trường hợp nên áp dụng denormalization:
▪ Thứ nhất, áp dụng với các bảng thường xuyên tìm kiếm (look-up tables). Giữ lại các trường liên quan ở lại look-up tables khi các trường đó thường xuyên được query cùng và các trường đó ít thay đổi.
▪ Thứ hai, quan hệ one-to-one rất thích hợp cho denormalization. Gộp các trường vào chung một bảng giúp tăng tốc độ query khi không phải join 2 bảng với nhau.
▪ Thứ ba, thêm các thuộc tính của thực thể cha vào thực thể con. Tăng hiệu quả và tốc độ query khi thuộc tính ở thực thể cha thường xuyên được query cùng với các trường của thực thể con.
• Clustering: tốc độ truy cập cũng bị ảnh hưởng bởi cách dữ liệu được truy xuất.
▪ Truy xuất dữ liệu tuyến tính, truy cập mọi records trong bảng để lấy kết quả là phương thức truy xuất dữ liệu kém hiệu quả nhất.
▪ Việc sử dụng clustering(phân cụm) giúp câu lệnh query chỉ truy cập đến vùng mà được phân cụm trước.
▪ Mỗi bảng có duy nhất một chiến lược phân cụm.
• Indexing: Indexes là một trong những giải pháp hiệu quả nhất giúp tăng hiệu năng của cơ sở dữ
liệu.
▪ Áp dụng có chọc lọc với hệ thống cơ sở dữ liệu tác nghiệp hoặc các hệ thống yêu cầu nhiều lệnh update.
▪ Nên áp dụng Indexes với hệ thống hỗ trợ ra quyết định.