Tüm Ürünler
Search
Belge Merkezi

MaxCompute:Split Size Hint

Son Güncelleme:Oct 04, 2026

Bir MaxCompute SQL işi beklenenden yavaş çalıştığında, bunun nedeni genellikle görev sayısı ile kullanılabilir kaynaklar arasındaki uyumsuzluktur. split_size ipucu, MaxCompute'ün tablo verilerini paralel işlemek için nasıl parçalara böleceğini belirler. Her parça bir harita (map) görevine dönüşür; bu nedenle bölme boyutu doğrudan işin eşzamanlılığını belirler. Görev sayısını mevcut kaynaklarla dengelemek için bu değeri ayarlayın: Daha küçük bölmeler daha yüksek paralellik için daha fazla harita görevi oluştururken, daha büyük bölmeler zamanlama baskısını azaltmak amacıyla görev sayısını düşürür.

SELECT ...
FROM <table_name> /*+split_size(<value_in_mb>)*/
...

Varsayılan bölme boyutu 256 MB'tır.

Nasıl çalışır

MaxCompute bir tablonun verilerini okur ve belirtilen boyutta parçalara böler. Harita görevlerinin sayısı yaklaşık olarak şöyledir:

map tasks = table data size / split_size

Örneğin, split_size(256) kullanılan 10 GB'lık bir tablo yaklaşık 40 harita görevi oluşturur. Bu değer split_size(64) olarak düşürülürse yaklaşık 160 harita görevi oluşturulur; bu da paralelliği dört katına çıkarır.

MaxCompute çoğu tablo için split_size ipucunu dikkate alır. Bunun tek istisnası şudur: Sorgu iyileştirici, optimizasyon amacıyla kümeleştirilmiş bir tablonun paketleme özelliklerini kullanıyorsa o tablo için ipucunu yok sayar.

Bölme boyutunu ayarlama

Görev sayısı ile kullanılabilir kaynaklar arasındaki uyumsuzluk, yavaş SQL işlerinin en yaygın nedenlerinden biridir:

  • Mevcut kaynaklara göre çok fazla görev -- Görevler yürütme yuvaları için kuyruğa girer ve zamanlama ek yükü artar. İş, hesaplama yapmaktan çok beklemeyle geçer.

  • Mevcut kaynaklara göre çok az görev -- Kaynaklar boşta kalırken az sayıda görev büyük veri parçalarını sırayla işler. İş olması gerekenden daha uzun sürer.


Senaryo


Eylem


Neden


Görevler kaynaklar için kuyruğa giriyor


split_size değerini artırın (örneğin 512 veya 1024)


Daha az harita görevi rekabeti ve zamanlama ek yükünü azaltır


İş çalışırken kaynaklar boşta kalıyor


split_size değerini azaltın (örneğin 64 veya 128)


Daha fazla harita görevi paralel çalışarak kaynak kullanımını iyileştirir

En iyi performans için split_size değerini 256 MB'ın katları olacak şekilde (örneğin 256, 512, 1024) ayarlayın.

Örnekler

Tüm örneklerde ipucu, FROM yan tümcesinde tablo adının hemen ardından yer alır.

src okunurken bölme boyutunu 1 MB olarak ayarlayın. src tablosundaki veriler 1 MB'lık parçalara bölünür ve her parça ayrı bir harita görevi tarafından işlenir. 10 GB'lık bir tablo için bu işlem, varsayılan 40 görev yerine yaklaşık 10.240 harita görevi oluşturur:

SELECT a.key
FROM src a /*+split_size(1)*/
JOIN src2 b ON a.key = b.key;

Büyük bir tabloda görev sayısını azaltmak için bölme boyutunu 512 MB'a çıkarın. 10 GB'lık bir tablo için bu işlem görev sayısını 40'tan yaklaşık 20'ye düşürür:

SELECT *
FROM large_table /*+split_size(512)*/
WHERE dt = '2024-01-01';

Kümeleştirilmiş tablolar ve birden fazla ipucu ile davranış

  • Kümeleştirilmiş tablolar: Sorgu iyileştirici, optimizasyon amacıyla tablonun paketleme özelliklerini kullanıyorsa kümeleştirilmiş bir tablo için split_size ipucunu yok sayar.

  • Aynı tabloda birden fazla ipucu: Bir sorgu aynı tabloyu farklı split_size ipuçlarıyla birden fazla kez okursa MaxCompute en küçük değeri kullanır. Örneğin:

    • Aynı tabloda split_size(1) ve split_size(10) -- MaxCompute 1 değerini kullanır.

    • Bir başvuruda split_size(1) ve diğerinde ipucu yok -- MaxCompute 1 değerini kullanır (256 MB'lık varsayılan değeri değil).

Başvuru


Özellik


Değer


Açıklama


İpucu adı


split_size


İpucu yorumunda kullanılan ad


Sözdizimi


/*+split_size(<value_in_mb>)*/


Tablo adından sonra yer alan satır içi yorum sözdizimi


Yerleşim


Bir sorguda tablo adından sonra


Takip ettiği belirli tablo için geçerlidir


Birim


MB


Bölme boyutu değeri megabayt cinsinden yorumlanır


Varsayılan


256


Herhangi bir ipucu belirtilmediğinde kullanılır


Önerilen değerler


256'nın katları (örneğin 256, 512, 1024)


En iyi performans için dahili blok sınırlarıyla hizalanır


Çakışma çözümü


Aynı tablodaki tüm ipuçları arasındaki en küçük değer


Aynı tablo farklı ipuçlarıyla birden fazla kez göründüğünde uygulanır