GraphQL Sorgu Maliyeti Tahminleyicisi
Bir GraphQL işleminin sunucunuza ulaşmadan önce maliyetini tahmin edin. Derin biçimde iç içe geçen ve çarpılan liste seçimlerini bulun; her liste boyutu varsayımını da kaydedin.
En fazla 200.000 karakterlik bir işlem, 1.000.000 karakterlik bir şema ve 200.000 karakterlik değişken kabul eder. En fazla 10.000 alan ve 64 iç içe geçme düzeyini, 1 ile 10.000 arasında liste boyutlarını ve 0 ile 1.000 arasında alan maliyetlerini hesaba katar. Tahmin tarayıcınızın arka plan işçisinde çalışır. JSON raporu ve CSV dökümü indirilebilir. Bir işlem veya işlem adı belirtilmiş birden çok işlem. Fragmentler genişletilir. En fazla 200.000 karakter. Çalıştırmadan önce ayarları gözden geçirin.
Sonucunuz
GraphQL Sorgu Maliyeti Tahminleyicisi
- GraphQL işlemini ana kutuya yapıştırın.
- Şemayı SDL veya introspection JSON olarak yapıştırın.
- Sunucunuz farklı değerler kullanıyorsa varsayılan liste boyutunu, dilimleme argümanlarını ve alan maliyetlerini ayarlayın.
- Tahmini çalıştırın, maliyetin yoğunlaştığı noktaları inceleyin ve JSON ya da CSV dökümünü indirin.
Bilmeniz gerekenler
En fazla 200.000 karakterlik bir işlem, 1.000.000 karakterlik bir şema ve 200.000 karakterlik değişken kabul eder. En fazla 10.000 alan ve 64 iç içe geçme düzeyini, 1 ile 10.000 arasında liste boyutlarını ve 0 ile 1.000 arasında alan maliyetlerini hesaba katar. Tahmin tarayıcınızın arka plan işçisinde çalışır. JSON raporu ve CSV dökümü indirilebilir.
Maliyet modeli
Seçilen her alan, dönüş türünün nesne veya skaler maliyetini alır ve üzerindeki liste boyutlarıyla çarpar. Toplam, genişletilmiş alan seçimlerinin toplamıdır; bu nedenle yinelenen seçimler birleştirilmiş sunucu yürütmesini olduğundan pahalı gösterebilir. __typename ücretsizdir. Bu planlama modeli bir sunucuyu, koşullu yönergeleri veya iç içe listelerin içeriğini yürütmez ve sunucunun uyguladığı bir sınır değildir.
Liste boyutları
Bir liste alanının boyutu first, last veya limit gibi dilimleme argümanlarının en büyüğünden alınır. Değer belirtilmezse işlem değişkenlerinin ve şema argümanlarının varsayılanları kullanılır. Dilimleme değeri yoksa etkin olduğunda @listSize(assumedSize:) kullanılır, ardından modelin varsayılan liste boyutu alınır. @cost(weight:) alan maliyetini değiştirir. Türetilen tüm boyutlar 1 ile 10.000 arasında tam sayı, ağırlıklar ise 0 ile 1.000 arasında olmalıdır. Geçersiz işlemler, değişkenler, sınırlar ve döngüsel fragmentler tahmini türlendirilmiş bir hatayla durdurur.
Raporu okuma
Rapor varsayımları, en maliyetli on alt ağacı ve derinlik, çarpan, liste boyutu, kendi maliyeti ve alt ağaç maliyetiyle tüm ağacı listeler. CSV'de her alan yolu için bir satır bulunur. Fragment yayılımları kullanıldıkları yerde genişletilir; döngüsel fragment, sonlu maliyet varsayımı değil sorgu doğrulama hatasıdır.