Q&A

  • 원래 access mdb는 이렇게 느린가요?
안녕하세요.

DB를 안쓰다가 이번에 쓰면 여러가지 면에서 편리하리라 생각하고 쓰기로 하고 프로그램을 만들고 있는데요,



access가 있어서 DB관리도 편하겠다 싶어서 DB를 mdb로 정했습니다.

ADO를 써서 Jet4.0 드라이버를 통해서 억세스하는데요. 인간적으로 너무 느리더군요. 아무리 DB로의 연결과정이 복잡하다지만, 고작 필드 4개뿐인 레코드를 1500 여개 넣는데 40~50 초가 걸리다니(레코드 수백만개가 필요한데-_-), 저는 DB를 많이 써보지 않아서 모르는데, 원래 mdb(ADO?)를 쓰면 이렇게 느린가요?

견디다 못해 paradox로 몽창 바꿔봤더니 40~50초 걸리던게 1.2초 만에 끝나더군요. 그런데 웬걸, paradox로 db를 전부 바꾼 후 다른 테이블 입력 프로시저에서 몇시간동안 테이블을 입력했는데, 레코드가 78만개인가? 가 넘어가니깐 "Table Full" exception 이 나더군요.

Access로 import해봤더니 Access는 레코드 제약도 없는것 같고, import 속도를 보니 (78만 레코드를 수 초 내에 import하던데요) 분명 DB 자체가 그리 느리지는 않다는 생각인데...

TADOTable의 Insert/Post 를 통해서도 넣어봤고, TADOCommand(혹은 TADOQuery)에서 INSERT INTO 구문을 주어서도 넣어봤지만 마찬가지였고요. 잘 모르는 프로퍼티를 이리저리 바꿔봤지만 마찬가지네요.

DB에 대해 아는게 없어서 그런건지, 원래 그런건지... DB를 쓰면 작업 효율이 높아지리라 생각하고 쓰게 된건데 오히려 전혀 엉뚱한데서 부딪히고 부딪혀서 아무것도 진행이 되질 않고 있네요..

단지 한두 개의 키로 데이터를 넣고 특정 키의 데이터를 빼기만 하면 되는 일에 덩치 큰 다른 상용DB를 구해다 쓴다는것도 우습고.. DB를 전부 포기하고 그냥 좀 노가다를 하더라도 파일베이스로 하는게 나을까 하는 생각도 들고..



경험자분들의 조언 부탁드립니다.



2  COMMENTS
  • Profile
    하눌이 2001.09.05 18:02
    paradox에서 기본으로 db를 만들고 사용하면 그런일이 있는데, 델파이 홈페이지에

    관련 pxrest라는 유틸하고 소스가 있는데 그걸 사용하면 되는 걸로 알고 있슴다.



    즐프하시길..

  • Profile
    박병영 2001.09.05 17:53
    innover wrote:

    > 안녕하세요.

    > DB를 안쓰다가 이번에 쓰면 여러가지 면에서 편리하리라 생각하고 쓰기로 하고 프로그램을 만들고 있는데요,

    >

    > access가 있어서 DB관리도 편하겠다 싶어서 DB를 mdb로 정했습니다.

    > ADO를 써서 Jet4.0 드라이버를 통해서 억세스하는데요. 인간적으로 너무 느리더군요. 아무리 DB로의 연결과정이 복잡하다지만, 고작 필드 4개뿐인 레코드를 1500 여개 넣는데 40~50 초가 걸리다니(레코드 수백만개가 필요한데-_-), 저는 DB를 많이 써보지 않아서 모르는데, 원래 mdb(ADO?)를 쓰면 이렇게 느린가요?

    > 견디다 못해 paradox로 몽창 바꿔봤더니 40~50초 걸리던게 1.2초 만에 끝나더군요. 그런데 웬걸, paradox로 db를 전부 바꾼 후 다른 테이블 입력 프로시저에서 몇시간동안 테이블을 입력했는데, 레코드가 78만개인가? 가 넘어가니깐 "Table Full" exception 이 나더군요.

    > Access로 import해봤더니 Access는 레코드 제약도 없는것 같고, import 속도를 보니 (78만 레코드를 수 초 내에 import하던데요) 분명 DB 자체가 그리 느리지는 않다는 생각인데...

    > TADOTable의 Insert/Post 를 통해서도 넣어봤고, TADOCommand(혹은 TADOQuery)에서 INSERT INTO 구문을 주어서도 넣어봤지만 마찬가지였고요. 잘 모르는 프로퍼티를 이리저리 바꿔봤지만 마찬가지네요.

    > DB에 대해 아는게 없어서 그런건지, 원래 그런건지... DB를 쓰면 작업 효율이 높아지리라 생각하고 쓰게 된건데 오히려 전혀 엉뚱한데서 부딪히고 부딪혀서 아무것도 진행이 되질 않고 있네요..

    > 단지 한두 개의 키로 데이터를 넣고 특정 키의 데이터를 빼기만 하면 되는 일에 덩치 큰 다른 상용DB를 구해다 쓴다는것도 우습고.. DB를 전부 포기하고 그냥 좀 노가다를 하더라도 파일베이스로 하는게 나을까 하는 생각도 들고..

    >

    > 경험자분들의 조언 부탁드립니다.

    >



    안녕하세요 ^.^

    제경험으로는 mdb는 odbc로 셜정하여 사용하는 것이 제일 빠르드라구요

    bde에서 alias를 설정하여 사용하는 것과는 비교가 안될만큼 빠릅니다.

    이건 제경험이기에 참조만 하세요