Veritabanı

PL/SQL Komut Satırında Çıktı (Sonuç) Görüntülemek

Oracle veritabanı kullanıcısıysanız PL/SQL komut satırında (Command Line) bazı sonuçları görüntülemek isteyebilirsiniz. Bunun için dbms_output.put_line() fonksiyonu kullanılır.

Bazı araçlarda bu fonksiyonu kullandığımız halde sonuç görüntülenmeyebilir. Bu durumda serveroutput değişkenine on değerini atamamız gerekir.

SQL> set serveroutput on

Örneğin bir prosedür sonucunda "hosaf.org" yazdırmak istersek aşağıdaki şekilde yazmamız gerekecektir;

SQL> set serveroutput on
SQL> declare
  2    v_line varchar2(40);
  3  begin
  4    v_line := 'hosaf.org';
  5    dbms_output.put_line (v_line);
  6  end;
  7  /

hosaf.org
 
PL/SQL procedure successfully completed.

Bilgi kaynağı: http://www.dba-oracle.com/concepts/displaying_pl_sql_output.htm

Oracle'da (PL/SQL) Bir Satırın Varlık Bilgisini Alma İpucu

Bir veritabanı kaydının sadece varlığıyla yani olup olmadığıyla ilgileniyorsak ilk akla gelen strateji, count(*) yani kayıt sayısını alıp bu değerin sıfırdan büyük olup olmaması karşılaştırmasını yapmak.

KISI tablosunda GRUP alanı 1 olan kayıt var mı diye merak ettik diyelim.

select count(*) from KISI k where k.GRUP=1

Bu sorgu eğer KISI tablosunda GRUP alanı 1 olan çok fazla kayıt varsa uzun sürecektir. Halbuki biz sadece varlığını merak ettiğimiz için gereksizce beklemiş olma ihtimalimiz var.

Bu durumu çözmek için rownum anahtar kelimesini kullanabiliriz. rownum ile sorguyu daha da kısıtlayarak belli bir satır numarasından fazlasını almamayı sağlayabiliriz. Yani satır numarası 1 olan kaydın sayısını (count(*)) where koşulunda rownum=1 ile kısıtlayarak çekersek en az bir tane bu tipte kayıt olduğunu ya da hiç olmadığını anlayabiliriz;

select count(*) from KISI k where k.GRUP=1 and rownum=1

Bu sorgu sonucunda elimize ya 0 ya da 1 değeri gelecektir. 0 olduğunda herhangi bir kayıt sayılmamış yani hiç bu koşula uygun kayıt yok demektir. 1 ise belki birden fazla vardır fakat en azından bir tane bu koşula uygun kayıt vardır demektir. İlgilendiğimiz bilgi varlık olduğundan bu sorgu büyük kayıtlara sahip olabilecek tablolarda daha hızlı cevap verecektir.

Kaynak: https://stackoverflow.com/questions/1088156/quickest-query-to-check-for-...

O'Reilly'den Ücretsiz Graph Databases Kitabı

Yazılım kitaplarında önemli bir yayımcı şirket olan O'Reilly, Graph Databases kitabını ücretsiz olarak dağıtıyor. NoSQL hareketinin önemli bir tipi olan Graph tarzı veritabanları hakkında bilgi sahibi olmak isteyenlere tavsiye ederim. Vaktim olursa, kitaptan aldığım notları burada paylaşmayı düşünüyorum. Yoğunluktan dolayı pek mümkün olmasa da en azından niyetim var :)

Oracle DB Notları

Oracle veritabanı ile ilgili notlarımı burada paylaşıyorum.

InfoQ'dan Ücretsiz NoSQL Mini Kitabı

Infoq.com sitesi NoSQL veritabanları hakkında ücretsiz bir e-dergi (ya da mini e-kitap diyebiliriz) yayınladı. İndirmek için adres: http://www.infoq.com/minibooks/emag-NoSQL

İçerik şöyle;

  • The State of NoSQL
  • Introduction to MongoDB for Java, PHP and Python Developers
  • CAP Twelve Years Later: How the “Rules” Have Changed
  • NoSQL: Past, Present, Future

Kendimce aldığım notları da paylaşıyorum;

The State of NoSQL

- NoSQL hareketi, klasik ilişkisel veritabanı sistemlerinin yanlışlığını savunmuyor. Tam tersine ilişkisel sistemlere katkı sağlıyor.
- Görünürde olmak ve para kazandırmak çok önemli. Pinterest ve Instagram gibi hızlı çıkış yapan servislerin hibrit (SQL + NoSQL) yapıları var.
- Bir ankete göre bu endüstride artık en çok aranan 10 yetenek içinden iki tanesi NoSQL: MongoDB ve Hadoop
- 2011 yazında Oracle bir whitepaper'ında NoSQL'in fazla bağlanılmaması gereken bir teknoloji olduğunu çünkü uzun süreli olmayacağını belirtmiş. Birkaç ay sonra ise Hadoop entegrasyonunu çıkarmış :) Daha sonra ise NoSQL adlı veritabanını piyasaya sürdü. Bu arda diğer büyük oyuncular da pazarda pay sahibi olabilmek için harekete geçti.
- Genel anlamda Bulut Bilişim / Cloud Computing olarak adlandırılan yapılarda NoSQL'in payı büyük oldu, PaaS için neredeyse bir standart haline geldi. Örneğin Redis ve Mongo; CloudFoundry, OpenShift, dotCloud gibi PaaS servislerinde kullanılıyor.
- NoSQL kavramı çok geniş bir yelpazede işleniyor. Bu yüzden standartlarından bahsetmek güç. Anahtar-Değer, Doküman ve Graph tipi önde gelen NoSQL tipleri.
- Matt Aslett'in çıkardığı haritaya bakarak genişliği konusunda biraz daha hayrete düştüm:

- Bunların yanında birden fazla veri yapısı modelini kullanabilen veritabanları da mevcut, örneğin ArangoDB, OrientDB, AlechemyDB. Bu veritabanları, kullanıcılarının doküman ya da JSON modeliyle başlayıp graph ya da anahtar-değer modellerini de eklemeye olanak sağlıyor.
- NoSQL ile ilgili kitap piyasasının olgunluğu da kendini kanıtladığını gösteriyor.
- En çok büyüme gösterenlerden biri olan Hadoop ile ilgili, büyük oyuncular her geçen gün entegrasyonlar yayınlıyorlar. Bununla beraber veri yönetimi hala zor.
- Piyasanın ikincisi olan MongoDB'nin en çok eleştiri aldığı iki nokta:
1. Eski versiyonlar
2. Bilgi eksikliği (32 bit ile maksimum 2GB veri yönetilmekte ve 64 bit kullanımı tavsiye edilmesine rağmen 32 bit eleştirileri çok yaygın)

Okudukça notlarımı güncelleyeceğim...

Sayfalar

Subscribe to RSS - Veritabanı