Q&A

  • MIDAS관련 질문입니다..
기존 C/S방식의 프로젝트를 MIDAS로 전환하려고 합니다..

그런데 전혀 예기치 않은 상황이 발생했네요...

제가 처음부터 너무 호락호락하게 생각한 듯도 싶고요(-_-)

일단 전에도 MIDAS로 개발을 한 2년여 동안 했었거든요...

그런데 문제가 클라이언트에서 가져오려는 데이터량이 몇만건 이상이 되면

엄청나게 느려지는군요.........

제가 건성으로 MIDAS를 썼었던거 같네요...^^;;

MIDAS를 이용해서 프로젝트를 진행하는 분들에게 도움 좀 부탁드립니다..

제가 잘못 써서 그런건지..원래 MIDAS가 데이터양이 늘어나면 기하급수적(?)으로 속도가

느려지는 건지 ....감이 안 잡히네요.....

더운 날씨에 이 놈 때문에 생쑈를 하고 있습니다...

10만건이 넘어가면 거의 죽어버린 것처럼 맛이 가는군요.............................

"왜 그렇게 많은 데이터를 가지고 오지?"라고 말씀하신다면 유구무언입니다....그럴 일이 있거든요^^;

혹시 다른 분들께서도 이런 현상이 있다거나 하시면 조언 좀 부탁드릅니다....^^

