Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

quan điểm cụ thể hóa trong tiên tri là gì?

Chế độ xem cụ thể hóa trong oracle là gì

Một chế độ xem cụ thể hóa là một đối tượng cơ sở dữ liệu có chứa kết quả của một truy vấn. Nó khác với chế độ xem oracle đơn giản. Chế độ xem cụ thể hóa này có dữ liệu được lưu trữ và khi bạn truy vấn chế độ xem cụ thể hóa, nó sẽ trả về dữ liệu từ dữ liệu được lưu trữ. Mệnh đề FROM của truy vấn có thể đặt tên cho bảng, dạng xem và các dạng xem cụ thể hóa khác. Gọi chung các đối tượng này được gọi là bảng tổng thể (một thuật ngữ sao chép) hoặc bảng chi tiết (một thuật ngữ kho dữ liệu). Tham chiếu này sử dụng "bảng chính" để có tính nhất quán. Cơ sở dữ liệu chứa các bảng chính được gọi là cơ sở dữ liệu tổng thể.

Khi bạn tạo một dạng xem hiện thực hóa, Cơ sở dữ liệu Oracle sẽ tạo một bảng nội bộ và ít nhất một chỉ mục Oracle và có thể tạo một dạng xem, tất cả đều nằm trong lược đồ của dạng xem cụ thể hóa. Cơ sở dữ liệu Oracle sử dụng các đối tượng này để duy trì dữ liệu dạng xem cụ thể hóa. Bạn phải có các đặc quyền cần thiết để tạo các đối tượng này.

Các đặc quyền cần thiết để tạo chế độ xem cụ thể hóa

Người dùng phải có TẠO CHẾ ĐỘ XEM VẬT LIỆU để tạo chế độ xem cụ thể hóa

Cú pháp chung

CREATE MATERIALIZED VIEW
BUILD [IMMEDIATE | DEFERRED]
REFRESH [FAST | COMPLETE | FORCE ]
ON [COMMIT | DEMAND ]
[[ENABLE | DISABLE] QUERY REWRITE]
[ON PREBUILT TABLE]
AS
;

Giải thích từng thuật ngữ

BUILD [NGAY LẬP TỨC | DEFERRED] Chúng tôi có thể chỉ định để điền ngay lập tức Hoặc chúng tôi có thể chỉ định DEFERRED để điền vào lần làm mới được yêu cầu đầu tiên.
LÀM MỚI [NHANH CHÓNG | HOÀN THIỆN | LỰC LƯỢNG] Có ba tùy chọn ở đây. Mỗi tùy chọn được giải thích bên dưới

1) NHANH CHÓNG:Đang thử làm mới nhanh. Nếu các bản ghi chế độ xem cụ thể hóa không có trước các bảng nguồn, thì việc tạo không thành công.


2) HOÀN THÀNH:Phân đoạn bảng hỗ trợ chế độ xem cụ thể hóa được cắt bớt và tạo lại hoàn toàn bằng cách sử dụng truy vấn được liên kết.


3) LỰC LƯỢNG:Cố gắng làm mới nhanh. Nếu không thể thực hiện được, quá trình làm mới hoàn toàn sẽ được thực hiện.

BẬT [CAM KẾT | NHU CẦU] Chúng tôi có thể chỉ định ON COMMIT để quá trình làm mới được kích hoạt bởi một thay đổi dữ liệu đã cam kết trong một trong các bảng phụ thuộc. Hoặc chúng tôi có thể chỉ định ON DEMAND để quá trình làm mới được thực hiện bởi một yêu cầu thủ công hoặc một tác vụ đã lên lịch.
[[BẬT | ĐÃ TẮT] QUERY REWRITE] Chế độ xem đủ điều kiện để ghi lại truy vấn
CREATE MATERIALIZED VIEW mv_test
BUILD IMMEDIATE
REFRESH complete
ON demand AS
SELECT EMP.EMPNO,EMP.ENAME, DEPT.DEPTNO,DEPT.DNAME
FROM EMP,DEPT
where EMP.DEPTNO= DEPT.DEPTNO;

Làm mới chế độ xem cụ thể hóa

Chúng tôi có thể làm mới chế độ xem cụ thể hóa thông qua gói PLSQL DBMS_MVIEW

Gói DBMS_MVIEW chứa ba API để thực hiện các hoạt động làm mới:

DBMS_MVIEW.REFRESH

Làm mới một hoặc nhiều chế độ xem cụ thể hóa.

DBMS_MVIEW.REFRESH_ALL_MVIEWS

Làm mới tất cả các chế độ xem cụ thể hóa.

DBMS_MVIEW.REFRESH_DEPENDENT

Làm mới tất cả các dạng xem hiện thực hóa phụ thuộc vào một bảng chính được chỉ định hoặc dạng xem cụ thể hóa hoặc danh sách các bảng chính hoặc dạng xem cụ thể hóa.

EXECUTE DBMS_MVIEW.REFRESH('MV_TEST','C');
Here C stands for Complete refresh

Nếu bạn cố gắng làm mới nhanh, hãy sử dụng lệnh bên dưới

EXECUTE DBMS_MVIEW.REFRESH('MV_TEST','F');
Here F stands for fast Refresh

Nó sẽ xuất hiện lỗi, vì không có nhật ký chế độ xem cụ thể hóa. chúng tôi sẽ kiểm tra nhật ký xem cụ thể hóa bên dưới

Với Oracle 12c, Oracle đã giới thiệu API DBMS_SYNC_REFRESH mới để làm mới

Oracle Materialized View Log là gì

