Giải pháp cho vấn đề hiệu suất thực hiện của mô hình dữ liệu

Một phần của tài liệu Báo cáo đề tài: Kho Dữ Liệu pptx (Trang 30 - 33)

V. MÔ HÌNH DỮ LIỆU

5.4 Giải pháp cho vấn đề hiệu suất thực hiện của mô hình dữ liệu

Tư tưởng cơ bản của việc tối ưu là chiến lược kết hợp các cặp bảng bằng cách lựa chọn chỉ các bảng có liên quan tới nhau ít nhất. Khi 2 bảng được kết hợp và không có cột nào liên kết 2 bảng đó với nhau sự kết hợp các hàng của 2 bảng được thực hiện.

RDBMS không bao giờ coi tích Đề các như một phép kết hợp tốt, nhưng đối với sơ đồ hình sao những tích đề các này đôi khi cải thiện công suất truy vấn. Bởi vì bảng Fact trong sơ đồ hình sao có kích thước lớn hơn rất nhiều các bảng chiều

mà sự kết hợp các cặp bảng được thực hiện đầu tiên với bảng Fact. Sự lựa chọn này là không hợp lí vì như vậy sẽ tạo ra các bảng trung gian rất lớn. Một tích đề các được thực hiện đầu tiên với tất cả các bảng chiều (bằng cách kết hợp các cặp bảng liên tiếp nhau) và sự kết hợp với bảng Fact được lùi lại cuối cùng. Lợi ích quan trọng là bảng Fact không tìm thấy dấu vết của nó trong bất kì một bảng kết quả trung gian nào. Chi phí lớn nhất là tạo ra tích Đề các cho tất cả các bảng chiều. Chi phí này ít tốn kém hơn việc tạo ra các bảng trung gian do kết hợp với bảng Fact.

Sự tối ưu đơn giản không giải quyết được tất cả các vấn đề về năng suất thực hiện. Chiến lược này chỉ dùng được chỉ khi tích đề các của các hàng trong các bảng chiều được chọn ít hơn rất nhiều so với số lượng hàng trong bảng Fact. Như vậy việc kết hợp đề các này chỉ có ích cho những sự kết hợp có kích thước nhỏ. Nhưng DW liên quan tới những bảng có kích thước không nhỏ vì vậy một số nhà cung cấp dùng giải pháp sử dụng phần cứng và các phần mềm song song để giải quyết vấn đề này. Dùng hệ thống song song có thể làm giảm thời gian thực hiện một truy vấn đơn giản hoặc làm thêm một số công việc mà không làm thay đổi thời gian thực hiện công việc. Ngoài ra dùng các CPU gồm nhiều bộ vi xử lí cũng cải tiến được thời gian cho một câu truy vấn từ 500 giây xuống còn 50 giây. Cơ chế song song không tối ưu một cách đầy đủ các xử lí của sơ đồ hình sao. Dưới đây đưa ra một số sáng kiến để tăng công suất thực hiện của Red Brick.

5.4.1 STARjoin và STARindex

Một phương pháp mới để xử lí các truy vấn phức tạp có hiệu quả đối với cơ sở dữ liệu DW là STARjoin: thực hiện kết hợp nhiều bảng một cách song song. RDBMS của RedBrick có thể kết hợp nhiều hơn 2 bảng trong một phép toán đơn, tốc độ nhanh. Thậm chí khi kết hợp 2 bảng, STARjoin cũng không thực hiện các phương pháp kết hợp được cài đặt bởi RDBMS OLTP truyền thống.

Bản chất công nghệ này là sử dụng một bảng chỉ số làm cho các xử lí nhanh hơn được coi là công suất được áp dụng vào tất cả các sản phẩm của RDBMS. Các chỉ số được xác định dựa trên các cột được chọn của một bảng và khả năng lựa chọn của truy vấn bị hạn chế bởi các cột này, RDBMS có thể sử dụng bảng chỉ số này để xác định các hàng cần quan tâm nhanh hơn.

