빠른 정방향 전용 커서(ODBC)
적용 대상: SQL Server Azure SQL 데이터베이스 Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System(PDW)
SQL Server 인스턴스에 연결된 경우 SQL Server Native Client ODBC 드라이버는 전달 전용 읽기 전용 커서에 대한 성능 최적화를 지원합니다. 빠른 정방향 전용 커서는 기본 결과 집합과 매우 유사한 방식으로 드라이버 및 서버에서 내부적으로 구현됩니다. 고성능 외에도 빠른 정방향 전용 커서에는 다음과 같은 특징이 있습니다.
SQLGetData 는 지원되지 않습니다. 결과 집합 열은 프로그램 변수에 바인딩되어야 합니다.
서버에서 커서 끝을 감지하면 커서를 자동으로 닫습니다. 애플리케이션은 여전히 SQLCloseCursor 또는 SQLFreeStmt(SQL_CLOSE)를 호출해야 하지만 드라이버는 서버에 닫기 요청을 보낼 필요가 없습니다. 이렇게 하면 네트워크를 통해 왕복이 서버에 저장됩니다.
애플리케이션은 드라이버별 문 특성 SQL_SOPT_SS_CURSOR_OPTIONS 사용하여 빠른 전달 전용 커서를 요청합니다. SQL_CO_FFO 설정하면 자동 인출 없이 빠른 정방향 전용 커서를 사용할 수 있습니다. SQL_CO_FFO_AF 설정하면 자동 인출 옵션도 사용하도록 설정됩니다. 자동 페치에 대한 자세한 내용은 ODBC 커서와 함께 Autofetch 사용을 참조 하세요.
자동 인출이 있는 빠른 정방향 전용 커서를 사용하여 서버에 대한 왕복이 하나만 있는 작은 결과 집합을 검색할 수 있습니다. 다음 단계에서 n 은 반환할 행 수입니다.
SQL_SOPT_SS_CURSOR_OPTIONS SQL_CO_FFO_AF 설정합니다.
SQL_ATTR_ROW_ARRAY_SIZE n + 1로 설정합니다.
결과 열을 n + 1개 요소의 배열에 바인딩합니다(n + 1행이 실제로 인출되는 경우 안전합니다).
SQLExecDirect 또는 SQLExecute를 사용하여 커서를 엽니다.
반환 상태가 SQL_SUCCESS 경우 SQLFreeStmt 또는 SQLCloseCursor를 호출하여 커서를 닫습니다. 행의 모든 데이터는 바인딩된 프로그램 변수에 있습니다.
이러한 단계를 통해 SQLExecDirect 또는 SQLExecute 는 자동 인출 옵션을 사용하도록 설정된 커서 열기 요청을 보냅니다. 클라이언트의 단일 요청에서 서버는 다음을 수행합니다.
커서를 엽니다.
결과 집합을 빌드하고 행을 클라이언트로 보냅니다.
행 집합 크기가 결과 집합의 행 수보다 1개 더 많이 설정되었으므로 서버는 커서의 끝을 검색하고 커서를 닫습니다.