Khi các thay đổi DML được thực hiện đối với dữ liệu bảng chính, Cơ sở dữ liệu Oracle lưu trữ các hàng mô tả những thay đổi đó trong nhật ký chế độ xem cụ thể hóa và sau đó sử dụng nhật ký chế độ xem hiện thực hóa để làm mới các chế độ xem cụ thể hóa dựa trên bảng chính. Quá trình này được gọi là làm mới gia tăng hoặc nhanh chóng. Nếu không có nhật ký chế độ xem cụ thể hóa, Cơ sở dữ liệu Oracle phải thực thi lại truy vấn chế độ xem cụ thể hóa để làm mới chế độ xem cụ thể hóa. Quá trình này được gọi là làm mới hoàn toàn. Thông thường, làm mới nhanh mất ít thời gian hơn làm mới hoàn toàn.

Nhật ký dạng xem cụ thể hóa nằm trong cơ sở dữ liệu chính trong cùng một lược đồ với bảng chính. Một bảng chính chỉ có thể có một nhật ký dạng xem cụ thể hóa được xác định trên đó. Cơ sở dữ liệu Oracle có thể sử dụng nhật ký dạng xem cụ thể hóa này để thực hiện làm mới nhanh chóng cho tất cả các dạng xem cụ thể hóa có thể làm mới nhanh dựa trên bảng chính.

Để làm mới nhanh một chế độ xem kết hợp đã được hiện thực hóa, bạn phải tạo nhật ký chế độ xem cụ thể hóa cho từng bảng được tham chiếu bởi chế độ xem cụ thể hóa.

Làm mới nhóm

Nhóm làm mới là một tập hợp của một hoặc nhiều khung nhìn cụ thể hóa mà Oracle làm mới trong một giao dịch nguyên tử, đảm bảo rằng các mối quan hệ giữa các bảng chính được giữ nguyên

Ví dụ:

CREATE MATERIALIZED VIEW mv_test
TABLESPACE test_data
BUILD IMMEDIATE
REFRESH complete ON COMMIT AS
SELECT a.name,b.salary FROM [email protected]_LINK a, [email protected]_LINK b where a.emp_id=b.emp_id;CREATE MATERIALIZED VIEW mv_test
TABLESPACE test_data
BUILD IMMEDIATE
REFRESH force ON COMMIT AS
SELECT a.name,b.salary FROM [email protected]_LINK a, [email protected]_LINK b where a.emp_id=b.emp_id;CREATE MATERIALIZED VIEW LOG ON emp;exec DBMS_REFRESH.MAKE(name=>'test_grp', -
list=>'test_mv1,test_mv2','mv_test' -
next_date => sysdate, -
interval => 'null');

exec DBMS_REFRESH.REFRESH('test_grp');

Cách kiểm tra trạng thái của chế độ xem Vật liệu hóa

SELECT MVIEW_NAME, STALENESS, LAST_REFRESH_TYPE, COMPILE_STATE
FROM USER_MVIEWS ORDER BY MVIEW_NAME;

Tùy chọn làm mới ngoài vị trí cho Chế độ xem cụ thể hóa

Với 12c Release 1, một tùy chọn làm mới mới có sẵn để cải thiện tính khả dụng và hiệu suất làm mới chế độ xem cụ thể hóa. Tùy chọn làm mới này được gọi là làm mới ngoài vị trí vì nó sử dụng các bảng bên ngoài trong quá trình làm mới thay vì làm mới "tại chỗ" hiện có áp dụng trực tiếp các thay đổi cho bảng vùng chứa chế độ xem cụ thể hóa. Tùy chọn làm mới không phù hợp hoạt động với tất cả các phương thức làm mới hiện có, chẳng hạn như FAST ('F'), COMPLETE ('C'), PCT ('P') và FORCE ('?').

Làm mới ngoài vị trí đặc biệt hiệu quả khi xử lý các tình huống có lượng lớn thay đổi dữ liệu, trong đó các câu lệnh DML thông thường không mở rộng quy mô tốt. Nó cũng cho phép bạn đạt được mức độ sẵn sàng rất cao vì các khung nhìn cụ thể hóa đang được làm mới có thể được sử dụng để truy cập trực tiếp và ghi lại truy vấn trong quá trình thực thi các câu lệnh làm mới.

Khi làm mới không đúng vị trí, toàn bộ hoặc các phần bị ảnh hưởng của chế độ xem được vật thể hóa được tính vào một hoặc nhiều bảng bên ngoài.

exec dbms_mview.refresh('MV_TEST', out_of_place=>true, atomic_refresh=>false)
;

Sự khác biệt giữa Chế độ xem Vật liệu hóa và Chế độ xem Oracle

Như đã giải thích ở trên Chế độ xem 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 khi chúng được truy cập. Trong chế độ xem không có tập hợp kết quả nào được lưu trữ và nó truy cập vào bảng bên dưới mỗi khi chế độ xem được truy cập

Cũng đã đọc
Oracle tham gia
truy vấn con của Oracle
https://en.wikipedia.org/wiki/Materialized_view


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Nhập tệp trong Oracle Apex bằng wwv_flow_files

  2. Cách nhanh nhất để kiểm tra xem một số bản ghi trong một bảng cơ sở dữ liệu?

  3. Cơ sở dữ liệu Oracle được xây dựng sẵn để học và thử nghiệm bằng Oracle Developer VM

  4. số hàng tăng lên khi giá trị của trường thay đổi trong Oracle

  5. Tổng hợp kết nối ODP.NET:Cách biết kết nối đã được sử dụng hay chưa