ACC2000: 클라이언트/서버 성능 최적화

기술 자료 번역 기술 자료 번역
기술 자료: 208858 - 이 문서가 적용되는 제품 보기.
고급: 전문적인 코드 작성, 상호 운용성 및 다중 사용자 기술이 필요합니다.

이 문서에서는 경우에만 Access 데이터베이스를 수 (.mdb) 적용됩니다.

모두 확대 | 모두 축소

이 페이지에서

요약

이 문서에서는 Microsoft Access의 개방형 데이터베이스 연결 (ODBC) 데이터 원본의 성능을 최적화하는 팁을 보여 줍니다.

참고: 이 문서에서는 클라이언트/서버 환경 및 아키텍처에 익숙한 사용자를 대상으로 합니다.

추가 정보

데이터 액세스 방법

클라이언트/서버 응용 프로그램 사용하여 서버 데이터에 액세스하려면 다음 방법 중 하나 이상을 사용할 수 있습니다.

  • 연결된 테이블 및 뷰
  • SQL 통과 쿼리는 SQL 문을 서버로 직접 보내기
  • Access 프로젝트

연결된 테이블 및 뷰

서버 데이터를 처리하는 가장 효율적인 방법은 테이블 및 뷰를 서버에서 연결할 수 있습니다. Microsoft Access에서 연결된 테이블의 필드 및 인덱스 정보를 저장합니다. 이렇게 하면 테이블을 열 때 성능이 향상됩니다.

참고: 필드나 인덱스를 서버의 변경 내용을 변경하면 Access에서 원격 테이블을 다시 합니다.

SQL 통과 쿼리 실행

