Docs Menu
Docs Home
/
MongoDB マニュアル
/ / /

configureQueryAnalyzer

項目一覧

  • 定義
  • 互換性
  • 構文
  • アクセス制御
  • 動作
  • 出力
  • 詳細
configureQueryAnalyzer

バージョン 7.0 で追加

レプリカセットまたはシャーディングされたクラスター上のコレクションのクエリ サンプリングを構成します。 サンプリングされたクエリは、シャードキーの読み取りおよび書込み分散に関するメトリクスを計算するための情報を analyzeShardKeyに提供します。

このコマンドは、次の環境でホストされている配置で使用できます。

  • MongoDB Atlas はクラウドでの MongoDB 配置のためのフルマネージド サービスです

注意

このコマンドは、すべての MongoDB Atlas クラスターでサポートされています。 すべてのコマンドの詳細については、「サポートされていないコマンド 」を参照してください。

  • MongoDB Enterprise: サブスクリプションベースの自己管理型 MongoDB バージョン

  • MongoDB Community: ソースが利用可能で、無料で使用できる自己管理型の MongoDB のバージョン

このコマンドの構文は、次のとおりです。

db.adminCommand(
{
configureQueryAnalyzer: <string>,
mode: <string>,
samplesPerSecond: <double>
}
)

configureQueryAnalyzer には、次のフィールドがあります。

フィールド
タイプ
必要性
説明
configureQueryAnalyzer
string
必須
クエリ サンプリング用に構成するコレクションの名前空間
mode
string
必須
クエリ アナライザが実行されるモード。 "full"または"off"のいずれかに設定する必要があります。
samplesPerSecond
double
任意

1 秒あたりのサンプル数。

  • mode"full"に設定されている場合、 samplesPerSecond050の間で設定する必要があります。

  • mode"off"に設定されている場合、サーバーはsamplesPerSecondを無視します。

詳細については、「 samplePerSecond の上限制限 」を参照してください。

configureQueryAnalyzer には、次のいずれかのロールが必要です。

  • dbAdmin 分析対象のコレクションを含むデータベースに対するロール

  • clusterManager クラスターに対するロール

configureQueryAnalyzerを実行中のときは、次の動作を考慮してください。

コレクションが削除または名前変更されると、クエリ サンプリングは自動的に無効になります。 コレクションが再作成または名前変更された後にクエリをサンプリングする場合は、クエリ サンプリングを再構成する必要があります。

samplesPerSecondの上限は50です。 レートが高い場合、サンプリングされたクエリは 4 日未満で 10 GB のディスク領域を埋め込みます。

次の表は、各サンプル レートと期間の組み合わせでの推定ディスク使用量を示しています。

サンプル クエリ サイズ(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

サンプリングされたクエリは、 expireAfterSecondsを持つ TTL インデックスを持つ内部コレクションに保存されます。 expireAfterSecondsを構成するには、 queryAnalysisSampleExpirationSecsサーバー パラメータを使用します。 サンプリングされたクエリは、 queryAnalysisSampleExpirationSecs後に自動的に削除されます。

クエリのサンプリング プロセスをモニターするには、$currentOp ステージを使用します。例については、「サンプル クエリ」を参照してください。

すべてのコレクションまたは特定のコレクションのサンプリングされたクエリを表示するには、 $listSampledQueries集計ステージを使用します。

  • Atlas共有クラスターサーバーレス インスタンスではconfigureQueryAnalyzerを実行できません。

  • スタンドアロン配置ではconfigureQueryAnalyzerを実行できません。

  • --shardsvrレプリカセットに対してconfigureQueryAnalyzerを直接実行することはできません。 シャーディングされたクラスターで実行する場合、 configureQueryAnalyzermongosに対して実行する必要があります。

  • 時系列コレクションに対してconfigureQueryAnalyzerを実行することはできません。

  • Queryable Encryptionが設定されているコレクションに対してconfigureQueryAnalyzerを実行することはできません。

configureQueryAnalyzer は、古い構成を説明するフィールド(存在する場合)と新しい構成を説明するフィールドを含むドキュメントを返します。

  • oldConfigurationが存在する場合は、古い構成を説明するフィールドが含まれます。

  • newConfiguration には、新しい構成を説明するフィールドが含まれています。

configureQueryAnalyzer は、次のようなドキュメントを返します。

{
ok: 1,
oldConfiguration: {
mode: ...,
samplesPerSecond: ...
}
newConfiguration: {
...
}
}

test.studentsコレクションで 1 秒あたり 5 サンプルのレートでクエリ サンプリングを有効にするには、次のコマンドを使用します。

db.adminCommand(
{
configureQueryAnalyzer: "test.students",
mode: "full",
samplesPerSecond: 5
}
)

test.studentsコレクションでクエリ サンプリングを無効にするには、次のコマンドを使用します。

db.adminCommand(
{
configureQueryAnalyzer: "test.students",
mode: "off"
}
)

戻る

configureCollectionBalancing