쿼리 시간 제한 및 페이지 매김
테이블 서비스에는 다음과 같은 두 가지 유형의 쿼리 작업이 지원됩니다.
쿼리 테이블 작업은 지정된 스토리지 계정 내의 테이블 목록을 반환합니다. 테이블 목록은 요청에 지정된 조건에 따라 필터링할 수 있습니다.
엔터티 쿼리 작업은 지정된 테이블에서 엔터티 집합을 반환합니다. 쿼리 결과는 요청에 지정된 조건에 따라 필터링할 수 있습니다.
Table service에 대한 쿼리는 한 번에 최대 1,000개까지 항목을 반환할 수 있으며, 최대 5초 동안 실행될 수 있습니다. 결과 집합에 항목이 1,000개 이상 포함된 경우, 쿼리가 5초 내에 완료되지 않은 경우 또는 쿼리가 파티션 경계를 벗어날 경우에는 결과 집합의 다음 항목에서 쿼리를 다시 시작하기 위해 사용할 수 있는 연속 토큰을 개발자에게 제공하는 헤더가 응답에 포함됩니다. 연속 토큰 헤더는 쿼리 테이블 작업 또는 쿼리 엔터티 작업에 대해 반환될 수 있습니다.
쿼리 예약 및 처리에 대한 요청에 할당된 총 시간은 쿼리 실행에 필요한 5초를 포함하여 30초입니다.
쿼리가 결과를 반환하지 않을 수도 있지만 그래도 연속 헤더는 반환됩니다.
다음 표에서는 연속 토큰 헤더를 보여줍니다.
연속 토큰 헤더 | 설명 |
---|---|
x-ms-continuation-NextTableName |
이 헤더는 쿼리 테이블 작업의 컨텍스트에서 반환됩니다. 반환된 테이블 목록이 완전하지 않으면 목록의 다음 테이블 이름에 대한 해시가 연속 토큰 헤더에 포함됩니다. |
x-ms-continuation-NextPartitionKey |
이 헤더는 쿼리 엔터티 작업의 컨텍스트에서 반환됩니다. 이 헤더에는 테이블에 대한 후속 쿼리에 반환할 다음 파티션 키의 해시가 포함됩니다. |
x-ms-continuation-NextRowKey |
이 헤더는 쿼리 엔터티 작업의 컨텍스트에서 반환됩니다. 이 헤더에는 테이블에 대한 후속 쿼리에 반환할 다음 행 키의 해시가 포함됩니다. 일부 경우에는 x-ms-continuation-NextRowKey 가 null 일 수 있습니다. |
연속 토큰을 검색하고 다음 결과 페이지를 반환하도록 후속 쿼리를 실행하려면 먼저 응답 헤더에 연속 토큰이 있는지 확인합니다. 헤더가 없거나 헤더 값이 null
이면 반환할 추가 엔터티가 없습니다.
참고
연속 토큰을 포함하는 후속 요청을 만들 때 요청에 원래 URI를 전달해야 합니다. 예를 들어 원래 요청의 일부로 , $select
또는 $top
쿼리 옵션을 지정$filter
한 경우 후속 요청에 해당 옵션을 포함하려고 합니다. 그렇지 않으면 후속 요청이 예기치 않은 결과를 반환할 수 있습니다.
$top
이 경우 쿼리 옵션은 전체 응답 집합의 최대 결과 수가 아니라 페이지당 최대 결과 수를 지정합니다.
자세한 내용은 테이블 및 엔터티 쿼리 를 참조하세요.
Microsoft .NET 클라이언트 라이브러리를 사용하여 연속 토큰을 수동으로 처리하는 경우 먼저 쿼리 작업의 결과를 QueryOperationResponse 개체로 캐스팅합니다. 그런 다음 개체의 Headers 속성에서 연속 토큰 헤더에 QueryOperationResponse
액세스할 수 있습니다.
연속 토큰을 검색한 후에는 해당 값을 사용해서 다음 결과 페이지를 반환하도록 쿼리를 생성합니다. 쿼리 요청 URI는 응답에 반환된 연속 토큰 헤더에 해당하는 다음 매개 변수를 사용할 수 있습니다.
NextTableName
NextPartitionKey
NextRowKey
참고
쿼리 예약 및 처리 요청에 할당된 총 시간은 쿼리 실행 5초를 포함하여 30초입니다.
작업이 삽입, 업데이트 또는 삭제 작업인 경우 클라이언트에서 오류를 반환했음에도 불구하고 서버에서 작업이 성공했을 수 있습니다. 이 경우는 클라이언트 제한 시간이 삽입, 업데이트 또는 삭제 작업의 최대 제한 시간인 30초 미만으로 설정된 경우에 발생할 수 있습니다.
예제 응답 헤더 및 후속 요청
다음 코드 예에서는 Customers 테이블에 대해 연속 헤더를 반환하는 엔터티 쿼리의 예제 응답 헤더 집합을 보여줍니다.
x-ms-continuation-NextPartitionKey
와 x-ms-continuation-NextRowKey
가 모두 반환됩니다.
Date: Mon, 27 Jun 2016 20:11:08 GMT
Content-Type: application/json;charset=utf-8
Server: Windows-Azure-Table/1.0 Microsoft-HTTPAPI/2.0
Cache-Control: no-cache
x-ms-request-id: f9b2cd09-4dec-4570-b06d-4fa30179a58e
x-ms-version: 2015-12-11
x-ms-continuation-NextPartitionKey: 1!8!U21pdGg-
x-ms-continuation-NextRowKey: 1!8!QmVuOTk5
Content-Length: 880298
다음 데이터 페이지에 대한 요청은 다음 URI와 같이 생성할 수 있습니다.
http://myaccount.table.core.windows.net/Customers?NextPartitionKey=1!8!U21pdGg-&NextRowKey=1!12!QmVuMTg5OA--