문제

Microsoft Access는 MS SQL Server 백엔드 데이터베이스의 데이터에 액세스하는 편리한 방법이지만, 특히 Access에서 결과와 디자인 모드 사이를 전환하려고 할 때 대용량 데이터 테이블에 액세스하는 데 항상 문제가 있었습니다.

Access는 여러 가지 멋진 기능을 제공합니다. 그 중 가장 중요한 것은 Crosstabs입니다. 하지만 서버에 대한 연결이 끊어지면 약간 미치게 됩니다!

쿼리를 조정하고 작성하려고 할 때 전체 테이블 스캔처럼 보이는 작업을 수행하지 않도록 ODBC 연결을 최적화하는 방법을 알고 있는 MS Access 전문가가 있습니까?

도움이 되었습니까?

해결책

ODBC 드라이버는 가능한 한 많은 작업을 SQL Server에 전달하지만 Nz와 같은 vba 함수 또는 PIVOT과 같은 SQL Server 이외의 구문을 사용하자마자 ODBC 드라이버는 더 많은 데이터와 인덱스를 가져와서 작업을 완료해야 합니다. 고객 입장에서.

다른 답변에 따라 SQL Server에서 뷰를 작성하고 뷰에 연결하거나 Access Data Project를 사용하십시오.

참고:알 수 없는 수의 열이 포함된 PIVOT 쿼리는 Access에서 기본적으로 수행하는 것과 동일한 방식으로 SQL Server에서 처리할 수 없습니다. 따라서 Access에서 SQL Server 데이터에 대해 피벗을 실행하면 전체 테이블을 다시 가져올 가능성이 높습니다.피벗 쿼리는 동적 SQL 기술을 사용하거나 모든 열이 하드 코딩된 미리 저장된 보기를 사용하여 SQL Server에서 작성되어야 합니다.이를 수행하는 한 가지 방법은 다음 링크를 확인하십시오.

http://www.sqlservercentral.com/articles/Advanced+Querying/pivottableformicrosoftsqlserver/2434/

다른 팁

다른 사람들이 말했듯이, 대형 테이블에서 성능을 향상시키는 유일한 방법은 SQL Server 데이터베이스 엔진이 귀하를 위해 작동하도록하는 것입니다. 언급되지 않은이 작업을 수행하는 방법은 Pass-Strough Query를 사용하는 것입니다.이 쿼리는 SQL 서버에서 객체를 만들 필요없이 모든 코드를 MS 액세스로 유지할 수 있습니다.

http://support.microsoft.com/kb/303968

액세스 방언 대신 SQL Server T-SQL을 작성해야합니다. 그러나 SQL 2005 (호환 모드 90에서 실행할 때)는 피벗 명령을 지원합니다.

비슷한 문제는 링크 테이블/ODBC 연결을 선택한 후 Oracle ODBC 연결이 매달렸다는 것입니다. 작업 관리자는 10 분 후에 응답하지 않았다고 말했다. 그런 다음 연결은 사용 가능한 모든 테이블에 대한 오라클을 핑합니다. Oracle ODBC 관리자의 로깅을 켜서 로그 에이 모든 것들을 써야했기 때문에 결과를 몇 시간 동안 느리게해야했습니다. 통나무는 1 시간 후 60MB 였고, 내가 꺼 졌을 때, 모든 것이 괜찮 았습니다!

끄려면 Oracle 설치/네트워크 관리/MS ODBC Adminstrator/Tracing Tab으로 이동하여 끄십시오!

ODBC에 대한 좋은 리소스는 다음과 같습니다. http://eis.bris.ac.uk/~cmjs/odbc_section.html

불행히도 Access는 많은 작업을 서버로 푸시 할 수 없습니다. 예, SQL Server의 여러 테이블이나보기에 대한 쿼리를 설계 할 때 큰 테이블 스캔을 수행합니다.

SSMS를 사용하여 SQL Server에서 쿼리 (뷰)를 빌드하고 조정하고 SQL Server에 뷰를 저장하여 대규모 성능 향상을 위해 프론트 엔드에 액세스 할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top