2012-08-09 2 views
2

MS Access 2007을 프런트 엔드로 사용하고 있고 SQLServer 2008 R2 백엔드의 모든 연결된 테이블을 보유하고 있습니다.FIND 버튼을 사용하여 SQLServer에 연결된 테이블이있는 MS Access

Access의 양식에서 리본에 FIND 단추를 실행하거나 특정 필드에 특정 값이있는 레코드를 찾는 목적으로 양식에 단추를 작성하려고합니다.

FIND 창에서 입력을 완료하면 을 클릭하고 다음을 찾으십시오.을 클릭하십시오. 경우에 따라 레코드가 즉시 발견됩니다. 다른 사람들은 시간이 지나면 아무 것도 찾을 수 없다는보고 만 할 수 있습니다.

내가보고있는 테이블에는 약 99,000 개의 레코드가 있습니다. 필드의 색인이 생성되었는지 여부는 중요하지 않습니다.

내가 잘못하고있는 것입니까, 아니면 이것을 처리 할 수없는 Access가 있습니까? 또한 여러 검색 요청을 처리하고 정보를 전달하여 응답에 액세스하는 저장 프로 시저를 만드는 중입니까?

답변

0

이것은 필요한 검색 유형과 검색 할 열 (필드)의 데이터 유형에 따라 다릅니다. 예를 들어 인덱스 된 열에 텍스트 데이터 형식이 있고 필드 시작 또는 전체 필드를 사용하여 검색하는 경우 매우 빠릅니다. 그러나 필드의 일부를 검색하면 넘어 질 수 있습니다. 즉, Access에서 검색을위한 인덱스를 사용할 수 있다면 꽤 큰 테이블에서도 작동 할 것입니다. 그렇지 않으면 인덱스가 없어도 빠를 것이라고 생각되지만 저장 프로 시저에 가장 적합 할 수 있습니다.

1

find 메소드는 ODBC 데이터 소스에서 느린 것으로 알려져 있습니다. 다음은 Access 2007 Recordset.FindFirst 메서드 도움말 항목의 내용입니다.

Microsoft Access 데이터베이스 엔진에 연결된 ODBC 데이터베이스와 큰 다이나 셋 형식의 Recordset 개체를 사용하는 경우 찾기 메서드를 사용하거나 정렬 또는 필터 속성이 느립니다. 성능을 향상 시키려면 사용자 지정된 ORDER BY 또는 WHERE 절, 매개 변수 쿼리 또는 특정 인덱싱 된 레코드를 검색하는 QueryDef 개체와 함께 SQL 쿼리를 사용하십시오.

또한 액세스 양식을 99K 레코드의 레코드 원본에 바인딩하는 것은 성능상의 문제입니다. 쿼리를 폼의 레코드 원본으로 사용하고 하나 또는 몇 개의 행만 반환하도록 쿼리를 디자인하십시오.

다른 행 집합을 선택하고 사용자의 선택을 반영하도록 양식의 레코드 원본 속성을 수정할 수있는 옵션을 제공하십시오.

관련 문제