Jump to content
Forumu Destekleyenlere Katılın ×
Paticik Forumları
2000 lerden beri faal olan, çok şukela bir paylaşım platformuyuz. Hoşgeldiniz.

Oracle ile ASP.Net


aramil

Öne çıkan mesajlar

birşey sorayım bu oracle veritabanında tabloları ilişkilendirirken nasıl bir yol izlemeliyim? ms sql de rahattım kullaniciID yi her yere bağlıyordum herşeyi çekebiliyordum. bunda da sorguyla çekebilirim de komplike sorgu cümleleri doğacak inner outer joinler filan her seferinde uğraşmak istemiyorum. var mı önerisi olan?
Link to comment
Sosyal ağlarda paylaş

kaynamasın :)

said:

birşey sorayım bu oracle veritabanında tabloları ilişkilendirirken nasıl bir yol izlemeliyim? ms sql de rahattım kullaniciID yi her yere bağlıyordum herşeyi çekebiliyordum. bunda da sorguyla çekebilirim de komplike sorgu cümleleri doğacak inner outer joinler filan her seferinde uğraşmak istemiyorum. var mı önerisi olan?
Link to comment
Sosyal ağlarda paylaş

Oracle'da o işler daha kolay.
Eğer doğrudan = kullanırsan inner join yapmış olursun.

select * from t1, t2
where t1.id=t2.id

gibi. Kesişim kümesini getirir.

Left join falan yaparken şunu düşün; senin asıl almak istediğin bir tablon vardır, running (driving) table, diğeri onun yanına ek olarak geliyordur. Bu ek olarak gelenden join'de bir kolon kullandığın zaman yanına (+) koyarsın.

select * from t1, t2
where t1.id=t2.id(+)

Böyle yaptığın zaman t1'in hepsini alırsın, t2'den de eşleşenleri alırsın. Eşleşen yoksa null olur.

Oracle'ın nimetleri derken... SQL server'da ne yapılabiliyor ben bilmediğim için çok bir şey diyemeyeceğim. Ama bildiğim kadarıyla pek bir şey yapılamıyor zaten. Bu yüzden oracle kullanıyoruz, kullandırttırıyoruz.

En son date konusunda 2 3 tane tip, ve her tipin maskelemesi için farklı farklı kod akılda tutmak gerekmişti sql serverda. Oracle'da sen doğrudan maskeyi veriyorsun işte, tipi de date. to_date(20120720, 'YYYYMMDD') gibi. Net yani.

Bunun dışında analitik fonksiyonlar yok sanırım sql server'da. Oturup sp yazman gerekiyor her bir şey için. Oracle'da procedure veya function yazdığın durumlar oluyor elbet ama genelde sorguyla halletmeye çalışıyorsun işi ve oluyor da.

select tl/(sum(tl) over (partition by kullanici)) from t1

dediğinde mesela sana doğrudan toplamın % kaçını kullanıcının oluşturduğunu veriyor vs. Bunun gibi birçok analitik fonksiyon var. ama tabi bu tarz analitik işler yapıyorsan standart oracle almak çok da akıl karı değil. Gidip Infobright almak daha mantıklı bile olabilir. Columnar bir db çok daha fazla işine yarar.

Bunun dışında ne katkı sağlıyor... partition işleri falan kolay. Toad gibi bir nimet ve curse var. İstediğin her şeyi yapabiliyorsun, dba işlerini de kullanıcı işlerini de.

Paralellik sql server'da nasıldır bilmiyorum ama oracle'da rahat. Sen partition yapısını düzgün kurarsan zaten o paralellik alıyor genelde.

Ne biliyim, oracle işte. SQL server'da da takla ata ata bu yukarıdakileri yapıyorsunuzdur belki. Belkide takla atmadan yapıyorsunuzdur. Ama SQL server'da materialized view diye bir seçenek yok mesela bunu iyi biliyorum. Mview şöyle oluyor, standart view yerine mview yaratıyorsun. Bu mview'un verisi hazır olarak bekliyor. Sonra sen bir sorgu attığında eğer mview'un kümesi sorgunun kümesinden büyükse, gidip mview'dan alıyor. Böylece 30 tane tabloyu tekrar tekrar join etmiyor. Ama alamıyorsa, bu sefer sana hata dönmeden gidip asıl kaynaktan alıyor. Aşağıda daha somut bir örnek vereyim.

select t2.firma, t1.kullanici, sum(t1.tl) from t1, t2
where t1.kullanici = t2.kullanici
and t1.update_date >= sysdate-1
group by t2.firma, t1.kullanici

diye bir mview yarattın diyelim. Bunun sonucunu bir yerde saklıyor diye düşün; ama tablo olarak değil, view olarak

sonra sen eğer aşağıdaki sorguyu çalıştırırsan mview'dan okur. Daha az satır işleyip toplamı döndürür.

select t2.firma, sum(t1.tl) from t1, t2
where t1.kullanici = t2.kullanici
and t1.update_date >= sysdate-1
group by t2.firma

Bir nevi precalculation gibi. vs. vs. Çok var ya.

SQL server vs. Oracle diye google'da aratsanız daha mantıklı bence. Sonuçta her ikisinin de kurdu olmuş insan pek yok. Genelde biriyle çalışıyor insanlar.
Link to comment
Sosyal ağlarda paylaş

Çok komplike sorgular yazıyorsan, hep bağladığın join'ler vs. varsa, view yarat. Tekrar tekrar uğraşma.

aramil said:

kaynamasın :)

said:

birşey sorayım bu oracle veritabanında tabloları ilişkilendirirken nasıl bir yol izlemeliyim? ms sql de rahattım kullaniciID yi her yere bağlıyordum herşeyi çekebiliyordum. bunda da sorguyla çekebilirim de komplike sorgu cümleleri doğacak inner outer joinler filan her seferinde uğraşmak istemiyorum. var mı önerisi olan?
Link to comment
Sosyal ağlarda paylaş

×
×
  • Yeni Oluştur...