그럼 즐프하세요..
2  COMMENTS
  • Profile
    타락천사 2005.07.22 19:29
    안녕하세요. 타락임다..

    MIDAS 에는 서버에서 데이터셋의 일부만 가져오는 기능이 있어요..

    가령 만개의 레코드면 천개의 레코드 받고, 또 천개의 레코드 받고... 반복하는 기능이 있어요..

    우선 일부만 받아서 화면에 뿌리고 사용자의 스크롤이나 화면 처리상 필요하면 차차 받아오게 하면...

    문제 없을 겁니다.

    제 업무가 바빠서 자료를 못 올리는네...

    누군가 올려놨을지 검색해 보세요...

    수고하세여.
  • Profile
    하얀까마귀 2005.07.19 09:15
    안녕하세요 하얀까마귀 입니다.

    아무래도 데이타 건수에 관련된 거라면 두가지 정도 생각이 드네요.

    하나는 네트워크이고 다른하나는 메모리 부분입니다.

    간단한 테스트용툴을 만들어서 테스트 해보시기 바랍니다..

    먼저 네트워크.. 3티어로 하시니 어플리케이션 서버에서 클라이언트로 넘어올때. 해당 데이타의 전송량이 어느정도 되는지 검사 해 보세요..

    또한 시간이 걸리는 부분이 정확히 어느부분인지도 검사해 보시기 바랍니다.

    예를 들어서 쿼리에서 open을 합니다.  음.. 1초도 안걸리는군...

    아시겠지만 여기서 query1.last; 한번 때리면 엄청난 시간이 걸립니다. 이유는 아시죠?

    물론 이건 네트워크 문제는 아니지만.. 먼저 만들어 놓으신 프로그램에서 딜레이 부분이 어디인지 정확히 분석하는게 먼저일듯 싶네요..

    두번째.. 아무래도 가장 의심이 드는건 메모리죠..

    일정 이상의 메모리를 사용하게 되면 하드디스크를 긁게 되니까.. 용량이 많이 커진다면 감당하기 힘들겠죠?

    음.. 서버만 말씀드리는건 아닙니다.

    DBGrid 는 특성상 모든 데이타를 그리지 않기 때문에 많은 량을 연결해도 메모리를 많이 먹진 않습니다만

    예로 TStringGrid 계열을 사용하셧다면 <-- 이놈은 데이타량이 늘어남에 따라 늘어나는 메모리의 양이 엄청납니다.

    그리고 데이타건수는 10만건인데 테이블의 크기가 커서 량이 많다던지....
    10만건 적은량은 아닙니다.  레코드당 1K 라면 100메가나 되죠..

    원격에서 100메가 다운받는 시간 and  Drawing 시간 만약 압축을 한다면 ( 당연히 해야겠죠? ) 압축시간 해제시간 등등.. 쉬운작업은 아니죠. 또한 당연히 100메가 이상의 메모리 여유공간도 있어야 하구요..

    기타등등.. ^^ 꼭 뭐가 문제다 라고 말씀드릴순 없지만.. 의심가는 부분은 많을듯 합니다.

    정확히 전송량 및 각각의 스템당 걸리는 시간등을 로그로 남겨 보세요.. 어느부분이 문제가 되는지 어느부분이 시간이 ㅁ낳이 걸리는지 아실수 잇을테고 문제해결을 위한 고민은 그 다음입니다.

    그럼..  즐프하세요


    • 심재용
      2005.07.20 19:51
      MemStream.position := 0;  <= 이 문장을 추가해 보세요. MemStream.ReadBuffer(...);
    • 하얀까마귀
      2005.07.20 02:12
      안녕하세요 하얀까마귀 입니다. 포인트 부분을 잘못쓰신것으로 보이네요.. Pointer형은 4byte 입니다...
    • 대박
    • 2005.07.19 22:24
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 서해근
    • 2005.07.19 22:10
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 권태훈
      2005.07.19 23:10
      챠트의 엑수축의 범위를 지정하면 됩니다.(x에 대한 min,max) 데이타가 많으면 꽤 느립니다. 엑수축 ...
    • 서해근
      2005.07.19 23:38
      정말 감사합니다 부자되세요 ^^
    • 최석종
    • 2005.07.19 04:24
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 주웰
      2005.07.19 22:10
      질문이 참 난해(!?) 하군요... 레포트를 그런식으로 뽑고 싶으신건지.. 아니면 어플리케이션에서 셀에 입...
    • 이강석
    • 2005.07.19 02:58
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 타락천사
      2005.07.22 19:29
      안녕하세요. 타락임다.. MIDAS 에는 서버에서 데이터셋의 일부만 가져오는 기능이 있어요.. 가령 만...
    • 하얀까마귀
      2005.07.19 09:15
      안녕하세요 하얀까마귀 입니다. 아무래도 데이타 건수에 관련된 거라면 두가지 정도 생각이 드네요. ...
    • KKAW
    • 2005.07.19 01:14
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 김종화
      2005.07.19 01:44
      MessageDlg('등록되지 않은 회원입니다. 등록하시겠습니까?', mtInformation, [mbYesNoCancel], ...
    • KKAW
      2005.07.20 00:53
      [mbYes, mbNo] 이렇게 하니까 에러 안뜨는 군요... 그런데 Yes를 선택할 경우랑 No를 선택할 경우 ...
    • 김종화
      2005.07.20 01:59
      아래와 같이 하시면 됩니다.. ^^;;     if MessageDlg('등록되지 않은 회원입니...
    • 강철
    • 2005.07.16 23:00
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 심재용
      2005.07.18 04:51
      파라메터의 종류가 다르기 때문입니다. IEXPLORE.EXE <파일명> 이러한 규칙에 의해 ShellExecu...
    • 유효근
    • 2005.07.16 13:10
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 유효근
      2005.07.16 13:23
      자문자답을 하네요.. ItemIndex 라는게 있군요..
    • 이승근
    • 2005.07.16 12:57
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 오병주
      2005.07.19 18:16
      안녕하세요... 우선 그래프를 프로그램으로 구현하실려면 일단 TChart의 기본 개념이 필요할 것 같군요....
    • 이병협
    • 2005.07.16 04:05
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이병협
      2005.07.22 22:36
      <!--CodeS-->, Procedure TfrmAssetGather.udpDBCompact; var   ole:variant;  &...
    • kivalan
    • 2005.07.16 00:43
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2005.07.16 01:02
      안녕하세요. 최용일입니다. 날조된 MAC | IP 의 패켓을 보내는 방법이 가능합니다. 받는게 문제지... ...
    • kivalan
      2005.07.16 05:39
      보낸다 해도 받는게 젤 어렵겠네요. 더미허브 안에서 같이 있다면.. 그쪽으로 가는 패킷을 잡아서 통신...
    • 이복만
    • 2005.07.15 05:27
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 황준동
      2005.07.15 22:53
      안녕하세요.. 도움이 되실지 모르겠지만 제가 생각하기에는 호환성을 지원하지 않는다는 에러 메시지...
    • 이복만
      2005.07.18 19:11
      말씀대로 기본적인 설정을 확인하던 중에 다른 부분에서 찾았습니다. ^^; 사소한 부분이었지만 제대로 확...
    • nilriri™
      2005.07.15 07:16
                try      &nb...
    • 이복만
      2005.07.15 21:19
      좋은 의견 감사드립니다. 먼저 저의 환경에 대한 설명이 부족했던것 같습니다. OS : 윈XP DB : Oracle9i...
    • 배정은
    • 2005.07.15 03:49
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 데빠이
      2005.07.15 04:56
      팁/테크란에 보시면 "좋은 나무님"이 올려놓으신 "사용자가 DBGrid의 Column순서,폭을 변경시 그 값을 저장...
    • 배정은
      2005.07.16 21:34
      감사합니다.
    • TeamB
      2005.07.15 04:43
      dpk 는 패키지 파일이라고 하며, 패키지 파일과 함께 배포되지 않을수도 있습니다. 패키지파일을 새로...
    • 데빠이
      2005.07.18 21:17
      우선 답변해주신 분께 감사하구요...^^ 제가 함 해보니까요~ 잘못하고 있는지는 모르겠으나...^^; my.i...
    • TeamB
      2005.07.15 03:56
      MySQL 4.x (혹은 4.1) 이후부터는 Character set 말고 Collation 라는게 추가 되었습니다. 아직 4.x이후...
    • 데빠이
      2005.07.15 04:17
      적어주신 url 은 이미 한번 봤던곳인데 제가 못찾고 지나쳤나보네요... 워낙 죄다 영어라~ 흐흐흐 다시 한...
    • TeamB
      2005.07.15 04:35
      Character set 설정하는것과 동일 합니다. default-collation=euckr_korean_ci 이렇게 my.ini 에 ...
    • 데빠이
      2005.07.15 04:51
    • 유효근
      2005.07.14 23:49
      안녕하세요.. 제가 알기로는 상업적 용도로 쓰면 안되는걸로 알고 있습니다. 고로 기업에서는 별도로...