Firebird sorgularının optimizasyonu
Firebird sorgularının optimizasyonu, SELECT ifadelerinin nasıl çalıştığını kapsar: planlar, istatistikler, erişim yöntemleri, ayar desenleri ve MON$ ile Trace API kullanarak yavaş sorguların nasıl yakalanacağı.
Müfredat
-
SELECT sorgularının performansı - bir sorgu nasıl yürütülür
- İstemci-sunucu yaklaşımı
- Hazırlama, plan oluşturma, yürütme, getirme, arabelleğe alma
-
Yürütme istatistikleri
- Okumalar, yazmalar, getirmeler, süre
- Veritabanı önbelleği, disk, CPU
- Çöpün yürütmeyi nasıl etkilediği
- Önbellek isabetleri (Classic vs SuperServer)
-
Erişim yöntemleri / veri yolları
- NATURAL tarama
- INDEX araması: B-ağaçları, kayıt işaretçileri, yön, örnekler
- Zorunlu indeks kullanımı, indekslerin bit birleşimi
- Tablo kardinalitesi ve indeks seçiciliği
- WHERE içinde indeksleri kapatma
- Index ORDER vs SORT (
firebird.confayarları) - ORDER BY / GROUP BY içinde indeksleri kapatma
- Saklı prosedürlerde ve görünümlerde planlar
-
Sorgu ayarlama
- PLAN nasıl okunur
- Optimizasyon ayarları
WHERE FIELD IN (…)- LIKE, CONTAINING, STARTING WITH
- JOIN: örtük vs açık, hatalı birleştirmeler, LEFT/RIGHT, kendi kendine birleştirmeler
- UPDATE + SELECT
- MAX, MIN, COUNT, AVG, SUM
- IN vs EXISTS vs MERGE
WHERE (X AND Y) OR (K AND N)
-
MON$ ve Trace API ile yavaş sorguları izleme
- MON$ ve Trace nedir
- Önemli MON$ alanları
- Trace API parametreleri ve çıktısı
- Araçlar (HQbird izleme dahil)