한마디로 골때리는 프로그램을 만들고 있습니다.
많은 부분을 고객과 싸워서 어느정도 저의 편의대로 진척을 했었는데...
갑자기 돌변하여 반드시 구현해야만 하는 것이 다시 생겼더랬습니다...
우씨~ 수천만개의 데이타... 버튼 클릭 한번의 액션으로 가져와야하는 데이타는 그래도 20만개는 된다는... ㅠ.ㅠ
어찌되었던 다른 연산부분은 해결했는데...
결국엔 Tree형태로 자료배열을 보여달라는 고객의 요구가 문제더군요...
일반 For 루프문으로 8만개의 TreeNode를 만들어봤습니다. 그리 복잡하지 않은 계산만으로 그냥 생성만 하여 같다 붙이는데도 7초 가량 걸리는군요...
근데 DB와 연동하여 Tree형태로 표현하려니 말도 안되는... ㅠ.ㅠ
20만개의 노드를 DB에서 가져와서 모두 TreeNode로 만들어서 붙인다...
UI측 관점에서 꽁수를 써볼려고 해도...
"반드시!" 란 조건이 뭔가 하면 최초 EndUser에게 보여질땐 FullExpand모드라야 한답니다.
FullCollapse나 부분적인 노드가 Collapse가 되면 절대 안됩니다.
20만개의 데이타를 가져와서 Tree형태로 자료를 보여줘야 합니다.
그리고 무조건, 반드시 FullExpand라야 합니다.
일반 TreeView로는 힘들겠죠?
웅...
어디 좋은 꽁수 없나요?
뭐 개발 외적인 부분에서 접근하여 위의 구현을 안해줄수도 있지만, 그건 나중에 역효과가 날것 같아서 젤 마지막 방법으로 할려고 하거든요...
여러분의 의견 부탁드릴께요... ^^
-ps-
다른곳에서 의견을 물어보니...
어떤 분은 관점을 바꾸라고도 하셨고, 설계를 바꾸라고도 하시지만 사실 어림도 없는 상황입니다.
왜냐구요? 트리구조와 관련된 테이블은 하나 밖이거든요...
code int, -- 자기코드
pcode int, -- 부모코드
vtitle char(8), -- 제목
hap int -- 합산데이타
위의 구조에서 둘로 나누기도 힘들겠죠?
때문에, 큰 데이터를 처리하는데에 시간은 EndUser 나
개발자 분이나, 인정을 하셔야 한다고 생각됩니다.
물론 EndUser 쪽에서, 전산 마인드가 부족한 사람이라면
할말없지만.. 어쩃든, 데이타가 크면 클수록 처리시간은
길어진다는 단순한 원리를 서로가 인식해야 겠죠..
서로가 그런 이해속에 있을때, 개발자는 똑같은 처리시간을
줄일수 있는 방법(예:sql 조인을 줄인다.. 등 빠른 컴포넌트
를 구한다...등등..) 으로 시간을 줄일수 있을만큼에 작업을
하시면 된다고 생각합니다.
트리뷰의 고속 처리를 원하시면 델파리 기본 트리뷰보다는
Fasttreeview인가?.. 다른 고속 트리뷰 컴포넌트를 찾아보시면
많습니다. 저도 비슷한 경우가 있어서 옛날에 속도를 올렸던
적이 있는데... 하여튼, 토리 사이트 등등에서, 빠른 트리뷰
컴포넌트를 찾아보시기 바랍니다.
조금이라도 도움이 됬나 모르겠네요.. ^^
from Neosiz.com