happytails.ai
日本語

GraphQL クエリコスト推定ツール

GraphQL 操作がサーバーに届く前にコストを推定します。深くネストされ、サイズが乗算されるリスト選択を見つけ、リストサイズの各仮定を明記します。

最大 200,000 文字の操作、最大 1,000,000 文字のスキーマ、最大 200,000 文字の変数を受け付けます。フィールドは最大 10,000 個、ネストは最大 64 階層、リストサイズは 1~10,000、フィールドコストは 0~1,000 です。推定はブラウザー内のバックグラウンドワーカーで実行されます。JSON レポートと内訳 CSV をダウンロードできます。 一つの operation、または operation 名を指定した複数の operation。fragment は展開されます。 最大200,000文字。 実行前に設定を確認してください。

処理結果

問題を報告したり、アイデアを共有したりできます。

GraphQL クエリコスト推定ツール
  1. メイン欄に GraphQL operation を貼り付けます。
  2. スキーマを SDL または introspection JSON として貼り付けます。
  3. サーバーで異なる値を使っている場合は、デフォルトのリストサイズ、リストサイズを決める引数、フィールドコストを調整してください。
  4. 見積もりを実行し、最もコストの高いフィールド選択を確認してから、JSON または CSV の内訳をダウンロードしてください。

できること・制限

最大 200,000 文字の操作、最大 1,000,000 文字のスキーマ、最大 200,000 文字の変数を受け付けます。フィールドは最大 10,000 個、ネストは最大 64 階層、リストサイズは 1~10,000、フィールドコストは 0~1,000 です。推定はブラウザー内のバックグラウンドワーカーで実行されます。JSON レポートと内訳 CSV をダウンロードできます。

コストモデル

選択された各フィールドには、戻り値の型に応じたオブジェクトまたはスカラーのコストがあり、上位のリストサイズを掛けます。合計は展開されたフィールド選択の総和です。そのため、選択の重複により結合後のサーバー実行コストを過大評価することがあります。__typename は無料です。この計画用モデルはサーバーを実行せず、条件付きディレクティブやネストされたリストの内容も処理しません。サーバーが強制する上限でもありません。

リストサイズ

リストフィールドのサイズには、first、last、limit など、リストサイズを決める引数のうち最大の値を使います。値を省略した場合は、操作変数のデフォルト値とスキーマ引数のデフォルト値を使います。リストサイズを決める値がない場合は、@listSize(assumedSize:) が有効ならその値を使い、次にモデルのデフォルトリストサイズを使います。@cost(weight:) はフィールドコストを置き換えます。算出サイズはすべて 1~10,000 の整数、重みは 0~1,000 でなければなりません。無効な操作、変数、境界値、循環フラグメントがあると、型付きエラーで推定を停止します。

レポートの確認

レポートには前提、コストが高いサブツリー上位十件、深さ、乗数、リストサイズ、個別コスト、サブツリーコストを含むツリー全体が表示されます。CSV はフィールドパスごとに一行です。fragment spread は使用箇所で展開されます。循環 fragment は有限コストの仮定ではなく、クエリ検証エラーになります。

次に使えるツール