EXPLAIN ve EXPLAIN ANALYZE Okuma
Plan ağacını okuyun, maliyet ile gerçek süreyi anlayın ve en yük oluşturan düğümleri belirleyin.
EXPLAIN ve EXPLAIN ANALYZE Okuma, CoddyKit'te ücretsiz bir SQL Academy dersidir. Bu, 4 dersinin 1. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, SQL Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. SQL Academy kursu toplamda 4 dersten oluşur.
EXPLAIN Neden Kullanılır
EXPLAIN, bir sorguyu çalıştırmadan planlayıcının sorguyu yürütme stratejisini gösterir. EXPLAIN ANALYZE sorguyu çalıştırır ve gerçek süreleri de gösterir.
Temel EXPLAIN
Tahmini planı gösterin:
EXPLAIN SELECT * FROM orders WHERE user_id = 42;
-- QUERY PLAN
-- ---------------------------------------------------------------
-- Index Scan using orders_user_id_idx on orders
-- (cost=0.43..8.45 rows=5 width=120)
-- Index Cond: (user_id = 42)EXPLAIN ANALYZE
Sorguyu çalıştırır ve gerçek süreleriyle satır sayılarını ekler:
EXPLAIN ANALYZE SELECT * FROM orders WHERE user_id = 42;
-- Index Scan using orders_user_id_idx on orders
-- (cost=0.43..8.45 rows=5 width=120)
-- (actual time=0.041..0.043 rows=4 loops=1)
-- Planning Time: 0.082 ms
-- Execution Time: 0.057 msAğacı Okuma
Planlar ağaç yapısındadır. Girinti, alt düğümü gösterir. Alt düğümler üst düğümlerden önce çalışır.
Aggregate
-> Hash Join
Hash Cond: (o.user_id = u.id)
-> Seq Scan on orders
-> Hash
-> Seq Scan on usersMaliyet ve Süre
cost sütununda TWO sayı bulunur: startup_cost..total_cost. Bunlar saniye değil, planlayıcının keyfi birimleridir. Gerçek değerler için actual time kullanın.
rows = Tahmini; gerçek satır sayısı = Gerçek
rows, planlayıcının tahminidir. Gerçek satır sayısı, gerçekte gerçekleşen değerdir. Aralarında büyük fark varsa istatistikler hatalıdır.
Döngüler Süreyi Çarpar
İç içe döngülerde actual time=X loops=N, her yinelemenin X sürdüğü anlamına gelir; düğüm başına toplam süre X×N'dir.
Nested Loop (actual time=0.05..2.03 rows=500)
-> Seq Scan on orders (actual ... loops=1)
-> Index Scan using users_pkey (actual time=0.01..0.01 loops=500)BUFFERS G/Ç'yi Gösterir
EXPLAIN (ANALYZE, BUFFERS), sürelerin ardındaki G/Ç işlemlerini, yani arabellek isabetlerini ve okumalarını raporlar:
EXPLAIN (ANALYZE, BUFFERS) SELECT ...;
-- Buffers: shared hit=12 read=4FORMAT Seçenekleri
Programatik işleme için JSON veya YAML kullanın:
EXPLAIN (ANALYZE, FORMAT JSON) SELECT ...;Yıkıcı İfadelerde EXPLAIN ANALYZE Kullanmayın!
Bir UPDATE/DELETE/INSERT üzerinde EXPLAIN ANALYZE kullanmak, ifadeyi gerçekten çalıştırır. Değişiklikleri onaylamadan incelemek istiyorsanız işlemi ROLLBACK ile birlikte bir işlem içine alın:
BEGIN;
EXPLAIN ANALYZE DELETE FROM orders WHERE ...;
ROLLBACK;Yaygın Plan Düğümleri
- Sıralı Tarama — tablonun tamamını okur
- Dizin Taraması — bir dizin kullanır
- Bit eşlem yığın taraması — birden çok dizini birleştirir
- İç İçe Döngü / Karma Birleştirme / Sıralı Birleştirme — birleştirme stratejileri
- Sıralama, Toplama, Sınır, Gerçekleştirme
Plan Okuma İş Akışı
- Yavaş sorgu üzerinde EXPLAIN ANALYZE çalıştırın
- En yüksek
actual timedeğerine sahip düğümü bulun - Tahmin edilen
rowsileactual rowsdeğerlerini karşılaştırın - Dizinlerin kullanılıp kullanılmadığını kontrol edin
- Yineleyin: dizin ekleyin / yeniden yazın / ANALYZE çalıştırın
Özet
EXPLAIN ANALYZE, birincil performans aracınızdır.
- Maliyet görecelidir, süre gerçektir
- Tahmin edilen ve gerçek satır sayılarının karşılaştırılması, istatistik sorunlarını ortaya çıkarır
- BUFFERS, G/Ç işlemlerini gösterir
- Yıkıcı sorguları BEGIN; ... ROLLBACK içine alın
Hızlı Kontrol
EXPLAIN ile EXPLAIN ANALYZE arasındaki fark nedir?
Sıkça Sorulan Sorular
“EXPLAIN ve EXPLAIN ANALYZE Okuma” dersi ücretsiz mi?
Evet — “EXPLAIN ve EXPLAIN ANALYZE Okuma” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve SQL Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. SQL Academy kursu toplamda 4 dersten oluşur.
“EXPLAIN ve EXPLAIN ANALYZE Okuma” dersinde ne öğreneceğim?
Plan ağacını okuyun, maliyet ile gerçek süreyi anlayın ve en yük oluşturan düğümleri belirleyin. SQL Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
SQL Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te SQL Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 1. dersidir.
“EXPLAIN ve EXPLAIN ANALYZE Okuma” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu SQL Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her SQL Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- EXPLAIN ve EXPLAIN ANALYZE Okuma
- Sıralı Taramalar ve INDEX Taramaları
- Hash Birleştirme ve Birleştirmeli Birleştirme ve İç İçe Döngü
- Yavaş Sorguları Belirleme ve Düzeltme