2012-05-07 8 views
1

Oracle 데이터베이스에서 특정 시간 간격으로 자동으로 새로 고쳐질 수있는 구체화 된 뷰를 생성 할 수 있습니다. 인덱싱 된 뷰 또는 다른 기술을 사용하여 SQL Server에서 어떻게 구현할 수 있습니까? 기본 테이블이 매우 커서 기본 테이블의 변경이 자주 발생합니다.특정 시간에 자동으로 컴파일되는 인덱싱 된 뷰 생성

답변

1

내가 이해하는 한, 인덱스 된 뷰는 항상 현재 결과를 반환합니다. 기본 데이터가 변경되면 DBMS가 자동으로보기를 새로 고치므로 업데이트를 예약 할 필요가 없습니다.

색인보기를 유지 관리하는 오버 헤드가 발생하지 않도록하려면 필요하지 않은 동안 색인보기를 삭제 한 다음 다시 사용하십시오 (예 : 일일/주간/월간보고 실행 전에).

+0

기본 테이블이 매우 큰 경우는? – kinkajou

+1

인덱싱 된 뷰 생성 오버 헤드 및 시간을 벤치 마크합니다. 오라클이 허용하는주기적인 업데이트는 MSSQL이 제공하는 옵션보다 훨씬 융통성이 있습니다 (인덱스 된 뷰를 최신으로 유지하기 위해 약간의 오버 헤드가 발생하거나 필요에 따라 주기적으로 전체 오버 헤드가 발생합니다). MSSQL은 인덱싱 된 뷰를 주기적으로 업데이트하기 위해 점진적으로 오버 헤드의 일부를 발생시키는 옵션을 제공하지 않습니다. 정말로 필요한 경우 한 가지 옵션은 주기적으로 자신을 업데이트하는 표를 사용하는 것입니다 (예 : 저장 프로 시저를 예약하여 –

+0

시도해 줘서 고맙습니다. :) – kinkajou

0

이 작업은 스크립트와 SQL Server 에이전트 작업의 조합을 사용하여 수행 할 수 있다고 생각합니다. 인덱스에서 재구성/다시 빌드 작업을 스크립트 아웃하면 동일한 스크립트를 사용하여 SQL Server 에이전트 작업에 연결하여 일정에 따라 실행할 수 있습니다.

다른 옵션은 데이터베이스 유지 관리 계획을 살펴 보는 것입니다. 기본 테이블의 크기에 따라 파티션 된 인덱스를 만들어 인덱스 유지 관리를보다 쉽게 ​​수행 할 수 있습니다.

관련 문제