configureQueryAnalyzer
정의
configureQueryAnalyzer
버전 7.0에 추가.
복제본 세트 또는 샤딩된 클러스터 에서 컬렉션 에 대한 쿼리 샘플링을 구성합니다. 샘플링된 쿼리는 샤드 키 의 읽기 및 쓰기 (write) 분포에 대한 지표 를 계산하기 위해
analyzeShardKey
에 정보를 제공합니다.
호환성
이 명령은 다음 환경에서 호스팅되는 배포에서 사용할 수 있습니다.
MongoDB Atlas: 클라우드에서의 MongoDB 배포를 위한 완전 관리형 서비스
참고
이 명령은 모든 MongoDB Atlas 클러스터에서 지원됩니다. 모든 명령에 대한 Atlas 지원 에 대한 자세한 내용은 지원되지 않는 명령을 참조하세요.
MongoDB Enterprise: MongoDB의 구독 기반 자체 관리 버전
MongoDB Community: MongoDB의 소스 사용 가능 무료 자체 관리 버전
구문
명령은 다음과 같은 구문을 가집니다:
db.adminCommand( { configureQueryAnalyzer: <string>, mode: <string>, samplesPerSecond: <double> } )
명령 필드
configureQueryAnalyzer
에는 다음과 같은 필드가 있습니다:
필드 | 유형 | 필요성 | 설명 |
---|---|---|---|
configureQueryAnalyzer | 문자열 | 필수 사항 | 쿼리 샘플링을 위해 구성할 컬렉션의 네임스페이스 입니다. |
mode | 문자열 | 필수 사항 | 쿼리 분석기가 실행되는 모드입니다. "full" 또는 "off" 로 설정해야 합니다. |
samplesPerSecond | double | 옵션 | 초당 샘플 수입니다.
자세한 내용은 samplesPerSecond 상한을 참조하세요. |
액세스 제어
configureQueryAnalyzer
에는 다음 역할 중 하나가 필요합니다.
dbAdmin
분석 중인 collection이 포함된 데이터베이스에 대한 역할clusterManager
cluster에 대한 역할
행동
configureQueryAnalyzer
을(를) 실행할 때 다음 동작을 고려하세요.
삭제된 컬렉션 및 이름이 변경된 컬렉션
collection이 삭제되거나 이름을 바꾸면 Query 샘플링이 자동으로 비활성화됩니다. collection을 다시 만들거나 이름을 바꾼 후 쿼리를 샘플링하려면 쿼리 샘플링을 다시 구성해야 합니다.
samplePerSeconds 상한
The upper limit for samplesPerSecond
is 50
. 속도가 높을수록 샘플링된 쿼리가 4일 이내에 10GB의 디스크 공간을 채우게 됩니다.
이 표는 각 샘플 속도 및 기간 조합에 대한 예상 디스크 사용량을 보여줍니다.
평균 샘플링된 쿼리 크기(kB) | samplesPerSecond | 샘플링 기간(일) | 샘플링된 쿼리 수 | 샘플링된 쿼리의 총 크기(GB) |
---|---|---|---|---|
0.5 | 0.1 | 7 | 60,480 | 0.03024 |
0.5 | 10 | 7 | 6,048,000 | 3.024 |
0.5 | 50 | 7 | 30,240,000 | 15.12 |
1000 | 50 | 1 | 4,320,000 | 4320 |
16,000 | 50 | 1 | 432,0000 | 69,120 |
queryAnalysisSampleExpirationSecs
샘플링된 쿼리는 expireAfterSeconds
가 포함된 TTL 인덱스가 있는 내부 collection에 저장됩니다. expireAfterSeconds
을(를) 구성하려면 queryAnalysisSampleExpirationSecs
서버 매개 변수를 사용합니다. 샘플링된 쿼리는 queryAnalysisSampleExpirationSecs
이후 자동으로 삭제됩니다.
쿼리 샘플링 진행률
쿼리 샘플링 프로세스를 모니터링하려면 $currentOp
단계를 사용하세요. 예시는 샘플링된 쿼리를 참조하세요.
샘플링된 쿼리 보기
모든 컬렉션 또는 특정 컬렉션에 대해 샘플링된 쿼리를 보려면 $listSampledQueries
집계 단계를 사용합니다.
제한 사항
Atlas 공유 클러스터 및 서버리스 인스턴스에서는
configureQueryAnalyzer
를 실행 수 없습니다.독립형 배포에서는
configureQueryAnalyzer
를 실행할 수 없습니다.--shardsvr
복제본 세트에 대해 직접configureQueryAnalyzer
를 실행할 수 없습니다. 샤드 cluster에서 실행할 때는configureQueryAnalyzer
을(를)mongos
에 대해 실행해야 합니다.time-series collection에 대해
configureQueryAnalyzer
를 실행할 수 없습니다.Queryable Encryption을 사용하는 컬렉션에 대해
configureQueryAnalyzer
를 실행할 수 없습니다.
출력
configureQueryAnalyzer
이전 구성을 설명하는 필드(있는 경우)와 새 구성을 설명하는 필드가 포함된 문서를 반환합니다.
oldConfiguration
, 이전 구성을 설명하는 필드를 포함합니다(있는 경우).newConfiguration
새 구성을 설명하는 필드가 포함되어 있습니다.
configureQueryAnalyzer
다음과 유사한 문서를 반환합니다.
{ ok: 1, oldConfiguration: { mode: ..., samplesPerSecond: ... } newConfiguration: { ... } }
예시
쿼리 샘플링 활성화
초당 5개의 샘플 속도로 test.students
컬렉션에서 쿼리 샘플링을 활성화하려면 다음 명령을 사용합니다.
db.adminCommand( { configureQueryAnalyzer: "test.students", mode: "full", samplesPerSecond: 5 } )
쿼리 샘플링 비활성화
test.students
collection에서 쿼리 샘플링을 비활성화하려면 다음 명령을 사용합니다.
db.adminCommand( { configureQueryAnalyzer: "test.students", mode: "off" } )