오라클 view 성능문의 0 4 8,616

by 어려운문제 [Oracle Tuning] [2018.09.12 19:43:49]


안녕하세요. 

상품정보를 view 로 만들려고 하는데

View를 쓰면 성능이슈가 있다라고 말이 나와서 검색을 해봐도 나오는게 없어서 문의 드립니다.

테이블 4개정도를 조인하는 쿼리를 view를 만들어서 조회하는거와 Select 쿼리를 실행하는 하는거가

메모리나 캐시 등등 성능상 이슈 될만한게 있을까요?

 

by 열심열심 [2018.09.13 08:46:49]

거의 차이 없다고 생각하셔도 될 것 같네요

통계같은 경우 Mview 사용 시 성능이 향상되기도 하구요. 


by 우리집아찌 [2018.09.13 09:05:44]

view는 sql과 동일하다고 생각하시면 됩니다. 다만 최적화 되어있어야합니다.

mview는 조금 다릅니다. 데이터가 물리적인 저장공간에 저장됩니다.

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


by 창조의날개 [2018.09.13 09:56:03]

성능상의 이슈는 보통 view를 잘못 알고 쓰는 경우 많이 발생합니다.

혹자는 view를 view테이블이라고 부르면서 마치 테이블인냥 사용합니다.

그러다보니 where조건을 줄때 인덱스도 고려하지 않고 쓰기도 하고

view를 생성할때 where조건을 넣어서 인덱스를 활용 할 수 없도록 만들어 버리기도 합니다.

결론적으로 잘 알고 쓰면 좋지만 잘못 쓰면 오히려 문제의 소지가 있겠네요.

그렇다보니 그냥 view 쓰지 말라고 해 버리는 경우가 있는거 같네요.


by jkson [2018.09.13 18:37:17]

뷰에 집합연산, 계층쿼리, rownum, 집계함수 등을 사용하면 뷰머징이 안 되고 따라서 의도치 않은 실행계획으로 풀리기도 합니다.

뷰 안으로 조건절이 침투해야 하는데 뷰에서 해당 컬럼을 가공해놓으면 인덱스 활용도 안 되고요.

어떤 dba들은 그래서 union all을 쓴다든지 여러 테이블이 조인된다든지 하면 뷰를 잘 생성 안 해주려고 하지요.

잘 알고 써야 하는데 잘 모르고 뷰를 생성하기 때문에 뷰는 성능이 안 좋다고 하는 겁니다.

뷰는 그냥 쿼리일 뿐입니다. 잘 알고 사용하시면 됩니다.

잘 알기 위해서 공부를 해야겠죠^^;

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