대용량 테이블 업데이트 및 관리에 대해 0 4 1,235

by 아싸헛스윙 [Oracle 기초] [2020.03.04 09:18:24]


안녕하세요. 대용량 테이블 업데이트 시 문제점이 있어 문의드립니다.

약 400만 건이 저장되어있는 테이블이 있는데 약 1000명의 유저가 3초마다 해당 테이블에 업데이트가 발생하고 있습니다.

데이터량이 많은지 db서버의 cpu점유율이 매우 높으며, lock이 잠깐씩 보이는데 이러한 경우 어떻게 대처하는지 궁금합니다.

DB지식이 깊지않은 후배에게 동무 부탁드립니다.

(지금 드는 생각은 특정일 기준으로 테이블을 분할하여 관리할지, where 조건에 인덱스를 잡아주면 어떨지 하는 생각은 하고 있습니다.)

감사합니다!

 

ps. 업데이트는 1건씩 진행되는데 그 조건문이 pk는 아니며, 인덱스가 구성되어 있지않습니다.

by 마농 [2020.03.04 09:52:22]

인덱스가 필요해 보입니다.


by 아싸헛스윙 [2020.03.04 12:43:41]

답변감사합니다.

인덱스 추가 시 select는 개선되는데

insert, update와 delete는 오히려 늦어진다고 잘못알고있었나보네요..

update 자체도 select 후 진행되는거니까 인덱스추가하면 개선이 되는걸까요?


by 마농 [2020.03.04 13:08:08]

네. 생각하신 대로입니다.
조건에 맞는 자료를 찾아 갱신하는데 인덱스가 없다면?
1건의 자료를 갱신하기 위해 전체 자료를 다 뒤지겠죠.


by 아싸헛스윙 [2020.03.04 14:55:05]

매번 좋은 답변 감사합니다.

행복하세요.

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