많은 응용 프로그램에서 원격 테이블을 기반으로 하는 Microsoft Access 쿼리를 만들고 SQL 통과 쿼리를 만들 수도 있습니다. 통과 쿼리는 다음과 같은 이점을 제공합니다.
  • 통과 쿼리는 Access 컴파일되지 않습니다. ODBC 서버가 직접 쿼리를 보냅니다. 이 응용 프로그램을 구성하는 속도가 빨라집니다.
  • 정확히 입력한 대로 액세스 서버에 통과 쿼리를 보냅니다. 따라서 더 많은 처리 서버에서 발생하고 적은 양의 데이터의 네트워크를 통해 교환됩니다.
  • 연결된 ODBC 테이블을 사용하여 통과 쿼리는 폼, 보고서 및 Microsoft Access 쿼리를 기반으로 할 수 있습니다.
  • 해당 코드에서 가진 SQL Server 관련 기능 (예: 저장된 프로시저 및 서버 기반 내장 함수를 사용할 수 있습니다.
  • 업데이트, 삭제 및 추가 통과 실행 쿼리 실행 쿼리 특히 많은 레코드가 영향을 받는 경우 연결된 원격 테이블을 기반으로 하는 것보다 훨씬 빠릅니다.
통과 쿼리는 다음과 같은 단점이 있습니다.
  • SQL 창구 쿼리는 항상 업데이트할 수 없는 스냅샷을 반환합니다. Access 쿼리는 대개 다른 사용자의 변경 내용을 반영하는 다이너셋 반환하고 업데이트할 수 있습니다.
  • 서버가 요구하는 구문 사용하여 SQL 통과 쿼리 창에 직접 명령을 입력할 필요가 없습니다. 쿼리 디자인 눈금에서 통과 쿼리를 디자인할 수 없습니다.
  • 통과 쿼리 가진 매개 변수가 필요한 경우 코드에서 쿼리를 실행하고 쿼리의 SQL 속성을 수정해야 합니다. 추가 및 예로는 SQL 속성을 수정하는 방법에 대한 내용은 아래 문서 번호를 눌러 Microsoft 기술 자료에 있는 문서를 클릭하십시오.
    232493ACC2000: SQL 통과 쿼리 매개 변수 시뮬레이션 방법

서버에서 간단히 데이터 요청

요청 처리 시간이 서버 비용 데이터입니다. 성능을 최적화하기 위해 해당 레코드와 필요한 필드를 요청하십시오.

텍스트 상자, 콤보 상자, 목록 상자 및 하위 폼 같은 바운드 컨트롤의 수를 줄이십시오. 폼이 열릴 때 이러한 컨트롤의 각 서버에 별도의 쿼리를 보냅니다.

연결된 ODBC 테이블을 메모나 OLE 개체 필드가 있으면 필드 Visible 속성을 아니요 로 설정하고 보려면 사용자가 선택할 수 있도록 Visible 속성을 로 설정하려면 토글 단추를 추가할 수 있습니다.

일부 연결된 테이블은 자주 변경되지 않습니다. 예를 들어, 이름 및 50 상태 약어를 포함하는 테이블을 자주 변경됩니다지 않습니다. 폼을 로드하는 속도를 높일 수 있으며 이러한 테이블의 로컬 복사본을 저장하여 서버의 로드를 줄일 수 있습니다. 서버에서 최신 데이터로 로컬 복사본을 업데이트하는 방법을 제공할 수도 있습니다.

쿼리 최적화

서버에서 적절한 인덱스를 추가한 후 쿼리를 최적화하기 위한 주 메서드는 처리 서버에서 이루어지는 것을 보장하는 것입니다. 서버 (예: Microsoft Access 특정 함수 또는 사용자 정의 함수를 지원하지 않는 기능을 사용하지 않는 것이 좋습니다. 어떤 로컬로 처리되어야에 대한 자세한 내용은 Microsoft Jet 데이터베이스 엔진 ODBC 연결 백서를 참조하십시오 (이 백서에 대한 자세한 내용은 이 문서의 뒷부분에 나오는 "Microsoft Jet 데이터베이스 엔진 ODBC 연결 백서" 섹션 참조).

서버로 전송되는 Select 문을 볼 수 있는 TraceSQLMode 설정할 수 설정을. 이렇게 설정하려면 다음 이 단계를 수행하십시오.
  1. 시작 메뉴를 클릭한 다음 실행 을 클릭하십시오.
  2. 열기 대화 상자에서 Regedit 를 입력하십시오.
  3. SOFTWARE\Microsoft\Jet\4.0\Engines 하위 키를 찾을 때까지 HKEY_LOCAL_MACHINE 하위 트리를 확장하십시오.
  4. 엔진 을 클릭하십시오.
  5. 오른쪽 창에서 TraceSQLMode 값이 나타나지 않으면 편집 메뉴에서 새로 만들기 를 및 다음 DWORD 값 을 클릭하십시오.
  6. 오른쪽 창에서 이름에서 TraceSQLMode 새 값을 입력하십시오.
  7. 선택된 새 값을 사용하여 편집 메뉴에서 수정 을 클릭하십시오.
  8. 자료Decimal 선택하십시오. 값 데이터 상자에 1 을 입력한 다음 확인 을 누릅니다.
TraceSQLMode 설정에 대한 자세한 내용은 [도움말] 메뉴에서 [Microsoft Access 도움말 을, "TraceSQLMode" Office 길잡이나 도움말 마법사에서 입력한 다음 찾기를 눌러 항목을 봅니다.

TryJetAuth 설정

컨트롤을 설정은 Microsoft Access에서 먼저 Access 로그인 ID와 암호를 사용하여 서버에 로그온을 시도할 여부를 TryJetAuth. 기본적으로 "admin" Access 로그인 ID는. 및 암호는 비어 있습니다. 이 작업이 실패하면 로그온 ID와 암호를 묻는. 로그온 ID와 암호 ODBC 서버로 사용하도록 설정하고 Microsoft Access 설정하지 않았으면 줄 추가 "TryJetAuth = 0" HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\ODBC\TryJetAuth 키에 레지스트리의. 이렇게 잘못된 ID를 사용하여 로그온을 시도하는 Access 없습니다. 이렇게 하려면 다음과 같이 하십시오.
  1. 시작 을 누른 다음 실행 을 클릭하십시오.
  2. 열기 대화 상자에서 Regedit 를 입력하십시오.
  3. HKEY_LOCAL_MACHINE 하위 트리를 찾습니다.
  4. 다음 하위 키를 찾을 때까지 HKEY_LOCAL_MACHINE 하위 트리를 확장하십시오.
    SOFTWARE\Microsoft\Jet\4.0\ODBC\TryJetAuth
  5. 엔진 을 클릭하십시오.
  6. TryJetAuth 값이 없을 경우 편집 메뉴에서 새로 만들기 를 및 다음 DWORD 값 을 클릭하십시오.
  7. 오른쪽 창에서 이름에서 TryJetAuth 새 값을 입력하십시오.
  8. 선택된 새 값을 사용하여 편집 메뉴에서 수정 을 클릭하십시오.
  9. 자료Decimal 선택하십시오. 값 데이터 상자에 1 을 입력한 다음 확인 을 누릅니다.

타임스탬프

같은 Microsoft SQL Server 지원 서버에서 업데이트 레코드를 타임스탬프 필드를 보다 효율적인 확인합니다. 타임스탬프 필드가 서버에 의해 관리되며 레코드가 업데이트될 때마다 업데이트됩니다.

타임스탬프 필드가 있는 경우 Access 경우에만 검사해야 하는 서버에서 검색한 고유 인덱스와 타임스탬프 필드에 마지막으로 시작된 이후 레코드가 변경되었는지 여부를 확인합니다. 그렇지 않으면, Access 레코드의 모든 필드가 확인해야 합니다. 연결된 테이블에 타임스탬프 필드를 추가할 경우 새 필드의 Access 알리기 위해 테이블을 다시 링크하십시오.

트랜잭션

연결된 테이블의 레코드를 삽입하거나 업데이트할 때 VBA에 대한 Visual Basic에서 트랜잭션을 사용하여 성능을 향상시킬 수 있습니다. 트랜잭션은 Jet 데이터베이스 엔진이 여러 업데이트를 모으다가 한 번에 일괄 작성할 수 있습니다. 다른 사용자가 현재 트랜잭션의 영향을 받는 데이터를 읽지 못하도록 잠금 생성하므로 Microsoft SQL Server 트랜잭션을 짧게 유지하십시오. VBA 사용하여 트랜잭션을 중첩할 수 있지만 대부분의 서버는 중첩된 트랜잭션을 지원하지 않습니다. Microsoft Access 첫째 수준의 트랜잭션 서버에 보냅니다.

레코드 집합 및 코드 최적화

전체 또는 일부를 CacheSizeCacheStart 속성을 설정하여 로컬 메모리에 다이너셋 형식의 Recordset 개체에 포함된 데이터 저장할 수 있습니다.

캐시 크기는 5-1200 레코드 사이가 될 수 있습니다. 캐시 크기는 사용 가능한 메모리를 초과하면 초과 레코드가 임시 디스크 파일에 저장됩니다. FillCache 메서드를 적용하면 캐시 서버 데이터로 채웁니다. 캐시 메모리 복구하려면 CacheSize 속성을 0으로 설정하십시오.

레코드 집합 변수를 사용하여 필요한 기능을 구현하십시오. 예를 들어, 레코드 집합에 새 레코드를 추가해야 할 경우 dbAppendOnly 옵션을 OpenRecordset 메서드를 사용하여 추가할 수 있습니다. 편집이나 업데이트 기능이 필요하지 않은 경우에는 SQL을 사용하여 레코드 집합을 기반으로 통과 쿼리를. 레코드를 업데이트하고 삽입 가장 빠른 방법은 코드에 SQL 창구 쿼리를 사용하는 것입니다.

MSysConf 테이블

컨트롤 배경 채우기 위해 서버에 MSysConf 라는 테이블을 만들 수 있습니다 (속도)는 Microsoft Access에서는 레코드를 서버에서 유휴 시간 동안 읽습니다. 이 테이블을 한 번에 검색되는 데이터 행의 개수와 각 검색 사이의 지연 시간을 초 단위로 설정할 수 있습니다. 과도한 읽기 잠금 서버에서 발생하는 경우 백그라운드 채우기 속도를 높이려면 테이블에 설정을 조정할 수 있습니다. 너무 많은 네트워크 트래픽을 배경 채우기에 의해 생성되는 경우에는 속도가 느려질 수 설정을 조정할 수 있습니다.

Microsoft Jet 데이터베이스 엔진 ODBC 연결 백서

자세한 내용은 중요 원본 "Jet 데이터베이스 엔진 ODBC 연결" 백서를 것입니다. 그러나 이 문서의 Jet 3.0 쓰여진, Jet 4.0이 이 정보를 계속 적용됩니다. 이 문서에서는 Microsoft Jet 3.0 데이터베이스 엔진 및 ODBC 사용하는 방법을 설명합니다. 흰색 용지의 다음 Microsoft 웹 사이트에서 다운로드할 수 있습니다.
http://download.microsoft.com/download/access95/whitep5/1/W98/EN-US/Rjwpv3.exe

Access 프로젝트

Access 프로젝트에서 Microsoft SQL Server 6.5 또는 7.0 연결하려면 OLEDB을 사용합니다. 모든 Access 데이터베이스의 테이블에 연결된 테이블을 SQL 경우 대신 Access 프로젝트를 만들어 성능 향상을 위해 서버. 그러나 Access 테이블을 데이터베이스에 포함되어 있는 경우 이 옵션을 수 없습니다.

속성

기술 자료: 208858 - 마지막 검토: 2007년 3월 29일 목요일 - 수정: 3.3
본 문서의 정보는 다음의 제품에 적용됩니다.
  • Microsoft Access 2000 Standard Edition
키워드:?
kbmt kbdownload kbhowto kbusage KB208858 KbMtko
기계 번역된 문서
중요: 본 문서는 전문 번역가가 번역한 것이 아니라 Microsoft 기계 번역 소프트웨어로 번역한 것입니다. Microsoft는 번역가가 번역한 문서 및 기계 번역된 문서를 모두 제공하므로 Microsoft 기술 자료에 있는 모든 문서를 한글로 접할 수 있습니다. 그러나 기계 번역 문서가 항상 완벽한 것은 아닙니다. 따라서 기계 번역 문서에는 마치 외국인이 한국어로 말할 때 실수를 하는 것처럼 어휘, 구문 또는 문법에 오류가 있을 수 있습니다. Microsoft는 내용상의 오역 또는 Microsoft 고객이 이러한 오역을 사용함으로써 발생하는 부 정확성, 오류 또는 손해에 대해 책임을 지지 않습니다. Microsoft는 이러한 문제를 해결하기 위해 기계 번역 소프트웨어를 자주 업데이트하고 있습니다.

피드백 보내기

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com