2010-06-26 2 views

답변

4

조회수는 창과 비슷하지만 테이블에있는 항목을 볼 수 있습니다. 그들은 테이블이나 그와 비슷한 것의 사본을 가지고 있지 않습니다.

열 추가 또는 제거와 같이 테이블의 정의를 변경하는 경우보기를 다시 작성해야합니다. 그러나 삽입/업데이트/삭제를 수행하는 중이면 모든 것이 올바르게 작동합니다.

+0

"삽입/업데이트/삭제 만하는 경우 모든 것이 올바르게 작동합니다." 나는 기본 테이블에보기를하지 않고, 심지어 모든 일이 잘 될 것인가? – user287745

+0

@ user287745 : 예. –

+1

SQL Server의 인덱싱 된 뷰 또는 다른 RDBMS의 구체화 된 뷰는 실제로 데이터의 복사본을 저장하지만 실제로는 복사본이 항상 최신 상태로 유지됩니다. –

1

보기가 자동으로 다시 계산됩니다. 이 문제가 발생하면 사용중인 특정 엔진에 따라 다릅니다 (읽기 : SQL Server 2005의 경우 단서가 없습니다).

1

실제로보기는 미리 작성된 선택문입니다.

특정보기에 대해 데이터베이스를 호출 할 때마다 select 문이 실행되고 기본 테이블의 현재 데이터 집합이 반환됩니다.

누군가 다른 사람이 데이터 표를 변경하지만보기에 대한 새로운 요청을하는 즉시 변경 사항을 볼 수있는 경우 애플리케이션 프런트 엔드에 실시간 변경 사항이 표시되지 않습니다.

+1

SQL Server의 인덱싱 된 뷰에는 완전히 해당되지 않습니다. 실제로 뷰의 결과에 포함 된 데이터를 디스크에 저장합니다. 그들은 단지 미리 쓰여진 선택 진술이 아닙니다 ... –

+0

"효과가 있음"은 "here be dragons ..."입니다. D 질문의 맥락에서 색인 된보기는 변경 사항을 반영하지 않습니다. 다른 사용자가 다시 실행될 때까지 어쨌든 정상적인보기를 위해이 작업을 수행해야하므로 차별화가 필요하지 않을 수 있습니다. 그러나 명확성과 추가 설명을 위해 +1 - 특정 질문에 답할 때 잊어 버리는 내용. – melkisadek

+0

감사합니다.하지만 불행히도 단 하나만 대답으로 표시 할 수 있습니다 :-) – user287745

관련 문제