DBAtlas · Veritabanı operasyon atlası

Paralel sorgu çalıştır / paralelliği ayarla

Oracle

-- Sorgu düzeyinde hint ile:
SELECT /*+ PARALLEL(t, 4) */ * FROM buyuk_tablo t;
-- Oturum düzeyinde zorla:
ALTER SESSION FORCE PARALLEL QUERY PARALLEL 4;

PARALLEL hint tabloya paralel tarama uygular; degree=DOP. Aşırı DOP sunucu kaynaklarını tüketir, dikkatli seçin. parallel_degree_policy=AUTO otomatik yönetir.

PostgreSQL

-- Oturumda paralel işçi sayısını ayarla:
SET max_parallel_workers_per_gather = 4;
-- Planlayıcı Gather/Gather Merge düğümü ekler:
EXPLAIN (ANALYZE) SELECT count(*) FROM buyuk_tablo;

Planda Gather/Parallel Seq Scan görünürse paralellik devrede. max_parallel_workers ve min_parallel_table_scan_size de etkiler.

MySQL

-- InnoDB sınırlı paralellik (yalnız belirli işlemler):
SET GLOBAL innodb_parallel_read_threads = 4;
-- COUNT(*) ve birincil anahtar taramalarında etkilidir.

MySQL genel paralel sorgu yürütmesi sunmaz; innodb_parallel_read_threads yalnız clustered index taramalarını (ör. COUNT(*)) paralelleştirir. Karmaşık JOIN'ler tek thread'dir.

SQL Server

-- Sorgu düzeyinde MAXDOP hint:
SELECT * FROM dbo.buyuk_tablo OPTION (MAXDOP 4);
-- Örnek düzeyi: sp_configure 'max degree of parallelism', 4;

MAXDOP paralel işlem sayısını sınırlar; MAXDOP 1 paralelliği kapatır. 'cost threshold for parallelism' eşiği aşılınca plan paralelleşir.

MongoDB

// Büyük aggregation'da disk kullanımına izin ver:
db.satis.aggregate([ { $group: { _id: "$il", t: { $sum: "$tutar" } } } ], { allowDiskUse: true })
// Sharded küme her shard'ı paralel işler.

Sharded kümede sorgu her shard üzerinde paralel çalışır; tek düğümde aggregation aşamaları çoğunlukla sıralıdır. allowDiskUse bellek sınırını aşan işlemlere olanak tanır.

Redis

# Uygulanamaz: sorgu paralelliği kavramı yoktur.

Komut yürütme tek thread'lidir; ölçek için Cluster (sharding) veya io-threads ile ağ I/O paralelliği kullanılır.

Elasticsearch

# Shard sayısı = paralellik birimidir; sorgu shard'lar arasında paralel çalışır.
# Tek shard içinde parçalayarak paralellik (scroll/PIT ile):
GET <index>/_search
{ "slice": { "id": 0, "max": 4 }, "query": { "match_all": {} } }

Arama tüm ilgili shard'larda eşzamanlı çalışır; primary shard sayısı temel paralellik seviyesini belirler. slices büyük scroll/reindex işlemlerini böler.

DBAtlas'ta aç →