Hệ quản trị cơ sở dữ liệu quan hệ của RedBrick hỗ trợ cách tạo ra chỉ số đặc biệt được gọi là STARindex làm công suất thực hiện tăng hơn rất nhiều. Nó khác với các cấu trúc index truyền thống như B_tree hay Bitmap. Nó được tạo ra trên một hoặc nhiều cột đóng vai trò là khoá ngoại của một bảng Fact. Không giống như các chỉ số truyền thống lưu trữ thông tin để dịch giá trị của một cột thành một danh sách các hàng với giá trị đó, một STARjoin chứa đựng thông tin nén liên kết các chiều của bảng Fact tới các hàng chứa các chiều này. Nó có hiệu quả về không gian vì vậy nó được xây dựng và duy trì rất nhanh.

Nhờ có STARindex mà RDBMS có thể xác định được các hàng đích trong một bảng Fact cần thiết cho một tập các chiều cụ thể một cách nhanh chóng vì STARindex được tạo ra nhờ các khoá ngoại. Mọi kiểu truy vấn đều có thể sử dụng STARindex và kết hợp các bảng có quan hệ với nhau một cách nhanh nhất.

Có một số điểm tương tự và một số điểm khác nhau cơ bản giữa STARindex và việc đánh chỉ số nhiều cột truyền thống. Thứ nhất là đánh chỉ số nhiều cột chỉ tham chiếu tới một bảng đơn, còn STARindex có thể tham chiếu tới nhiều bảng. Thứ hai là với phương pháp đánh chỉ số nhiều cột, nếu một mệnh đề WHERE của một câu truy vấn không bị ràng buộc trên tất cả các cột trong bảng chỉ số ghép thì bảng chỉ số đó không thể được sử dụng đầy đủ trừ khi các cột cụ thể đó là một tập con các cột chính.

Thuật toán STARjoin có thể sử dụng sức mạnh và tính linh hoạt của STARindex để xác định tất cả các hàng được đòi hỏi trong một kết hợp cụ thể một cách hiệu quả. Chẳng hạn, thay vì tạo ra tích Đề các đầy đủ của các bảng chiều, STARjoin có thể dùng STARindex để kết hợp các bảng chiều với bảng Fact mà không tốn chi phí tạo ra tích Đề các.

STARindex cho phép STARjoin xác định nhanh chóng khu vực nào của không gian tích Đề các chứa những hàng cần quan tâm. Thuật toán STARjoin có thể tạo ra tích Đề các của những vùng có các hàng cần thiết và bỏ qua những những vùng không có hàng nào. Xét ví dụ sau để thấy rõ điều đó.

5.4.2. Đánh chỉ số index theo kiểu Bitmap

Một cách khác để tăng công suất thực hiện RDBMS là sử dụng kĩ thuật đánh chỉ số mới cho phép truy nhập nhanh, trực tiếp tới dữ liệu.

Những chỉ số không trỏ tới dữ liệu được lưu trữ ở nơi khác mà tất cả dữ liệu được lưu trữ trong cấu trúc chỉ số này.

Lực lượng dữ liệu: Nói chung, tệp chỉ số bitmap được dùng cho những truy

vấn với dữ liệu lực lượng ít. Chẳng hạn, lực lượng của dữ liệu về mã bang là 51 (mã bang có thể nhận 1 trong 50 giá trị), lực lượng của thuộc tính về giới tính là 2 (gồm nam và nữ). Đối với những dữ liệu lực lượng ít, mỗi giá trị phân biệt có chỉ số bitmap của riêng nó bao gồm một bit cho mỗi hàng trong bảng. Có một bảng về người làm thuê gồm 10000 hàng chứa một cột ‘giới tính’ được đánh chỉ số bitmap cho giá trị này. Sự thể hiện của tệp chỉ số bitmap là một vector độ dài 10000 bit, mỗi bit tương ứng với bản ghi thoả mãn điều kiện giá trị của ‘giới tính’=’M’(con trai) thì là 1. Tệp chỉ số bitmap có thể trở nên cồng kềnh và thậm chí không phù hợp đối với dữ liệu có lực lượng lớn khi phạm vi giá trị của dữ liệu là lớn. Chẳng hạn, các giá trị như ‘thu nhập’ hoặc ‘tiền lợi tức’ có thể là một con số có giá trị không xác định.

