Kostnadsuppskattning för GraphQL-frågor
Uppskatta kostnaden för en GraphQL-operation innan den når servern. Hitta djupt nästlade val och val som multipliceras av listor, med varje antagande om liststorlek dokumenterat.
Tar emot en operation på högst 200 000 tecken, ett schema på högst 1 000 000 tecken och variabler på högst 200 000 tecken. Räknar högst 10 000 fält och 64 nästlingsnivåer, med liststorlekar från 1 till 10 000 och fältkostnader från 0 till 1 000. Uppskattningen körs i webbläsaren i en bakgrundsworker. Nedladdningarna är en JSON-rapport och en CSV-uppdelning. En operation, eller flera med operationsnamnet angivet. Fragment expanderas. Upp till 200 000 tecken. Kontrollera inställningarna innan du kör.
Ditt resultat
Kostnadsuppskattning för GraphQL-frågor
- Klistra in GraphQL-operationen i huvudrutan.
- Klistra in schemat som SDL eller introspektions-JSON.
- Justera standardstorleken för listor, listbegränsande argument och fältkostnader om servern använder andra värden.
- Kör uppskattningen och granska de största kostnadsposterna, ladda sedan ned JSON- eller CSV-uppdelningen.
Vad du kan förvänta dig
Tar emot en operation på högst 200 000 tecken, ett schema på högst 1 000 000 tecken och variabler på högst 200 000 tecken. Räknar högst 10 000 fält och 64 nästlingsnivåer, med liststorlekar från 1 till 10 000 och fältkostnader från 0 till 1 000. Uppskattningen körs i webbläsaren i en bakgrundsworker. Nedladdningarna är en JSON-rapport och en CSV-uppdelning.
Kostnadsmodellen
Varje valt fält får objekt- eller skalärkostnaden för sin returtyp, multiplicerad med liststorlekarna ovanför. Summan omfattar de expanderade fältvalen; upprepade val kan därför överskatta serverns sammanslagna körning. __typename har ingen kostnad. Denna planeringsmodell kör inte en server, villkorliga direktiv eller innehåll i nästlade listor och är inte en gräns som servern upprätthåller.
Liststorlekar
Ett listfält får sin storlek från det största listbegränsande argumentet, som first, last eller limit. När ett värde utelämnas används standardvärden för operationens variabler och schemats argument. Utan ett listbegränsande värde används @listSize(assumedSize:) om det är aktiverat, därefter modellens standardstorlek för listor. @cost(weight:) ersätter kostnaden för ett fält. Alla härledda storlekar måste vara heltal från 1 till 10 000 och vikter från 0 till 1 000. Ogiltiga operationer, variabler eller gränser och cykliska fragment stoppar uppskattningen med ett typat fel.
Så läser du rapporten
Rapporten listar antaganden, de tio dyraste delträden och hela trädet med djup, multiplikator, liststorlek, egen kostnad och delträdskostnad. CSV har en rad per fältsökväg. Fragmentreferenser expanderas där de används; ett cykliskt fragment är ett frågevalideringsfel, inte ett antagande om ändlig kostnad.