Sự khác biệt giữa Lượt xem và Lượt xem được vật chất hóa trong Oracle là gì?


Câu trả lời:


355

Các khung nhìn cụ thể hóa dựa trên đĩa và được cập nhật định kỳ dựa trên định nghĩa truy vấn.

Lượt xem chỉ là ảo và chạy định nghĩa truy vấn mỗi lần chúng được truy cập.


54
Ngoài ra, khi bạn cần hiệu suất trên dữ liệu không cần cập nhật đến giây thứ hai, các chế độ xem được cụ thể hóa sẽ tốt hơn, nhưng dữ liệu của bạn sẽ cũ hơn trong chế độ xem chuẩn. Thông thường các báo cáo BI đạt được rất nhiều lợi ích từ các quan điểm cụ thể hóa.
Marthinus

29
@Marthinus - điều đó là chính xác, ngoại trừ trong trường hợp chế độ xem được cụ thể hóa là LẠNH TRÊN CAM KẾT - MV sẽ trả về chính xác dữ liệu đã được cam kết.
Jeffrey Kemp

2
Ý nghĩa của DISK dựa trên là gì? Có phải nó có nghĩa là bảng không phải là một phần của DISK? Được lưu trữ trong một tệp và truy cập DISK nhanh hơn truy cập Tệp ....?
Kanagavelu Sugumar

1
@KanagaveluSugumar Vâng, các bảng thực tế cũng được ghi vào đĩa.
dacracot

5
@dacracot Cảm ơn! tôi nghĩ bạn muốn nói khác với các bảng DB trong DISK; MVIEW này cũng duy trì một bảng bằng cách giải quyết tất cả các phép nối. Vì vậy, trong thời gian chạy truy cập bảng duy nhất là đủ; và không cần truy vấn nhiều bảng cho các điều kiện nối thường được thực hiện bởi chế độ xem bình thường. Cảm ơn bạn!
Kanagavelu Sugumar

332

Lượt xem

Họ đánh giá dữ liệu trong các bảng nằm dưới định nghĩa khung nhìn tại thời điểm khung nhìn được truy vấn . Đây là chế độ xem logic của các bảng của bạn, không có dữ liệu được lưu trữ ở bất kỳ nơi nào khác.

Mặt trái của quan điểm là nó sẽ luôn trả lại dữ liệu mới nhất cho bạn . Các nhược điểm của một cái nhìn là hiệu quả của nó phụ thuộc vào cách tốt một tuyên bố chọn quan điểm dựa trên. Nếu câu lệnh select được sử dụng bởi khung nhìn tham gia nhiều bảng hoặc sử dụng các phép nối dựa trên các cột không được lập chỉ mục, thì khung nhìn có thể hoạt động kém.

Quan điểm cụ thể hóa

Chúng tương tự như các chế độ xem thông thường, ở chỗ chúng là chế độ xem logic của dữ liệu của bạn (dựa trên câu lệnh chọn), tuy nhiên, tập kết quả truy vấn cơ bản đã được lưu vào bảng . Mặt trái của điều này là khi bạn truy vấn một khung nhìn cụ thể hóa, bạn đang truy vấn một bảng , cũng có thể được lập chỉ mục.

Ngoài ra, vì tất cả các liên kết đã được giải quyết tại thời điểm làm mới chế độ xem được cụ thể hóa, bạn phải trả giá của liên kết một lần (hoặc thường xuyên khi bạn làm mới chế độ xem cụ thể hóa của mình), thay vì mỗi lần bạn chọn từ chế độ xem cụ thể hóa. Ngoài ra, với tính năng ghi lại truy vấn được bật, Oracle có thể tối ưu hóa một truy vấn chọn từ nguồn của chế độ xem được cụ thể hóa của bạn theo cách mà nó thay vì đọc từ chế độ xem cụ thể hóa của bạn. Trong các trường hợp bạn tạo các chế độ xem được cụ thể hóa dưới dạng các bảng tổng hợp hoặc dưới dạng bản sao của các truy vấn được thực hiện thường xuyên, điều này có thể tăng tốc đáng kể thời gian phản hồi của ứng dụng người dùng cuối của bạn. Các nhược điểm dù là dữ liệu bạn nhận được trở lại từ cụ thể hóa quan điểm chỉ như cập nhật như thời gian qua, cụ thể hóa quan điểm đã được làm mới .


Các khung nhìn cụ thể hóa có thể được đặt để làm mới thủ công, theo lịch trình đã đặt hoặc dựa trên cơ sở dữ liệu phát hiện sự thay đổi dữ liệu từ một trong các bảng bên dưới . Các khung nhìn được vật chất hóa có thể được cập nhật tăng dần bằng cách kết hợp chúng với các nhật ký khung nhìn được vật chất hóa, đóng vai trò thay đổi các nguồn thu thập dữ liệu trên các bảng bên dưới.

Các khung nhìn cụ thể hóa thường được sử dụng trong các ứng dụng lưu trữ dữ liệu / ứng dụng kinh doanh trong đó truy vấn các bảng thực tế lớn với hàng ngàn triệu hàng sẽ dẫn đến thời gian phản hồi truy vấn dẫn đến một ứng dụng không thể sử dụng được.


Các khung nhìn cụ thể hóa cũng giúp đảm bảo thời điểm nhất quán theo thời gian, tương tự như cách ly ảnh chụp nhanh .


9
+1 cho phần giải thích chi tiết, nhưng nhược điểm của việc viết lại truy vấn là gì? Nếu viết lại truy vấn sẽ cho phép Oracle tối ưu hóa truy vấn hơn nữa thì chúng ta có nên LUÔN cho phép viết lại truy vấn không?
Rosdi Kasim

