당연한 말이겠죠?
만약 TEST라는 테이블이 있습니다.
create view [dbo].[uv_TEST]
as
select * from TEST
go
이렇게 해서 뷰테이블을 생성했습니다.
select * from TEST
go
select * from uv_TEST
이렇게 조회를 하게 되면 결과는 똑같게 나옵니다.
여기서 궁금한게 생겨요. 이 TEST테이블의 특정컬럼을 주기적으로 update가 자주 일어날 것을 염두해서 이와동일한 뷰테이블을 만들어
특정 app에서는 뷰테이블에서 select만을 하게 하고 update하는 특정app는 Base Table을 이용하게 했는데...
옆에분 얘기를 들어보니 뷰테이블을 조회하는건 원본테이블을 조회하는 것이기 때문에 의미없는 행위라고 해서
이게 과연 맞는 것인지 궁금해서 질문을 드려봅니다.
SQL Server Profiler를 이용해서 보면 위 두군문의 select가 각각 이루어지는것을 확인하였는데 정말 한 테이블을 핸들링하는거랑 차이가 없는걸까요?
정말 궁금합니다. 전 그동안 위 처럼 뷰테이블 사용하면 DB Lock이 안걸리는 줄로만 알았거든요.
어쩌면 참 기본적인거인데 저에겐 오늘 특별히 중요한 문제로 다가오네요.
|