view를 생상하면 원본 데이터가 변경될 때 자동으로 변경된 내용이 select할때 view에 보이게 되는건지요?
아니면 view 자체를 다시 생성해야 새로운 값이 view로 볼수 있는건가요?
일반 view는
쿼리를 미리 정의해놓은 거라 생각하시면 됩니다.
공통적으로 여기저기서 사용해야 하는 쿼리를 뷰로 만들어놓으면
쿼리를 그때그때 작성하지 않아도 편하겠지요.
업무를 잘 모르는 개발자도 그 업무를 잘 아는 개발자가 만들어놓은
뷰를 사용하면 개발 속도도 빨라지겠고요.
결론은 데이터가 변경되면 view로 select해도 당연히 변경된
데이터가 select됩니다.
다만 실체화뷰(meterialized view)는 원본데이터를 주기적으로,
혹은 데이터 변경시마다 원본과 다른 물리 공간에 데이터를
적재하는 개념으로(마치 별개의 테이블처럼..)
일반 view를 사용하기에는 사용자 요청(select)도 많고
view 쿼리 자체가 매우 무거워서 성능적으로 문제가 될 때
사용합니다.
원본 db에서 데이터가 변경되면 meterialized view는
view를 refresh 해주어야만 view에 반영이 됩니다.
이 경우에도 view를 새로 생성하는 게 아니라 동기화만
하는 개념입니다.
아주 명쾌하군요.
뷰를 다시 생성해야 한다는 말을 하는 사람이 있어서 좀 헷갈렸습니다. 고맙네요.