게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
Insert, Delete 매일 발생하는 테이블 index 관리는 어떻게
게시물ID : programmer_21656짧은주소 복사하기
작성자 : 후천적평발
추천 : 0
조회수 : 463회
댓글수 : 4개
등록시간 : 2017/11/09 16:31:58
옵션
  • 본인삭제금지
안녕하세요..
DB는 오라클입니다.


Insert, Delete 매일 발생하는 테이블 index 관리는 어떻게 해야하나요?
현재 테이블은 60만건이고, 하루에 만건씩 입력됩니다. 오픈한지 이제 한달됐네요..
삭제도 몇건인진 모르겠지만 종종 발생하구요..
고객사가 늘어날수록 더 데이터가 많아질 예정이에요..

insert와 delete가 잦으니 기존엔 index를 안썼는데요.
그냥 조회하니 너무 느리길래 인덱스를 태웠습니다..
근데 하루 이틀 지나면 또 금새 느려지고.. 매번 인덱스 리빌드를 할수는 없고...

테이블을 나누는게 맞는데.. 다른팀에서 원치않고..(자기네꺼 다 수정해야하니..)

오래된 데이터는 분리하고 한달치만 보관한다던가 하고 싶어도 그것도 반대하고...

개선방안에 대한 의견 부탁드리겠습니다~~
전체 추천리스트 보기
2017-11-09 19:21:30추천 0
oracle 은 잘 모르겠지만 mysql 에서는 partitioning 을 통해 성능을 올렸던거 같습니다.
물리적으로 분할해주는거에요.
mysql 에 있는게 oracle 에 없을거라 생각은 안되니 있을듯 합니다.
댓글 1개 ▲
2017-11-15 15:45:31추천 0
답변감사합니다. 한번 검색해봐야겠네요!
2017-11-10 13:21:18추천 0
날짜를 기준으로 최근 데이타만 자주 접근한다면 윗분 말씀처럼 파티셔닝 하는것도 방법이구요.

근데 제가 봤을때 문제는 다른곳에 있는걸로 보이는데요. 100만건도 안되는 테이블인데 그게 느리다면, DB를 조회하는 응용쪽에서 쿼리가 이상하게 짜여져 있을 가능성이 높은데요.

인덱스 문제는 처음에 빠르다가 점점 느려진다면 애초에 인덱스를 잘못 만든걸로 보이는데요.

100만건도 안되는 테이블 작업이 느리다면, 조회 쿼리나 테이블 구조를 먼저 확인해봐야 되는거구요.
이건 파티셔닝으로 해결안되고, 보다 근본적인 원인을 찾아야 해결될껍니다.
댓글 1개 ▲
2017-11-15 15:48:01추천 0
답변감사합니다.

근데 인덱스 생성 이후에 데이터를 계속 넣게되면, 재빌드 하지않는이상 인덱스가 느려지는게 당연한거 아닌가요?
DB초보이니 이해해주세요...

select도 단순하게 회사별, 날짜별, 사원별 sum 하는 수준입니다.
index는 조건절 순서로 걸어놨구요.
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호