저같은 경우는 누계액 필드는 별도로 두지 않고, Select할 때 계산된 값을 보여주곤합니다.
그렇게 하면 일단 수정과 삭제시 별도의 업데이트가 필요없기 때문에 수정, 삭제시 사용자가 느끼는 속도는 그렇게 느리지 않을꺼고요...(경험상 조회(Select)할 때 좀 걸리는 건 사용자들이 왠만큼 참지만 빈번하게 하는 추가, 수정, 삭제시 시간이 걸리면 바로 태클들어오더라고요~~~ ㅡ.,ㅡ;)
데이타가 쌓이다 보면 누계액을 계산하는데 부하가 많이 걸리기 때문에 중간에 집계테이블(월마감같은...)을 두어서
관리를 하죠...
다른 분들께서는 어케들 하시는지요? ^^
참고로 전 왠만하면 트리거는 잘 안씁니다.
DB의 시스템을 많이 잡아먹고, 개인적으로 유지보수하기에도 은근히 껄끄럽더라고요..(머리가 나빠서 프로그램 코드상에서 직접 보이지 않으면 도통 못 찾는다는 후문이...^^)
델리존 님이 쓰신 글 :
: 지금 firebird1.5.2..를 사용하고 있는데,
: 데이타가 100건이상을 한번에 수정을 하게 되면 속도가 느리게 되어 DB를 전체적으로 다시 설계하고자 합니다.
:
: =========================================================================================
: 예를 들어,
: 매출과 입금 데이타가 많아질 수록 누계를 해서 저장하는데 있어서 속도가 느껴질 정도로 느려 지게 됩니다.
: 몇건되지 않을 때는 문제 없지만,....
:
: 매출액 |입금액 | 누계액
: 1000 | | 1000
: | 500 | 500
: 2000 | | 2500
: ___________________
: ... 매출액을 수정하게 되면 전 데이타의 누계 결과를 수정해야 되는 일에 있어서...
:
: ==========================================================================================
:
: 그래서 이런 저런 방법을 구사해 봤는데,...
:
: 해결책이 없어서 DB의 성능을 최대한 올릴 수 있는 방법으로 설계하고 싶습니다.
: 프로그램 다 개발해 놓고,
: 이 문제 땜시 고생입니다.
:
: 고수님들 꼭 좀 도와 주세요. ^^
:
: *** 혹시, 트리거나 젠느레이터 사용이 속도에 어떤 영향을 미치는지요.
: *** 1.5 사용하는데 2.0을 사용해 보는게 좋습니다. 변경시 문제점은 없는지요
: *** 프로그램 코딩에서 주의사항도 있음 가르쳐 주세요.
:
: 뭐... 이런 저런 좋은 글 올려 주시면 감사하겠습니다. 많은 초보들에게 좋은 정보가 될것 같습니다.
|