데이터 액세스 성능
데이터 액세스와 검색은 웹 응용 프로그램 개발자에게 가장 어려운 성능 관련 문제입니다.
데이터 액세스를 둘러싼 확장성과 성능에 대한 많은 염려는 웹 응용 프로그램 개발자가 통제할 수 있는 것이 아닙니다. 그러나 성능을 최대화하기 위해 사용할 수 있는 몇 가지 기술이 있습니다.
- 안정적이거나 또는 예측할 수 있는 데이터 원본에서 결과를 캐시합니다. 데이터 원본에 대한 쿼리가 반환하는 레코드 집합이나 쿼리 결과를 사용하여 작성된 순수한 HTML 출력을 캐시할 수 있습니다.
예를 들어 ADO를 사용하여 지사가 위치한 도시 이름을 포함할 목록 상자를 채우려면 ADO를 처음 호출한 호출자가 ADO 쿼리 결과를 응용 프로그램 영역에 삽입할 수 있습니다. 이 목록 상자 정보에 대한 후속 요청은 비용이 많이 드는 호출 대신 ADO를 통해 Application 개체에서 데이터 원본으로 실행될 수 있습니다.
결과 레코드 집합을 직접 캐시하려면 클라이언트쪽 커서를 사용하고 ADO ActiveConnection 속성을 Nothing으로 설정하여 Command 개체에서 레코드 집합을 분리해야 합니다.
데이터 캐시에 대한 자세한 내용은 데이터 캐시에 임시 저장을 참조하십시오.
- ODBC(버전 3.0 이상)는 자동으로 연결 풀링을 하고 OLE DB는 세션 풀링을 제공하므로 ADO 연결을 세션 상태로 하지 마십시오.
- 가능한 기본 OLE DB 연결 문자열을 많이 사용합니다. 기본 OLE DB 연결 문자열은 일반적으로 대부분의 ODBC DNS보다 더 빠릅니다. 또한 사용자의 응용 프로그램이 어느 OLE DB 제공자든 사용할 수 있기 때문에 OLE DB 연결 문자열이 더 신축적입니다.
- Microsoft SQL Server같이 저장 프로시저를 지원하는 데이터 원본을 사용할 경우에는 가능할 때마다 저장 프로시저를 사용합니다. 저장 프로시저에서 실행된 쿼리는 SQL 쿼리 문자열을 통해 전달된 쿼리보다 더 빠릅니다.
- 성능을 최적화하려면 AddNew와 Delete 같이 ADO 레코드 추가 및 삭제 메서드를 사용합니다. 응용 프로그램에서 방대한 양의 레코드를 추가하고 삭제하는 경우에는 INSERT 같은 SQL 문을 직접 사용하는 것이 응용 프로그램 성능에 더 좋습니다.
- ADO CacheSize 속성 값을 기본 값(1)보다 더 큰 수로 설정합니다. ADO가 데이터 원본과의 한 트랜잭션에서 복수의 레코드를 검색하도록 강제로 실행하면 해당 트랜잭션에 연관된 오버헤드 구역을 제거하여 응용 프로그램이 더 확장적으로 됩니다. 보통 CacheSize를 예상 레코드 수나 200, 또는 그 이하로 설정하면 더 유리합니다.
- 데이터 행을 반환하지 않는 명령을 실행하거나 액세스하거나 저장할 필요가 없는 행을 반환하는 명령을 실행할 때 ADO 2.0 AdExecuteNoRecords 플래그를 사용합니다. 이 기능은 ADO 2.0에 도입된 새 기능으로 ADO에 의해 반복적으로 발생하는 오버헤드 양을 줄여 성능과 확장성을 증대하기 위해 만든 것입니다.
- 데이터 원본이 임시 저장 프로시저를 지원하는 경우에는 임시 저장 프로시저를 사용 불가능으로 설정합니다.
데이터 액세스에 대한 자세한 내용은 데이터 원본 액세스와 ASP를 사용한 데이터 액세스를 참조하십시오.
© 1997-2001 Microsoft Corporation. All rights reserved.