Chắc chắn rồi.
Dạng xem bình thường là một truy vấn xác định một bảng ảo - bạn không thực sự có dữ liệu nằm trong bảng, bạn tạo nó một cách nhanh chóng bằng cách thực thi.
Dạng xem cụ thể hóa là dạng xem nơi truy vấn được chạy và dữ liệu được lưu trong một bảng thực tế.
Dữ liệu trong chế độ xem cụ thể hóa sẽ được làm mới khi bạn yêu cầu.
Một số trường hợp sử dụng:
-
Chúng tôi có nhiều phiên bản Oracle trong đó chúng tôi muốn có dữ liệu chính trên một phiên bản và một bản sao dữ liệu hiện tại hợp lý trên các phiên bản khác. Chúng tôi không muốn cho rằng các liên kết cơ sở dữ liệu giữa chúng sẽ luôn hoạt động và hoạt động. Vì vậy, chúng tôi thiết lập các chế độ xem cụ thể hóa trên các trường hợp khác, với các truy vấn như
select a,b,c from [email protected]
và yêu cầu họ làm mới hàng ngày. -
Chế độ xem vật chất hóa cũng hữu ích trong việc viết lại truy vấn. Giả sử bạn có một bảng dữ kiện trong kho dữ liệu với mọi cuốn sách từng được mượn từ thư viện, với ngày tháng và người mượn. Và nhân viên đó thường xuyên muốn biết một cuốn sách đã được mượn bao nhiêu lần. Sau đó, tạo chế độ xem cụ thể hóa dưới dạng
select book_id, book_name, count(*) as borrowings from book_trans group by book_id, book_name
, hãy đặt nó cho bất kỳ tần suất cập nhật nào bạn muốn - thường là tần suất cập nhật cho chính kho hàng. Bây giờ nếu ai đó chạy một truy vấn như vậy cho một cuốn sách cụ thể đối vớibook_trans
bảng, khả năng ghi lại truy vấn trong Oracle sẽ đủ thông minh để xem chế độ xem cụ thể hóa thay vì xem qua hàng triệu hàng trongbook_trans
.
Thông thường, bạn đang xây dựng các chế độ xem cụ thể hóa vì lý do hiệu suất và độ ổn định - mạng không ổn định hoặc thực hiện các truy vấn dài ngoài giờ.