Adem KALIN – Yazılım Mühendisi

MS SQL Server Gözüyle Oracle

Merhaba,

Uzun bir aradan sonra tekrar kafamda oluşan bir fikri sanal ortama dökmeye karar verdim 🙂

SqlServer-OracleYaklaşık 1 ay önce başladığım yeni işimde çalışma ortamı sebebiyle Oracle ve PL/SQL ‘e girişmek zorunda kaldım. Bu zamana kadar yoğunlukla MS SQL Server kullanmıştım. Fakat burada bütün sistem Oracle mimarisi üzerinden işlemekte. E napalım, iş başa düştü. Düştük google yollarına 🙂

Araştırmaya başlayacaktım Oracle PL/SQL öğrenmek için ama peki ya nereden başlamalıydım acaba? PL/SQL syntax (yani bilmeyenler için yazım kuralları) olarak temelde SQL Server dan kullanılan T-SQL’e yakın diyebiliriz büyük oranda. Fakat ayrıntılara girdiğimiz noktada DBMS (DataBase Management System) ‘in gücü devreye giriyor tabi ki.

Neyse, işte bu sebeple öncelikle aralarında ne tür farklar olduğunu öğrenmek üzere yola çıktım. Yaklaşık 2 günümü sadece araştırma üzerine ayırdım (belki abartılı gelebilir ama evet öyle oldu 🙂 ) Birçok Türkçe ve İngilizce kaynağı inceledim. Parça parça bulduğum ayrıntıları bir dökümana not ettim daha sonra üzerinden geçerek pekiştirmek üzere. Gayet güzel bir kaynak oldu. Onu halen saklıyorum ofis bilgisayarımda.

Ben asıl “öğrenme” nin bir iş üzerinde bata-çıka çalışma ile olabileceğini düşünen biriyim. Ancak öncesinde mutlaka (ufak da olsa) bir temel olması gerekiyor. Yaptığım araştırmalar ve çıkardığım notlar da bu temeli oluşturdu zaten. Daha sonrasında ufaktan ufaktan işe başladığımda bunun faydalarını gördüm. En azından ekranda gördüğüm PL/SQL satırlarına tren muamelesi yapmamış oldum 🙂

Bu yazımda, farklardan bahsetmeyeceğim, sadece giriş olarak düşünebiliriz. Tespit ettiğim asıl farkları yeni bir -belki de daha fazla- yazı(lar)da paylaşacağım. Böylece, ben araştırma yaparken tek parça halinde bir yerde bulamadığım bir konuyu arkadan gelecek ve muhtemelen benimle aynı yolları takip edecek arkadaşların istifadesine sunmuş olacağım.

databaseHer veritabanı yönetim sisteminin  (DBMS) güçlü olduğu noktalar vardır. Bir karşılaştırma yaparken topyekün “Bu sitstem daha güçlüdür”  gibi bir söz söyleyemeyiz. Fakat inceledikçe, Oracle ‘ın birçok imkan sağladığını gördüm progamcılara. Basit bir örnek vererek geçmek gerekirse, SQL Server’da maalesef (benim kullandığım versiyonlarında) bir function yada stored procedure’e parametre olarak array tipi dahi gönderemezken, Oracle tarafında hem input hem de output olarak Table yada Type tipinde parametre yollayabiliyoruz.

Bu örnekteki gibi birçok yönden Oracle ‘ı ben daa güçlü gördüm. Ancak SQL Server tarafının ise kullanım kolaylığının daha yüksek olduğunu düşünüyorum şu an. Tabi bu bilgileri yalnızca vâkıf olduğum kadarıyla paylaşıyorum. Eğer ki bir yanlışım/eksiğim varsa beni düzeltebilirsiniz. Sonuçta tamamına hakim olduğumu iddia edemem.

Neyse, daha fazla uzatmiyim ben. Asıl amacım olan diğer yazıyı hazırlamadan önce biraz daha üzerinde çalışmam gerekecek. Her geçen gün yeni bir özelliğini, keşfediyorum. Kim bilir belki bir yazıda da programlama ortamları (yani IDE ‘leri) hakkında paylaşırım 🙂 Onlar değil midir zaten her zaman programcıya en büyük kolaylıkları sunan.

Şimdilik iyi araştırmalar…

Tagged on: , , ,