Một giải pháp dễ thấy là biểu diễn các loại dữ liệu này trong một khoảng giá trị ví dụ như khoảng giá trị từ 10$ tới 50$ và 51$ tới 100$. Nhưng cách này hạn chế khă năng của chỉ số bitmap và thường không hiệu quả hoặc không có nghĩa khi giải quyết những công việc trong thực tế. Một giải pháp khác là sử dụng cấu trúc chỉ số B_tree( cây nhị phân). Tuy nhiên, phương pháp này có thể làm tăng kích thước bởi vì khi khối lượng dữ liệu và số lượng các chỉ số tăng thì chúng đòi hỏi thường xuyên được duy trì khi dữ liệu được thêm vào, được cập nhật hay được xoá đi khỏi cơ sở dữ liệu. Cuối cùng, chỉ số B-tree có thể cải thiện một cách đáng kể công suất truy vấn nếu kiểu câu hỏi truy vấn được biết trước và tệp chỉ số được xây dựng để phản ánh đường dẫn truy nhập đã được biết trước.

Nhưng B-tree có thể không hiệu quả đối với những câu truy vấn đặc biệt điển hình của các ứng dụng DW. SYBASE IQ đã sử dụng công nghệ độc quyền là Bit-Wise để xây dựng tệp chỉ số bitmap cho những dữ liệu có lực lượng lớn hơn 1000 giá trị phân biệt (so với công nghệ truyền thống là dưới 250 giá trị).

Các loại chỉ số: SYBASE IQ với phiên bản đầu tiên cung cấp 5 kĩ thuật đánh

chỉ số. Việc lựa chọn phương pháp nào là tuỳ thuộc vào lực lượng của dữ liệu và cách truy nhập vào dữ liệu như thế nào. Hầu hết đều áp dụng 2 chỉ số cho mỗi cột. Môt loại là mặc định được gọi là chỉ số chiếu nhanh (Fast Projection index) và một loại khác là chỉ số lực lượng thấp hoặc cao. Đối với dữ liệu có lực lượng thấp SYBASE IQ cung cấp:

Low-fast index dùng cho những câu truy vấn liên quan tới các chức năng

Low disk index được dùng cho việc sử dụng không gian đĩa

Tương tự đối với dữ liệu lực lượng lớn, SYBASE IQ cung cấp chỉ số High Group và High Non-Group. Cả hai đều hỗ trợ những truy vấn kết hợp và khôi phục nhưng High Group còn hỗ trợ những truy vấn loại Group By.

5.4.3. Column Local Storage

Một phương pháp khác để cải tiến hiệu suất thực hiện truy vấn trong môi trường DW là của các nhà cung cấp các hệ thống song song. Cách tiếp cận này dựa trên việc lưu trữ dữ liệu đảo cột như kho dữ liệu đảo hàng truyền thống.

Trong môi trường DW, đối với các truy vấn đặc biệt mục tiêu là phải lấy được nhiều giá trị từ nhiều cột khác nhau. Ví dụ, tính giá trị trung bình lương nhân viên trong một công ty thì kho dữ liệu đảo cột của trường lương đòi hỏi một DBMS chỉ đọc một bản ghi.

Vì vậy, nếu DB hỗ trợ kho dữ liệu đảo cột thì giá trị của cột mong muốn từ nhiều hàng có thể được lưu trữ như một bản ghi vật lí đơn trong bộ nhớ và trong đĩa cứng. Lợi ích của kĩ thuật này rất rõ ràng- một thao tác vào/ra có thể lấy được một bản ghi dài bao gồm một tập con các cột. Kết hợp kĩ thuật này với RDBMS song song cải thiện được đáng kể công suất thực hiện.

Một phần của tài liệu Báo cáo đề tài: Kho Dữ Liệu pptx (Trang 30 - 33)

Tải bản đầy đủ (DOC)

(64 trang)
w