5

Chúng tôi có một ứng dụng OLTP sử dụng Oracle Database 10g Enterprise Edition, và có kế hoạch xây dựng một lớp báo cáo kinh doanh để đáp ứng các nhu cầu sau.Báo cáo kinh doanh về ứng dụng OLTP

  • sheilding độ phức tạp của thiết kế cơ sở dữ liệu OLTP hiện
  • Cải thiện hiệu suất truy vấn của OLTP hiện báo cáo
  • Cung cấp truy cập chỉ đọc vào các ứng dụng khác
  • Cho phép người dùng doanh nghiệp để thực hiện Adhoc báo cáo

Giải pháp mà chúng tôi đang nghĩ đến là tạo một lớp bộ nhớ cache DB bằng cách sử dụng Chế độ xem Vật hoá Oracle (MV) trên OLTP hiện tại. MV sẽ không được chuẩn hóa và được thiết kế để báo cáo. Bản ghi MV sẽ đồng bộ hóa các thay đổi đối với MV bằng cách sử dụng làm mới gia tăng.

Câu hỏi của tôi là,

  1. Liệu phương pháp này có ý nghĩa (MV của)? Có ai sử dụng MV để xây dựng các giải pháp báo cáo OLTP không?
  2. Những hạn chế của phương pháp này (MV) là gì?
  3. Cách sử dụng Oracle CDC và bảng, với các quy trình để thực hiện đồng bộ hóa.
  4. Bất kỳ phương pháp tiếp cận nào khác?

Cảm ơn bạn, Sherry

Trả lời

2

Nói chung, tôi sẽ nghĩ đến việc hoặc là một lớp xem hoặc một lớp xem cụ thể hóa để báo cáo người sử dụng. Sở thích của tôi trừ khi có những vấn đề hiệu năng cụ thể sẽ là đi với quan điểm với một mắt để tạo ra các khung nhìn vật chất không thường xuyên sử dụng truy vấn viết lại để tăng tốc độ báo cáo được chọn.

Nếu bạn sử dụng chế độ xem hiện thực hóa, bạn rõ ràng sẽ thực hiện dữ liệu lần thứ hai nhưng theo định dạng sẽ dẫn đến lưu trữ kém hiệu quả hơn. Điều đó có nghĩa là hầu hết không gian trong hệ thống sẽ được phân bổ cho các khung nhìn vật hoá không chuẩn hóa và các chỉ mục của chúng. Điều đó có thể tạo ra một hóa đơn khá lớn từ nhà cung cấp đĩa của bạn và có thể tạo ra tranh chấp cho các tài nguyên SAN.

Chế độ xem vật chất cũng đồng nghĩa với việc cạnh tranh nhiều hơn cho không gian bộ nhớ cache giữa OLTP và người dùng báo cáo. Vì chúng được lưu trữ trong các đối tượng khác nhau, các báo cáo đang tìm kiếm hoạt động gần đây sẽ không thể hưởng lợi từ các khối nóng trong bộ nhớ cache từ hoạt động OLTP và ngược lại. Bạn có thể giảm thiểu vấn đề này bằng cách ném RAM vào nó hoặc bằng cách di chuyển báo cáo đến thời gian không cao điểm nhưng nó không phải là giải pháp hiệu quả nhất. Nếu bạn có báo cáo lịch sử gần như độc quyền, điều này có thể không phải là vấn đề lớn-- sẽ không có chia sẻ vì các quy trình quan tâm đến các khối hoàn toàn khác nhau-- nhưng nếu bạn có nhiều báo cáo hoạt động thì nó trở nên quan trọng.

Chế độ xem vật chất cũng có thể kém linh hoạt hơn. Nếu bạn muốn trình bày cùng một dữ liệu theo nhiều cách, nó sẽ hiện thực hóa nó nhiều lần sẽ tăng chi phí thực cả trong đĩa và bộ nhớ cache cũng như tăng thời gian cần thiết để làm mới định kỳ lớp vật chất của bạn. Trong thực tế, điều đó có xu hướng có nghĩa là người dùng báo cáo nhận được dạng xem mẫu số ít phổ biến nhất của dữ liệu và phải phát minh lại bánh xe khi họ cắt và xúc xắc dữ liệu vì CNTT không muốn tạo chế độ xem vật liệu mới cho chúng.

Như tôi đã nói ở trên, sở thích của tôi sẽ là lớp xem thông thường. Điều đó tránh được chi phí lưu trữ dữ liệu nhiều lần và làm cho nó có thể chia sẻ các khối trong bộ nhớ cache giữa OLTP và truy vấn báo cáo. Nó cũng làm cho nó tương đối dễ dàng để cung cấp cho người dùng quan điểm khác nhau của dữ liệu và loại bỏ sự cần thiết phải giữ cho người dùng doanh nghiệp được thông báo về cách dữ liệu cũ mà họ đang báo cáo. Nếu và khi hiệu suất trở thành một vấn đề bởi vì mô hình dữ liệu OLTP không hỗ trợ các loại truy vấn bạn muốn chạy, bạn có thể tạo các chế độ xem vật lý được nhắm mục tiêu hoạt động như chỉ mục qua query rewrite. Điều đó có nghĩa là người dùng có thể truy vấn chế độ xem thông thường và sau đó, DBA có thể thêm chế độ xem được tạo thành tất cả hoặc một phần của kết quả và trình tối ưu hóa có thể thay đổi kế hoạch truy vấn để sử dụng chế độ xem được materialized mới thay vì quét bảng và thực hiện như tổng hợp dữ liệu khi chạy.

Tại một thời điểm nào đó, bạn có thể muốn di chuyển lưu lượng truy cập báo cáo để đạt được kho dữ liệu thực với mô hình dữ liệu chiều rộng hơn. Nếu bạn thấy rằng bạn thực sự cần hiệu suất của một lớp xem vật chất hơn là một lớp xem thông thường, tôi sẽ suy nghĩ mạnh mẽ về việc đi đến một kho dữ liệu thực với các sự kiện và kích thước. Bạn sẽ nhận được một cái gì đó linh hoạt hơn nhiều để báo cáo về cơ bản cùng với những đau đầu ETL mà bạn có thể nhận được với một lớp xem vật liệu hoàn chỉnh.

+0

xin lỗi vì đã không đề cập đến ấn bản doanh nghiệp 10g của nó. – Sherry

+0

@ Sherry- viết lại bài đăng cho doanh nghiệp không thể hiện. –

+0

cảm ơn cho reposting với phiên bản doanh nghiệp, và điểm cũng được đưa về lưu trữ và các vấn đề tài nguyên của MV. – Sherry

Các vấn đề liên quan