4 thoughts on “MS SQL Server Gözüyle Oracle

  1. Osman Tamburacı

    Yazılarınız için teşekkürler. Aydınlatıcı ve açıklayıcı olmuş.

    Ben de Mssql’den Oracle’a geçtim ve uzun süre zorluk yaşadım.
    Oracle’ı yazan kişiler sanki; database yönetimi için o kadar uğraştık, kullanacak adam da kebap gibi oturup yazmasın, sürünsün mantığıyla yazmış. Bu kadar amatör hatalar ve eksiklikler nasıl olabilir anlamak mümkün değil.
    1 günlük çalışmayla bile bulunabilecek 10-15 adet çok basit kullanım hata detayları bir kenara dursun, parametre tanımlamak ve select @parametre şeklinde sonucu görememek veya cursorların işleyişini rahatça kontrol edememek, debug berbatlığı ve bir ton temel süreç feci şekilde.

    Tabiki çok kapsamlı ve hızlı, yoksa bankalar kullanmazdı. Microsoftla kapışabilmeleri ve birçok alanda geçebilmeleri de ölçüttür.
    Ama DOS’tan bozma önyüz ile kullanıcı düşmanı işleyişlerini nasıl basitçe güzelleştirmezler, vardır herhalde bir bildikleri.

    1. admin Post author

      Olumlu geri bildiriminiz için teşekkür ederim.

      Oracle ile ilgili düşünceleriniz hakkında ufak birkaç şey yazmak istedim izninizle 🙂

      Yaklaşık 2 senedir aktif ve yoğun şekilde çalışıyorum Oracle ile, her geçen gün yeni özellikler keşfettikçe ne kadar kapsamlı bir platform olduğunu görüyorum. Öncelikle diğer platformlar ile arasında çok ciddi bir felsefe farkı var. Bunların bir kısmı performans, bir kısmı kod tutarlılığı bir kısmı da geri bakım maliyetini düşürmek için. İlk başlarda çokça eskiden kullandığınız özellikleri arıyorsunuz ancak sonradan olmadan da güzel işler çıkabildiğini görüyorsunuz. Oracle da kullanılan dil (PL/SQL) aslında tam da bir Query dili değil tam tersine birçok OOP tekniklerini de içeren bir programlama dili diyebilirim.

      Önyüz konusunda ise kendi önyüzü belki sadece çok basic özelliklere sahip olabilir, ben eğitimler dışında kullanmadım. Ama bu konuda çok başarılı 3. party yazılımlar mevcut. PL/SQL Developer, Toad, SQL Navigator bunlardan sadece birkaçı.

      Zaman içerisinde kullandıkça siz de muhtemelen düşüncelerinizin değiştiğine şahit olabilirsiniz 🙂

  2. Osman Tamburacı

    Umarım dediğiniz gibi olur.

    PL/SQL Developer kullanıyorum, TOAD’a geçmeyi düşünüyorum.

    Kapsam ve index konularında çok iyi olduğunu biliyorum. Daha neleri vardır.
    Kullanımdaki zorluklar ve sp içerisindeki tanımlamalar can sıkıcı benim açımdan.

    Bir de profiler olayına değinmeyi unutmuşum. SQL Server Profiler paketle birlikte veriliyor ve insanın eli ayağı oluyor biliyorsunuz. Oracle için de sitesinden kontrol veya paralı başka yazılımlar mevcut ama hiçbiri server’a gönderilen her scripti yakalayamıyor. Hepsi visual studio’ya bağlanıyor. Dolayısıyla kullanıcıların hatalarını takip ve oluşturulan yazılım programından doğrudan yakalama yapılamıyor.

    Sizi biliyorsanız paylaşmanız süper olur benim için.

    1. admin Post author

      PL/SQL Developer, developer dostu bir IDE’dir bana göre. Mesela önyüzünde çok fazla ayrıntı bulunmadığı için development sırasında kişiye gayet geniş bir ekran kullanımı sunuyor. Bununla birlikte formatlama konusunda gayet başarılı, hatta kendiniz isterseniz bir format şablonu (Templates tolbox’ı altında bulunur) oluşturarak otomatik bir fonksiyon/prosedürün ana gövde scriptlerini tek bir tık ile oluşturabiliyorsunuz. Daha başka benim çok kullandığım bir özelliği de debugging, bu konuda da gayet kullanışlı diyebilirim. Debug yapmak istediğiniz obje debug seçeneği ile derlenmiş olsun yeter ki…

      TOAD ise daha profesyonel bir çözüm. Herhangi bir DB objesinin bağımlılıkları ile içeriğini çok ayrıntılı şekilde ve tek bir ekran altında görüntüleyebiliyorsunuz. (Obje ismi üzerinde iken F4 ‘e basmanız yeterli 🙂 ) Başka bir özelliği ise çoklu sessionlar üzerinde aynı ekranda fakat farklı sekmelerde birden fazla script yazabilir ve çalıştırabilirsiniz. Her bir login session için ayrı bir sekme, bunların herbirinin altında da birbirinden bağımsız query ekranları için sekmeler… Bununla birlikte daha çok yönetimsel arayüzler konusunda çok başarılı. Mesela herhangi bir db üzerinde (aynı anda birden fazla db ile çalışabiliyoruz büyük sistemler gereği) açılmış sessionlar ile ilgili anlık çalışan script (uzun süren bir process çalışıyorsa mesela), beklemeler, var ise lock lar gibi birçok istatistiksel bilgiyi Session Browser ile size sunuyor. Bu tool ‘a menüden Database -> Monitor altından ulaşabilirsiniz.

      SQL Server ‘daki profiler için çalıştığım dönemlerden hayal meyal kullandığımı hatırlıyorum ama çok ayrıntı yok aklımda açıkçası. Bu zamana kadar (2 buçuk yıla yakın süredir) Oracle’da bu tarz birşeye ihtiyacım olmadığı için açıkçası bunun muadili bir özellik var mıydı bilmiyordum ama az önce TOAD’da kontrol ettim, yine menüden Database -> Monitor altında “SQL Tracker” diye bir tool gördüm. Kısa bir denemeyle, bilgisayarınızda o açık olan Oracle client bağlantıları için tracking yapılabildiğini test ettim. Ama bunu uzaktaki başka bir client için yapabiliyor muyuz açıkçası bilmiyorum, araştırmak lazım.

      Umarım faydalı olmuştur yazdıklarım. başka zamanlarda takıldığınız noktalar olursa ve ben de biliyor isem cevap vermeye çalışırım.

      Sayfanın üst kısmında sosyal medya profillerim için bağlantılarım mevcut, LinkedIn ‘den vs istediğiniz zaman sorabilirsiniz.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir