2011-09-07 3 views
0

txt 파일에는 210,000 개가 넘는 레코드가 있습니다. 하나의 레코드에는 스페이스가 분리 된 세 개의 컬럼이 있습니다. 이 파일을 ms 액세스로 가져 오려면 시스템이 공백을 쉼표로 바꾸십시오. 그리고 나서 insert into를 사용하여 시스템을 한꺼번에 가져옵니다. 시스템은 이러한 레코드로 정렬 및 검색해야합니다. 전체 처리 시간이 너무 느립니다. 그것은 15 분 이상 걸립니다. 속도를 높이려면 어떻게해야합니까?CSV 및 액세스 속도 향상 방법

  1. 그것은 MS 액세스 2003 테이블에 210,000 기록을 통해 처리 할 수 ​​있습니까?
  2. 쉼표를 대체하지 않고이 txt 파일을 액세스 할 수 있습니까?

고맙습니다.

+0

대부분의 데이터베이스는 공간으로 분리 된 데이터를 가져올 수 있습니다. 어떻게 CSV 데이터를 가져 오기 위해 어떤 방법을 사용하는지에 따라 다르며, 우리에게 보여 주면, 공간 구분으로 조정하는 방법을 보여줄 수 있습니다. – Deanna

+1

특히 느린 부분은 무엇입니까? 공백을 쉼표로 변경 하시겠습니까? 데이터로드 중입니까? 아니면 특정 "정렬 및 검색"작업? –

+0

슬로우 파트는 정렬 및 검색 작업입니다. 이210 K로 가져 오기에는 몇 초 밖에 걸리지 않습니다. 사실, 시스템은 두 테이블을 비교합니다. 테이블 하나에 위치 필드가 있습니다. 다른 하나는 위치가있는 Item을가집니다. 누락되거나 여분이거나 같은 위치에 있는지 확인해야합니다. 추가 인 경우 위치 테이블에 새 행을 삽입하고 상태를 2로 변경합니다. 동일하면 상태를 1로 업데이트합니다. 시스템은 레코드 세트를 사용하고 행 단위로 작동합니다. 2 ~ 3 분이 걸립니다. 하지만 추가로 쿼리를 시도했습니다. 그것은 15 분이 넘었습니다. [내 쿼리] (http://stackoverflow.com/questions/7345074/not-in-access-query) 나빴어. – soclose

답변

1

액세스 할 때 쉼표 대신 공백을 구분 기호로 사용하는 텍스트 파일을 가져올 수 있습니다. Access 2003 "텍스트 가져 오기 마법사"의 첫 번째 페이지에서 "구분 기호 - 쉼표 또는 각 필드를 구분하는 탭"과 같은 문자 옆에있는 라디오 단추를 선택하십시오. "다음"을 클릭하고 다음 마법사 페이지에서 "필드를 구분하는 구분 기호 선택"제목 아래의 "공백"옆에있는 라디오 단추를 선택하십시오.

"고급 ..."버튼을 클릭하여 가져 오기 사양 대화 상자를 가져온 다음 오른쪽의 "다른 이름으로 저장 ..."버튼을 클릭하여 가져 오기 선택 사항을 "가져 오기 사양"으로 저장할 수 있습니다. "가져 오기/내보내기 스펙 저장"대화 상자에서 사양 이름을 지정하고 확인을 클릭하십시오. TransferText 방법에 대한 자세한 내용은

DoCmd.TransferText acImportDelim, "Your Named Specification", _ 
    "Destination Table Name", "C:\somepath\yourfile.txt" 

참조 액세스 '도움말 항목 : 당신이 코드 가져 오기 작업이 유형의 작업을 수행하려면

, 당신은 TransferText 방법을 사용할 수 있습니다.

귀하의 질문에 vb6 태그가 포함되어있는 것을 보았습니다. 그러나 맞는 말을하지 못했습니다. VBA의 TransferText를 사용하여 3 열 210K 행의 텍스트 파일을 가져 오는 데 15 분이 걸리지 않아야합니다.