PostgreSQL GEQO (Genetic Query Optimization)
PostgreSQL GEQO (Genetic Query Optimization), karmaşık sorguları optimize etmek için genetik algoritma tabanlı bir optimizasyon yöntemidir. Bu yöntem, birden fazla sorgu planını değerlendirir ve en iyisini seçmek için genetik algoritma prensiplerini kullanır. GEQO, özellikle karmaşık sorguların optimize edilmesi gerektiğinde performansı artırmak için kullanılır.
PostgreSQL GEQO (Genetic Query Optimization) ile önemli parametreler:
geqo:
GEQO’nun açık olup olmadığını belirler. GEQO, çok sayıda tablonun katıldığı karmaşık sorgular için kullanılan bir sorgu planlama algoritmasıdır. Varsayılan olarak on durumundadır.
geqo_threshold:
GEQO’nun kullanılacağı minimum tablo birleştirme sayısını belirler. Eğer bir sorguda bu sayıdan daha fazla birleştirme varsa, GEQO devreye girer. Varsayılan değer 12dir.
geqo_effort:
GEQO’nun ne kadar çaba harcayacağını belirleyen bir ölçektir. Değer 1 ile 10 arasında olabilir ve yüksek değerler daha fazla çaba anlamına gelir.
geqo_pool_size:
GEQO’nun kullanacağı gen havuzunun boyutunu belirler0 ayarlandığında, çaba seviyesine bağlı olarak varsayılan bir değer seçilir.
geqo_generations:
GEQO’nun kaç nesil boyunca çalışacağını belirler0 ayarlandığında, çaba seviyesine bağlı olarak varsayılan bir değer seçilir.
geqo_selection_bias:
GEQO’nun seçim yaparken kullandığı bias faktörünü belirler. Değer 1.5 ile 2.0 arasında olabilir.
geqo_seed:
GEQO’nun rastgele seçimler yaparken kullanacağı başlangıç tohumunu belirler. Değer 0.0 ile 1.0 arasında olabilir.
default_statistics_target:
Planlayıcının her sütun için toplayacağı istatistik miktarını belirler. Değer 1 ile 10000 arasında olabilir.
constraint_exclusion:
Planlayıcının bölümleme kısıtlamalarını dışlamasını etkinleştirir veya devre dışı bırakıron, off veya partition olabilir.
cursor_tuple_fraction:
Bir imleç sorgusunun sonuç kümesinin ne kadarının ilk yinelemede alınacağını belirler. Değer 0.0 ile 1.0 arasında olabilir.
from_collapse_limit:
Planlayıcının FROM listesindeki basit birleştirmeleri ne zaman çökerteceğini belirler. Daha yüksek değerler daha fazla birleştirmeye izin verir.
jit:
JIT derlemesinin etkin olup olmadığını belirler. Varsayılan olarak on durumundadır.
JIT ile ilgili daha fazla bilgi edinmek için PostgreSQL JIT (Just-In-Time) yazıma göz atabilirsiniz.
join_collapse_limit:
Planlayıcının JOIN ifadelerini ne zaman çökerteceğini belirler1 ayarlandığında, açık JOIN ifadelerinin çökertilmesi devre dışı bırakılır.
plan_cache_mode:
Plan önbelleğinin davranışını belirlerauto, force_generic_plan veya force_custom_plan olabilir.
recursive_worktable_factor:
Yinelemeli sorgular için çalışma tablosunun maliyetini belirler. Değer 0.001 ile 1000000 arasında olabilir.
Postgresql.conf ile ilgili daha fazla detay için postgresql.conf yazıma göz atabilirsiniz.