Oracle 11g'de bir alt sorgu vermenin bir yolu var mıdır?Oracle 11g SQL'de bir alt soruyu bir takma ad vermek için bir yol var mı?
select *
from
(select client_ref_id, request from some_table where message_type = 1) abc,
(select client_ref_id, response from some_table where message_type = 2) defg
where
abc.client_ref_id = def.client_ref_id;
Aksi takdirde, client_ref_id temelinde iki alt sorgunun birleştirilmesi için bir yol var. Kendi kendine birleşme olduğunu anlıyorum, ama veritabanı üzerinde ben kendi kendine birleştirme üzerinde koşuyorum tamamlamak için 5 dakikaya kadar sürebilir (çalıştığım gerçek sorguda bazı ekstra mantık var ama ben kendi kendine katılma olduğunu belirledim ne olduğunu soruna neden olmak). Tek tek alt sorguların sadece kendileri tarafından tamamlanmaları birkaç saniye sürüyor. Kendi kendine katılma sorguları şöyle bir şey gibi görünür:
select st.request, st1.request
from
some_table st, some_table st1
where
st.client_ref_id = st1.client_ref_id;
Sadece merak, kabul edilen cevap ne kadar iyi performans gösterdi? – DCookie
Bunun kendi kendine katılma olduğunu anlayamadınız. Tablo, indeksler ve istatistiklerin aynı bir kopyasını yapın ve aynı zamanlamayı alıp almadığınızı görün. Daha iyi bir soru, "Bu sorguyu ayarlamanıza yardımcı ol" olurdu ve FULL sorgusu ile açıklama planını yayınladı. –