Q&A

  • dbe를 써서 프로그래밍 했는데, 프로그램이 자꾸 죽어요.
프로그램이 죽는 문제로 지금 거의 3주째 씨름 했는데,원인을 밝혀 냈습니다.

바로 데이타 베이스 부하 문제더군요.



데이타 베이스로는 SQL 서버를 사용하고 있으며,

프로그램에서는 거의 1분에 2000건의 query(SELECT,INSERT,UPDATE) 가 발생하는데

만약 이 이상 1분에 약 3000건 이상이 발생하면 프로그램이 아무런 에러 메세지도 없이

죽어버리네요.



전에는 ADO COMPONENT 사용하여 프로그래밍 했는데 그때는 훨씬더 빨리 죽더라구요.

그래서 BDE로 바꾸었는데 전보다는 낫지만 그래도 죽어요.



그런데,이상한것이 에러 메세지나 어떠한 경고도 없이 프로그램이

프로그램이 종료 된다는 것인데, 죽겠네요.



프로그램은 약 56개의 멀티 쓰래드가 돌면서 각각 INSERT,UPDATE 등을 하는 방식인데

제가 의심되는 부분은 너무 동시에 쓰레드에서 QUERY를 걸면 그렇게 되는것이 아닌가 생각이 되는데요.



제발 도움좀 주세요.



2  COMMENTS
  • Profile
    나그네 2001.08.05 02:42
    무슨 업무인지 몰라도 1분에 2000건의 쿼리가 발생한다면 은행등과 같이 엄청난 규모의 서버가 필요할 것 같군요.

    전국에 백여개의 지점을 가지고 영업을 영위하는 은행과 같은 서버가 아니면 그정도의 쿼리를 사용하지 않을 것 같습니다.

    (100 * 20(지점당 평균 터미날수-실제 동시 사용은 이보다 훨씬 적음))

    서버사양을 엄청나게 올리는 것 외에는 방법이 없을 것 같습니다. 메인프레임이 아닌 일반 PC서버에서는 감당하기가 힘든 사양인 것 같네요.



    이성윤 wrote:

    > 프로그램이 죽는 문제로 지금 거의 3주째 씨름 했는데,원인을 밝혀 냈습니다.

    > 바로 데이타 베이스 부하 문제더군요.

    >

    > 데이타 베이스로는 SQL 서버를 사용하고 있으며,

    > 프로그램에서는 거의 1분에 2000건의 query(SELECT,INSERT,UPDATE) 가 발생하는데

    > 만약 이 이상 1분에 약 3000건 이상이 발생하면 프로그램이 아무런 에러 메세지도 없이

    > 죽어버리네요.

    >

    > 전에는 ADO COMPONENT 사용하여 프로그래밍 했는데 그때는 훨씬더 빨리 죽더라구요.

    > 그래서 BDE로 바꾸었는데 전보다는 낫지만 그래도 죽어요.

    >

    > 그런데,이상한것이 에러 메세지나 어떠한 경고도 없이 프로그램이

    > 프로그램이 종료 된다는 것인데, 죽겠네요.

    >

    > 프로그램은 약 56개의 멀티 쓰래드가 돌면서 각각 INSERT,UPDATE 등을 하는 방식인데

    > 제가 의심되는 부분은 너무 동시에 쓰레드에서 QUERY를 걸면 그렇게 되는것이 아닌가 생각이 되는데요.

    >

    > 제발 도움좀 주세요.

    >

  • Profile
    htjulia 2001.08.05 23:23
    실제적으로 서버의 응답이 없이 죽는다는 것이 이상하군요...



    아마도 서버가 너무 바쁘게 움직이는 것이 아닌가 싶습니다..



    계속 프로세스를 실행 하고 있는것인지를 확인 해봐야 할것 같습니다.



    계속 실행하고 있으면서 서버가 죽어 보이는 경우가 있는것을 확인 하여 보십시오..



    만일 많은 query가 실행 되야 한다면 서버의 사양도 중요 하지만 table script라던지 table의



    index또한 많은 연구가 필요 하겠군요,



    무슨 일인지 알고 싶네여...



    나그네 wrote:

    > 무슨 업무인지 몰라도 1분에 2000건의 쿼리가 발생한다면 은행등과 같이 엄청난 규모의 서버가 필요할 것 같군요.

    > 전국에 백여개의 지점을 가지고 영업을 영위하는 은행과 같은 서버가 아니면 그정도의 쿼리를 사용하지 않을 것 같습니다.

    > (100 * 20(지점당 평균 터미날수-실제 동시 사용은 이보다 훨씬 적음))

    > 서버사양을 엄청나게 올리는 것 외에는 방법이 없을 것 같습니다. 메인프레임이 아닌 일반 PC서버에서는 감당하기가 힘든 사양인 것 같네요.

    >

    > 이성윤 wrote:

    > > 프로그램이 죽는 문제로 지금 거의 3주째 씨름 했는데,원인을 밝혀 냈습니다.

    > > 바로 데이타 베이스 부하 문제더군요.

    > >

    > > 데이타 베이스로는 SQL 서버를 사용하고 있으며,

    > > 프로그램에서는 거의 1분에 2000건의 query(SELECT,INSERT,UPDATE) 가 발생하는데

    > > 만약 이 이상 1분에 약 3000건 이상이 발생하면 프로그램이 아무런 에러 메세지도 없이

    > > 죽어버리네요.

    > >

    > > 전에는 ADO COMPONENT 사용하여 프로그래밍 했는데 그때는 훨씬더 빨리 죽더라구요.

    > > 그래서 BDE로 바꾸었는데 전보다는 낫지만 그래도 죽어요.

    > >

    > > 그런데,이상한것이 에러 메세지나 어떠한 경고도 없이 프로그램이

    > > 프로그램이 종료 된다는 것인데, 죽겠네요.

    > >

    > > 프로그램은 약 56개의 멀티 쓰래드가 돌면서 각각 INSERT,UPDATE 등을 하는 방식인데

    > > 제가 의심되는 부분은 너무 동시에 쓰레드에서 QUERY를 걸면 그렇게 되는것이 아닌가 생각이 되는데요.

    > >

    > > 제발 도움좀 주세요.

    > >