cursor threshold 옵션

cursor threshold 옵션을 사용하여 커서 키 집합이 비동기적으로 생성되는 커서 집합의 행 개수를 지정할 수 있습니다. 커서에서 결과 집합에 대해 키 집합을 생성할 때 쿼리 최적화 프로그램은 해당 결과 집합에 대해 반환될 행 개수를 계산합니다. 쿼리 최적화 프로그램에서 반환된 행 개수가 이 임계값보다 클 것으로 예상할 경우, 커서가 계속 채워지는 동안 사용자가 커서에서 행을 인출할 수 있도록 커서가 비동기적으로 생성됩니다. 그렇지 않으면 커서가 동기적으로 생성되어 모든 행이 반환될 때까지 쿼리가 기다립니다.

cursor threshold를 -1로 설정하면 모든 키 집합이 동기적으로 생성되므로 작은 커서 집합에 유리합니다. cursor threshold를 0으로 설정하면 모든 커서 키 집합이 비동기적으로 생성됩니다. 다른 값을 사용하면 쿼리 최적화 프로그램이 커서 집합에 있는 예상 행 개수를 비교하여 이 값이 cursor threshold에 설정된 수를 초과하면 비동기적으로 키 집합을 작성합니다. 결과 집합이 작을수록 동기적 작성 성능이 향상되므로 cursor threshold를 너무 낮게 설정하지 않는 것이 좋습니다.

[!참고] SQL Server 2005 에서는 생성 키 집합 기반 또는 정적 Transact-SQL 커서를 비동기적으로 지원하지 않습니다. OPEN 또는 FETCH 등의 Transact-SQL 커서 작업이 일괄 처리되므로 Transact-SQL 커서의 비동기 생성을 수행할 필요가 없습니다. SQL Server 2005에서는 각 커서 작업의 클라이언트 왕복 때문에 짧은 대기 시간 OPEN이 문제가 되는 비동기 키 집합 기반 또는 정적 API(응용 프로그래밍 인터페이스) 서버 커서를 계속 지원합니다.

키 집합의 예상 행 개수를 결정하는 최적화 프로그램의 정확도는 커서에 있는 각 테이블 통계의 통용성에 따라 다릅니다.

cursor threshold 옵션은 고급 옵션입니다. sp_configure 시스템 저장 프로시저를 사용하여 설정을 변경하면 show advanced options를 1로 설정해야만 cursor threshold를 변경할 수 있습니다. 이 설정은 서버를 다시 시작하지 않아도 즉시 적용됩니다.

참고 항목

개념

서버 구성 옵션 설정

관련 자료

RECONFIGURE(Transact-SQL)
sp_configure(Transact-SQL)
UPDATE STATISTICS(Transact-SQL)

도움말 및 정보

SQL Server 2005 지원 받기