CHƯƠNG 4 : THIẾT KẾ VẬT LÝ DATAWAREHOUSE
4.5. Các kỹ thuật cải tiến hiệu năng
Cải tiến hiệu năng bao gồm nhiều các phương pháp kỹ thuật khác nhau và kỹ thuật đánh chỉ số được trình bày ở trên là một phần trong trong các cách đó. Ngồi ra có một số kỹ thuật khác như về mặt lưu trữ thì phải thực hiện như thế nào để có thể lưu được nhiều dữ liệu nhất vào trong một block để việc đọc dữ liệu ra được dễ dàng. Việc trộn dữ liệu giữa các bảng cũng là một biện pháp để tăng hiệu năng cho thao tác truy vấn dữ liệu. Để đạt được hiệu năng tối ưu tồn cục thì cần phải thực hiện nhiều các phương pháp cải tiến hiệu năng khác nhau từ tối ưu thiết kế, lưu trữ cho đến các thao tác lấy dữ liệu.
Trong phần dưới đây sẽ trình bày về một số kỹ thuật cải tiến hiệu năng hiệu quả thường rất thích hợp trong mơi trường data warehouse.
4.5.1. Phân loại dữ liệu
Thông thường trong hệ thống data warehouse, các bảng lưu dữ liệu có kích thước rất lớn. Bảng sự kiện thường chứa đến hàng triệu dòng, các bảng chiều cũng chứa một lượng dữ liệu khổng lồ. Các bảng có kích thước lớn như vậy sẽ ảnh hưởng nhiều đến
hiệu năng của hệ thống. Việc xây dựng chỉ mục cho bảng cũng tiêu tốn thời gian đến hàng giờ. Ngồi ra, các cơng việc liên quan đến quản trị hệ thống như sao lưu và khôi phục cũng tốn rất nhiều thời gian.
Phân loại dữ liệu (data partitioning) là việc chia dữ liệu bảng và các chỉ mục liên quan đến nó ra thành các phần nhỏ hơn có thể quản lý được. Các hệ quản trị cơ sở hiện nay đều hỗ trợ kỹ thuật này. Việc phân chia có thể được định nghĩa ra khi bảng được tạo, mỗi phân vùng tạo ra sẽ trở thành một đối tượng độc lập. Nếu kích thước của các phân vùng tăng nên thì có thể tiếp tục phân chia các phân vùng đó. Các phân vùng này thường được dàn trải trên các đĩa để làm tăng hiệu năng tối ưu cho hệ thống. Mỗi phân vùng mặcdù có các thuộc tính riêng biệt nhưng tất cả các phân vùng đều có cấu trúc logic giống hệt nhau.
Có 2 tiêu chuẩn phân chia bảng thành các phân vùng nhở hơn là phân chia theo chiều ngang hoặc phân chia theo chiều dọc. Trong cách phân chia theo chiều dọc, bảng được phân tách ra các phân vùng bằng cách nhóm các cột lại với nhau. Mỗi phân vùng đều có chứa số lượng các dòng bằng nhau. Phân chia theo chiều ngang là kỹ thuật đối ngược lại bằng cách nhóm các dịng cùng với nhau. Trong môi trường data warehouse, việc phân chia theo chiều ngang thường dựa theo tiêu chuẩn ngày tháng. Hệ thống có thể phân chia dựa trên các sự kiện hoặc các thời điểm lịch xử. Việc phân chia theo chiều ngang dữ liệu bảng sự kiện thường đem lại những lợi ích to lớn về mặt hiệu năng.
Phân loại dữ liệu là một kỹ thuật phù hợp cho việc quản lý lưu trữ và cải tiến hiệu năng trong môi trường data warehouse. Sau đây là một số tóm tắt về những lợi ích thu được.
Ứng dụng có thể thực hiện truy vấn một cách trong suốt tới các phân vùng riêng biệt. Truy vấn trong ứng dụng có thể thực hiện nhanh hơn khi truy cập trên vùng dữ liệu nhỏ hơn
Một phân vùng nào đó có thể đưa về trạng thái offline để bảo trì cho hệ thống Việc xây dựng hay tái tạo lại chỉ mục sẽ thực hiện nhanh hơn
Tải dữ liệu vào data warehouse cũng dễ dàng hơn và dễ quản lý hơn
Nếu có sự cố lỗi đĩa xảy ra thì nó cũng chỉ ảnh hưởng đến một phân vùng riêng biệt nào đó. Việc sao lưu và phục hồi dữ liệu trên phân vùng đó cũng đơn giản và nhanh hơn
Thông lượng dữ liệu vào, ra được giảm tải bởi ứng dụng thao tác với dữ liệu trên các phân vùng khác nhau nằm trên các ổ đĩa khác nhau
4.5.2. Phân cụm dữ liệu
Trong môi trường data warehouse, nhiều truy vấn cần thực hiện tuần tự trên trên một khối dữ liệu vô cùng lớn. Kỹ thuật phân nhóm dữ liệu (data clustering) này phù hợp với cách thức truy cập dữ liệu tuần tự như vậy.
Việc phân nhóm dữ liệu này được thực hiện bằng cách nhóm một số bảng có quan hệ với nhau và được lưu ra một cấu trúc lưu trữ nhằm tăng tấc độ truy cập dữ liệu nhưng gây tốn kém nhiều về hiệu năng và chi phí khi hệ thống thêm dữ liệu.
4.5.3. Xử lý song song
Khi truy vấn thực hiện trên một lượng dữ liệu lớn, thực hiện các công việc như tổng hợp dữ liệu và sau đó lấy dữ liệu theo một tập các yêu cầu ràng buộc nào đó. Rõ ràng ta có thể nhận ra rằng nếu có thể chia tập con các công việc cho các bộ xử lý và chúng thực hiện song song thì hiệu năng của hệ thống sẽ được tăng lên đáng kể. Đa số các DBMS hiện nay đều hỗ trợ đặc điểm này và sẽ tự động chia các công việc của việc truy vấn cho các bộ xử lý khác nhau và điều đặc biệt là chúng hoàn toàn trong suốt đối với người sử dụng.
Kỹ thuật xử lý song song này cũng có thể được áp dụng trong các phần việc như nạp và tổ chức dữ liệu. Hiệu quả phụ thuộc nhiều vào kiến trúc song song của các phần cứng trên server. Phương pháp xử lý song song và phương pháp phân chia thường được thực hiện cùng nhau và đem lại những lợi ích vơ cùng to lớn nhưng phụ thuộc nhiều và khả năng và kinh nghiệm của người thiết kế.