ORACLE PL SQL – AY SONLARININ LİSTELENMESİ

Bu başlık altında Oracle’da pl-sql kullanarak verilen tarihler arasındaki ay sonlarının listesini aşağıdaki sorgu ile elde edebilirsiniz. Aşağıdaki kod 2014 başından 2016 yılı arasındaki ay sonlarının listesini vermektedir.

SELECT TO_CHAR(tum_gunler,'dd.mm.yyyy') AS ay_sonlari
  FROM (SELECT to_date('01.01.2014','dd.mm.yyyy') + LEVEL as tum_gunler
          FROM dual
       CONNECT BY LEVEL <= to_date('01.01.2016','dd.mm.yyyy')-to_date('01.01.2014','dd.mm.yyyy')
       )
WHERE tum_gunler = last_day(tum_gunler)
Continue reading

LINUX WINDOWS PAYLAŞILAN DOSYLARA NASIL ERİŞİRİM?

Windows üzerinde share (paylaştığınız) dosyalara, Linux üzerinden erişmek için farklı ama basit bir yol izlemeniz gerekiyor. Piyasada bir çok Linux dağıtımı ve sürümü bulunmakta olduğundan görsel arayüz farklılık gösterecektir fakat temelde yapılan iş benzerdir. Ben örneğimi Oracle Linux 7 üzerinden göstereceğim.

Linux’tan Windows üzerindeki dosyalara nasıl erişilir ?

Ön gereksinim olarak tabi ki, gerekli yetkileri verilmiş ve paylaşıma açılmış bir klasör ve makinalarınız aynı network üzerinde olmak zorunda. (firewall ile ilgili düzenleme gerekebilir)

Continue reading

ORACLE LINUX 7 KURULUM (INSTALLATION) RESİMLİ

Internette çok fazla türkçe kaynak olmaması sebebi ile Oracle Linux kurulumunu elimden geldiğinde screenshot (ekran görüntüsü) ekleyerek anlatmaya çalıştım. Kurulumu Vmware Workstation 10.0.3 üzerinde yapacağım. Kurulum yaparken konfigürasyonumu (configuration), kurulum bittikten sonra Oracle Database kuracağım şekilde yapacağım. (Onun nasıl kurulduğunu da başka bir başlıkta anlatacağım.). Oracle Linux’un son versiyonunu buraya tıklayarak adresten indirebilirsiniz. Ben alttaki resimden en son versiyonu olan “Oracle Linux 7 Media Pack for x86 64 bit” seçtim. Siz de kendi kurulumunuzda en son versiyon neyse onu indirebilirsiniz.

Biraz uzun bir anlatım oldu ama herhangi bir sıkıntı yaşamamanız için tüm ekran çıktılarını eklemek istedim. Herkese kolay gelsin.

Continue reading

MongoDB Index Oluşturma, Index Kullanmanın Avantajları Dezavantajları

Index Nedir?

Veritabanında bir değer arattığımız zaman, ilgili değerleri bulabilmek için kayıtların tamamına sırayla tek tek bakılır (table scan). Collection’ımızda (tablomuzda) birkaç yüz document(kayıt) var ise, tüm kayıtların tek tek bakılması çok fazla zaman kaybı yaratmayacaktır. Fakat collection’ımızdaki (tablomuzdaki) document (kayıt) sayısı milyon seviyelerindeyse, aranan değer için tüm document’lara bakılması,  sonucun gelmesini çok fazla geciktirecektir. Sorgularda tablonun baştan sona tamamının taranmasını engellemek için RDBMS’lerde de kullandığımız Index’ler oluştururuz.

Table Scan ile Index Arasındaki Performans Farkı

Continue reading

Yatay vs Dikey Ölçeklenebilirlik – Horizontally vs Vertically Scalable Scalability

Yatay Ölçeklenebilirlik Nedir ?

Sistemin/Veritabanının Yatayda ölçeklenebilir olması (horizontally scalable, scale out); ucuz ve çok sayıda makinenin aynı anda kullanılması anlamına gelir. Yatay ölçeklenebilirlik sayesinde yedeklilik de performans artışı da sağlanabilir.

Dikey Ölçeklenebilirlik Nedir ?

Sistemin/Veritabanının Dikeyde ölçeklenebilir olması (dikey ölçeklenebilirlik, vertically scalable, scale up); bir tane çok güçlü aynı zamanda pahalı bir makine/donanım kullanılmasıdır. Dikey Ölçeklenebilir sistemlerde donanım kısıtları mevcuttur. Örneğin mevcut sisteminizin CPU frekansını 5 ghz yapamazsınız veya 1 tb ram yapamazsınız.

Continue reading

ÖRNEK CDR KAYDI, (SAMPLE CDR LOGS) – CALL DETAIL RECORD

Geçenlerde örnek CDR log’una ihtiyacım oldu (MongoDB’ye örnek kayıt atmak için), fakat internette uzun süre aramama rağmen bulamadım. Kendim excelde işimi görecek bir dummy cdr log dosyası oluşturdum. İngilizce (English) ve Türkçe olmak üzere 2 ayrı sheet’te 1 excele temsili 1000 kayıt ekledim. Ama veriler random üretildiği için isteyen formülü değiştirip, istediği formatta ve miktarda veri üretebilir.

Continue reading

TWO PHASE COMMIT NEDİR?

Two phase commit nedir ? Two phase commit ne işe yarar ?

Two phase commit dağıtık (distributed) sistemler üzerinde gerçekleşen transaction’ların her sunucuda/kaynakta/sistemde başarıyla tamamlanıp tamamlanmadığı bilgisini verir. Örneğin A, B ve C sunucularımız olsun. Veriler üzerinde değişiklik gerektiren (update, delete…) bir transaction çalıştırıldığında, A, B ve C sunucuları bu transaction’ı başarılı bir şekilde tamamlamışlarsa, A,B ve C sunucularında commit uygulanır.

Continue reading

MongoDB remove() VS drop() PERFORMANS FARKI

remove(): Collection içinde bulunan tüm document’ları tek tek siler.

drop(): komple collection’ı veritabanından kaldırır. Eğer collection’daki tüm verileri sileceksek ( indexler dahil) drop() kullanmanızı tavsiye ederim, çünkü çok daha hızlıdır.

Aradaki performans farkını ölçmek için bir milyon kayıtlı iki adet farklı collection oluşturup, birinci collection’nın verisini remove() ile, diğer collection’nın verisini drop() ile silip, iki işlem arasındaki zamanı aşağıdaki işlemle kıyaslıyoruz.

Continue reading