Oracle hataları

ORA-01652: unable to extend temp segment

Geçici tablespace doldu

ORA-01652: unable to extend temp segment by N in tablespace TEMP

Bir sıralama, hash join ya da benzer bir işlem için geçici tablespace yetmedi. Asıl neden çoğu zaman küçük tablespace değil, kötü bir yürütme planıdır. TEMP’i kullanan ifadeyi bulun, düzeltin; yer eklemeyi sonra düşünün.

ORA-01652 ne demek?

Belleğe sığmayan işlemler geçici tablespace’e taşar: büyük sıralamalar, hash join’ler, indeks oluşturma, global geçici tablolar. Yer biterse ifade ORA-01652 ile düşer. Eksik bir join koşulunun yol açtığı kartezyen birleşim, dakikalar içinde yüzlerce gigabayt tüketebilir.

ORA-01652 neden olur?

ORA-01652 nasıl çözülür?

  1. TEMP’i şu an kimin kullandığını bulun: V$TEMPSEG_USAGE ile V$SESSION’ı birleştirin.
  2. En ağır ifadenin planını inceleyin; eksik join koşullarına ve kartezyen çarpımlara bakın.
  3. Yer gerçekten gerekiyorsa tempfile ekleyin: ALTER TABLESPACE temp ADD TEMPFILE ….
  4. Mesajın TEMP’i gösterdiğini kontrol edin. Kalıcı bir tablespace’i gösteriyorsa işlem orada kalıcı bir segment oluşturuyordur.

ORA-01652 örneği

TEMP’i şu an kim kullanıyor?

SELECT s.sid, s.username, u.sql_id, u.tablespace,
       ROUND(u.blocks * t.block_size / 1024 / 1024) AS mb
  FROM v$tempseg_usage u
  JOIN v$session s ON s.saddr = u.session_addr
  JOIN dba_tablespaces t ON t.tablespace_name = u.tablespace
 ORDER BY mb DESC;

Geçici alanı yalnızca gerçekten gerekiyorsa ekleyin:

ALTER TABLESPACE temp ADD TEMPFILE SIZE 10G AUTOEXTEND ON NEXT 1G MAXSIZE 30G;

SQLlightspeed’de

Bir ifade hata verdiğinde SQLlightspeed’in hata paneli, hata kodunu sade bir Türkçe açıklama ve ne yapmanız gerektiğine dair bir öneriyle; Oracle’ın kendi mesajı ve Oracle dokümantasyonuna bağlantıyla birlikte gösterir — bu hata ve sık görülen onlarca başka hata için.

İlgili hatalar

ORA-01653ORA-01555ORA-04031 Tüm Oracle hataları →

Oracle dokümantasyonu: ORA-01652. Oracle, Oracle Corporation’ın tescilli ticari markasıdır. SQLlightspeed’in Oracle ile bir bağlantısı yoktur.