Stimatore del costo delle query GraphQL
Stima il costo di un'operazione GraphQL prima che raggiunga il tuo server. Individua le selezioni molto annidate e moltiplicate dalle liste, con ogni ipotesi sulla dimensione delle liste documentata.
Accetta un'operazione fino a 200.000 caratteri, uno schema fino a 1.000.000 di caratteri e variabili fino a 200.000 caratteri. Conta al massimo 10.000 campi e 64 livelli di annidamento, con dimensioni delle liste da 1 a 10.000 e costi dei campi da 0 a 1.000. La stima viene eseguita nel browser tramite un’elaborazione separata in secondo piano. I download sono un report JSON e un dettaglio CSV. Una singola operazione oppure più operazioni con il nome dell'operazione impostato. I frammenti vengono espansi. Fino a 200.000 caratteri. Controlla le impostazioni prima di eseguire.
Il tuo risultato
Stimatore del costo delle query GraphQL
- Incolla l'operazione GraphQL nel campo principale.
- Incolla lo schema come SDL o JSON di introspezione.
- Regola la dimensione predefinita delle liste, gli argomenti di limitazione e i costi dei campi se il tuo server usa valori diversi.
- Esegui la stima ed esamina i punti di maggior costo, poi scarica il dettaglio JSON o CSV.
Cosa aspettarsi
Accetta un'operazione fino a 200.000 caratteri, uno schema fino a 1.000.000 di caratteri e variabili fino a 200.000 caratteri. Conta al massimo 10.000 campi e 64 livelli di annidamento, con dimensioni delle liste da 1 a 10.000 e costi dei campi da 0 a 1.000. La stima viene eseguita nel browser tramite un’elaborazione separata in secondo piano. I download sono un report JSON e un dettaglio CSV.
Il modello di costo
Ogni campo selezionato riceve il costo per oggetto o scalare del proprio tipo di ritorno, moltiplicato per le dimensioni delle liste superiori. Il totale è la somma delle selezioni di campi espanse; selezioni ripetute possono quindi sovrastimare l'esecuzione unita del server. __typename è gratuito. Questo modello di pianificazione non esegue un server, direttive condizionali o contenuti di liste annidate e non è un limite imposto dal server.
Dimensioni delle liste
La dimensione di un campo lista deriva dall'argomento di limitazione più grande, come first, last o limit. Quando un valore è omesso, vengono usati i valori predefiniti delle variabili dell'operazione e degli argomenti dello schema. Senza un valore di limitazione, viene usato @listSize(assumedSize:) se abilitato, poi la dimensione predefinita delle liste del modello. @cost(weight:) sostituisce il costo di un campo. Tutte le dimensioni derivate devono essere interi da 1 a 10.000 e i pesi da 0 a 1.000. Operazioni, variabili o limiti non validi e frammenti ciclici interrompono la stima con un errore tipizzato.
Come leggere il report
Il report elenca le ipotesi, i dieci sottoalberi più costosi e l'albero completo con profondità, moltiplicatore, dimensione della lista, costo proprio e costo del sottoalbero. Il CSV ha una riga per percorso di campo. I richiami ai frammenti vengono espansi dove sono usati; un frammento ciclico è un errore di validazione della query, non un'ipotesi di costo finito.