반영구적으로 사용하는 View의 Table과의 차이에 대해 질문드립니다 0 4 1,781

by yetiinnexx [DB 모델링/설계] view table [2021.04.19 13:44:54]


안녕하세요! 

데이터 분석가로 일하며 이번 직장에서 처음으로 데이터 엔지니어와 처음 협업을 하게 되며 요청사항을 정리하고 있는데, DB 설계 관련해서 지식이 많지 않아 궁금증이 생겼습니다.

table과 view는 다르다고 배웠는데 이전 직장과 현재 직장에서 모두 뷰를 거의 테이블처럼 저장해놓고 반영구적으로 사용하는 경우를 봤습니다.

그런데 이 view들의 경우 거의 집계값들이 필드로 들어가 있고, view 간에는 중복된 집계값이 많습니다. 

예를 들어 viewA에서는 A 상품 카테고리에 대해 고객의 성,연령 비율을 보는 필드가 있고 viewB에서는 B 상품 카테고리에 대해 성, 연령 비율을 보는 필드가 들어가는 식으로, 사실상 거의 비슷한 측정값들이 대상만 다르게 해서 수십 개의 view로 나뉘어 있습니다. 

1. view와 table의 차이를 검색해보면, view는 테이블과 달리 물리적 공간을 차지하지 않는다고 배웠는데 계속 저장해두고 사용해도 그런지

2. 많은 view를 만들어서 사용하는 것이 이점이 있는 경우들이 무엇인지

3. 혹시 중복된 컬럼이 많은 뷰를 남발하는 데에서 오는 문제가 있지는 않은지 궁금합니다.(관리의 문제? 혹은 저장공간의 문제?)

가 궁금합니다. 

감사합니다

by 샤랄라 [2021.04.19 17:08:51]
1. 오라클의 경우 Materialized View(일명 MVIEW) 가 존재합니다. 물리적 저장공간을 갖는 View란 거죠

2. MVIEW를 사용했다면 아마 조회 성능 향상을 위해서 사용했을걸로 추측됩니다.

3. 저장공간 사용은 추가적으로 발생하겠네요~



아래 링크 참고해보세요~

http://www.gurubee.net/lecture/1857
http://www.gurubee.net/lecture/1858
http://www.gurubee.net/lecture/1859

 


by yetiinnexx [2021.04.20 20:23:42]

Materialized View라는 개념을 지나가면서 들어보긴 했는데, 자주 사용하는 집계값 데이터를 일종의 중간 테이블처럼 저장해두는 것이군요.

그럼 MVIEW의 데이터는 업데이트를 할 수 없는 것인가 했더니 올려주신 링크에서 REFRESH 기능이 업데이트에 대한 옵션이 있네요. 테이블 자체를 건드는 건 조심스러우면서도 대량의 데이터에 대해 매번 쿼리를 날리고 기다리는 것은 시간과 스캐닝 비용의 걱정이 있었는데, MVIEW도 잘 활용해봐야겠습니다.

올려주신 답변과 링크 모두 공부가 많이 되었습니다. 감사합니다!


by 마농 [2021.04.20 09:14:19]

1. 뷰는
- 데이터가 저장되는게 아니라 쿼리가 저장되는 것입니다.
- 뷰 조회시 저장된 쿼리가 실행되는 것입니다.
2. 많은 view를 만들어서 사용하는 것이 이점이 있는 경우
- 이미 작성되어 있는 쿼리를 이용하므로 별도 쿼리를 작성할 필요가 없겠네요.
3. 혹시 중복된 컬럼이 많은 뷰를 남발하는 데에서 오는 문제
- 실제 데이터 중복은 없으므로 데이터 관점에서는 전혀 문제가 없습니다.
- 다만 관리적인 관점에서는 많은 뷰를 관리하는 문제가 있긴 하겠네요.
http://gurubee.net/lecture/1036


by yetiinnexx [2021.04.20 20:28:14]

윗분 설명과 합쳐서 생각하면, 일반적인 뷰라면 쿼리만 저장되어 있다가 조회 시 쿼리가 실행되므로 시간은 조금 더 걸리지만 어쨌든 쿼리를 재사용 & 별도의 저장공간을 차지하지 않는다는 장점이 있겠군요.

뷰가 매우 많은 것이 데이터적으로 문제가 없다면, 아마도 새로 온 분이 수십 수백 개 뷰를 만든 쿼리를 파악하고 관리 해야 한다는 부담이 있는 정도겠네요^^;; 

답변 감사드립니다! 오랜 궁금증이었는데, 질문하기를 잘 한 것 같습니다.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입