6
@Rosdi, ông nói rằng: "dữ liệu bạn nhận được từ chế độ xem được vật chất hóa chỉ cập nhật như lần cuối cùng chế độ xem được vật chất hóa"
Jeffrey Kemp

49

Một khung nhìn sử dụng một truy vấn để kéo dữ liệu từ các bảng bên dưới.

Một khung nhìn cụ thể hóa là một bảng trên đĩa chứa tập kết quả của một truy vấn.

Các khung nhìn cụ thể hóa được sử dụng chủ yếu để tăng hiệu suất ứng dụng khi không khả thi hoặc mong muốn sử dụng chế độ xem chuẩn với các chỉ mục được áp dụng cho nó. Các khung nhìn cụ thể hóa có thể được cập nhật một cách thường xuyên thông qua các kích hoạt hoặc bằng cách sử dụng ON COMMIT REFRESHtùy chọn. Điều này không đòi hỏi một vài quyền bổ sung, nhưng nó không có gì phức tạp. ON COMMIT REFRESHđã được đưa ra kể từ ít nhất là Oracle 10.


Có một tùy chọn "
LẠNH TRÊN CAM KẾT

Cảm ơn! Tôi sẽ cập nhật câu trả lời. Bạn có biết khi chức năng này được thêm vào Oracle?
Jeremiah Peschka

20

Các khung nhìn về cơ bản là các cấu trúc giống như bảng được đưa vào một cách nhanh chóng bởi một truy vấn nhất định. Kết quả của một truy vấn xem không được lưu trữ ở bất cứ đâu trên đĩa và chế độ xem được tạo lại mỗi khi truy vấn được thực thi. Các khung nhìn cụ thể hóa là các cấu trúc thực tế được lưu trữ trong cơ sở dữ liệu và được ghi vào đĩa. Chúng được cập nhật dựa trên các tham số được xác định khi chúng được tạo.


Ý nghĩa của DISK dựa trên là gì? Có phải nó có nghĩa là bảng không phải là một phần của DISK? Được lưu trữ trong một tệp và truy cập DISK nhanh hơn truy cập Tệp ....?
Kanagavelu Sugumar

18

Chế độ xem được cụ thể hóa - một bảng trên đĩa chứa tập kết quả của truy vấn

Chế độ xem không liên quan - một truy vấn lấy dữ liệu từ bảng bên dưới


7

Xem: Xem chỉ là một truy vấn được đặt tên. Nó không lưu trữ bất cứ thứ gì. Khi có một truy vấn trên khung nhìn, nó sẽ chạy truy vấn của định nghĩa khung nhìn. Dữ liệu thực tế đến từ bảng.

Quan điểm cụ thể hóa : Lưu trữ dữ liệu vật lý và được cập nhật định kỳ. Trong khi truy vấn MV, nó cung cấp dữ liệu từ MV.


2

Thêm vào câu trả lời khá kỹ lưỡng của Mike McAllister ...

Các khung nhìn được vật chất hóa chỉ có thể được thiết lập để tự động làm mới thông qua cơ sở dữ liệu phát hiện các thay đổi khi truy vấn xem đơn giản bởi trình biên dịch. Nếu nó được coi là quá phức tạp, nó sẽ không thể thiết lập những yếu tố cơ bản kích hoạt bên trong để theo dõi các thay đổi trong bảng nguồn để chỉ cập nhật các hàng đã thay đổi trong bảng mview.

Khi bạn tạo một khung nhìn cụ thể hóa, bạn sẽ thấy rằng Oracle tạo cả mview và dưới dạng một bảng có cùng tên , điều này có thể khiến mọi thứ trở nên khó hiểu.


Các bảng hỗ trợ chế độ xem cụ thể hóa không có cùng tên với chế độ xem.
Jeffrey Kemp

@JeffreyKemp, bạn có chắc không? Câu trả lời được chấp nhận ở đây stackoverflow.com/a/33552513 yêu cầu khác. Mặc dù vâng, điều này có thể đã khác trong năm 2010 khi bạn bình luận ...
leqid

Nhận xét của tôi ở trên phải là về một phiên bản cũ hơn (có thể là 9i). Bạn nói đúng, MV có được một bảng có cùng tên ít nhất là trong các phiên bản hiện đại.
Jeffrey Kemp

1

Các khung nhìn cụ thể hóa là khung nhìn logic của dữ liệu được điều khiển bởi truy vấn chọn nhưng kết quả của truy vấn sẽ được lưu trữ trong bảng hoặc đĩa, định nghĩa của truy vấn cũng sẽ lưu trữ trong cơ sở dữ liệu.

Hiệu suất của Chế độ xem được vật chất hóa tốt hơn Chế độ xem thông thường vì dữ liệu của chế độ xem được cụ thể hóa sẽ được lưu trữ trong bảng và bảng có thể được lập chỉ mục để nhanh hơn việc tham gia cũng được thực hiện tại thời điểm làm mới chế độ xem được vật chất hóa nên không cần phải cháy mỗi lần tham gia tuyên bố như trong trường hợp xem.

Sự khác biệt khác bao gồm trong trường hợp Chế độ xem, chúng tôi luôn nhận được dữ liệu mới nhất nhưng trong trường hợp Chế độ xem được Vật chất hóa, chúng tôi cần làm mới chế độ xem để nhận dữ liệu mới nhất. Trong trường hợp Chế độ xem được vật chất hóa, chúng tôi cần một trình kích hoạt bổ sung hoặc một số phương thức tự động để chúng tôi có thể giữ cho MV được làm mới, điều này là không bắt buộc đối với các chế độ xem trong cơ sở dữ liệu.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.