it-source

뷰 열에 인덱스를 만들 수 있습니까?

criticalcode 2023. 7. 30. 17:54
반응형

뷰 열에 인덱스를 만들 수 있습니까?

보기에 인덱스를 만들 때 다음 오류가 표시됩니다.

ORA-01702: 여기서는 보기가 적합하지 않습니다.

create view xx_emp for select * from emp; 

그 이유는 무엇입니까?

보기 위에 인덱스를 만들 수 없습니다. 이는 쿼리에 불과합니다.

대신 구체화된 보기에 대한 인덱스를 작성할 수 있습니다.구체화된 뷰는 뷰를 평가하여 작성된 테이블로, 테이블 위에 인덱스를 작성할 수 있습니다.그러나 구체화된 뷰는 정의된 기본 테이블의 각 수정에 대해 업데이트되지 않으므로 다음 작업을 수행해야 합니다.REFRESH다시 계산해야 할 때입니다.

TABLE 열에 인덱스를 정의합니다(예: EMP).EMP_ID)

create index emp_idx on emp (emp_id);

보기를 쿼리하는 동안 사용합니다.

select * from xx_emp where emp_id = 1;

이는 복잡한 보기에서는 작동하지 않지만 단순한 경우에는 인덱스가 데이터에 액세스하는 데 사용됩니다(대부분의 경우).

사용할 수 있습니다.INDEXED VIEW다른 키워드SHEMABINDING자세한 내용은 MSSQL에서 확인하십시오. https://dbtut.com/index.php/2019/03/24/what-is-indexed-view-in-sql-server-and-how-to-create-an-indexed-view/

언급URL : https://stackoverflow.com/questions/31189274/is-it-possible-to-create-index-on-view-columns

반응형