DB 튜닝은 참 어려운거같습니다. 0 4 1,406

by 겸둥이k [Oracle Tuning] [2021.12.14 10:27:34]


안녕하세요. DB 튜닝 프로젝트를 하고있는 개발자입니다. 처음 이프로젝트를 하면서 튜닝에 대해서 잘 모른상태에서  튜닝을할려고하니 정말 미치겠더라구요. 일단 DB 구조가 엉망이고 이라서 이걸 튜닝하는데 정말 애쓰고있습니다. ㅠ

그래도 DB튜닝을 해보신분한테 배워서 지금은 탈없이 프로젝트 중간단계까지 왔습니다. 

튜닝을 공부하면서 느낀점은 튜닝은 정말 케바케 정답이 없는거같습니다. 

제가 지금까지 튜닝하면서 느낀점을 적어보겠습니다.

첫번째 .드라이빙 테이블을 줄여라

-최초 드라이빙 테이블 건수를 줄여야 조인할때도 최대한 건수를 줄일수있다.

두번째. 최대한 조인을 사용하지말고 서브쿼리를 사용해라 

- 해당 프로젝트 쿼리들을 보면 조인이 보통 4~5개가 기본입니다. 쓸때없는 조인을 없애고 서브쿼리를 사용하니 속도가 어느정도 나오더라구요. 

하지만 보여주는 컬럼이많으면 서브쿼리를 많이 사용해도 X  

세번째.인덱스,파티션 다사용해도 속도가 안나온다면 통합테이블을 사용해라

-저는 기존에 인덱스가 다잡혀있어 거기서 더 추가하니 문제가 생기더라구요 그래서 마지막방법!!! 통합테이블  이방법은 실시간데이터는 아닙니다. 조회쿼리를 한 테이블에 데이터를 저장하고 그걸 배치나 ,업데이트를 시켜 보여주는 방법입니다. 보통 통계치를 낼때 자주 사용한다고 하더라구요 .

네번쨰. 담당자와 협의후 몇년치 데이터만 넣어라 

- 이부분도 고객과 잘협의가 된다면 이방법도 좋은방법이라고 생각합니다.

  이방법을 사용할려고했지만 저는 DB구조,업무가 엉망이라 날짜기준을 무슨데이터로 잡아야할지  ㅠ

누가보면 이 튜닝방법이 당연한걸수 도 있지만 그 당연한게 어렵더라구요 저는 ㅠ

위에 방법 말고 더 좋은 튜닝방법이 있을까요. 혹시 책을 보면 더 좋은 팁들이 있을까요? 

좋은 답변들 부탁드립니다.

by 마농 [2021.12.14 11:06:19]

다른 부분은 어느정도 수긍이 가는데. 서브쿼리 부분은 수긍이 안가네요.
다른 부분들은 일반적인 사항이라 특수한 몇몇 경우만 제외되는 상황인데.
서브쿼리 종류도 다양하고 그야말로 케바케 인데 일반화 하기는 어려울 것 같습니다.


by 겸둥이k [2021.12.14 11:41:35]

답변감사합니다.

제가봐도 서브쿼리가 무조건 좋다라고 보이네요

제가 사용한 서브쿼리는 주로 스칼라서브쿼리입니다.

당연히 말씀하신데로 조인,서브쿼리 케바케죠 ㅎㅎ

혹시 마농님은 튜닝공부를 어떤식으로 하셨을까요?


by Zdlra [2021.12.16 15:44:42]

Exa POC 해보면서 스칼라 서브쿼리 사용시 성능이 오히려 안좋아지는 경우가 많았습니다. 어느 oracle ACS 분의 의견으로는 스칼라서브쿼리를 오히려 쓰지말라고하더라구요. 절대적인건 없는 것 같네요


by 겸둥이k [2021.12.27 08:34:23]

역시나 케바케인거죠 ㅎㅎ

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