Siz, 2 satır “select…where...” yazmaya üşenip, tabloya F4 çekenler.!

Tablodaki kayıt sayısından habersiz sonra ‘Data’ tabına girenler.!

Bu da yetmezmiş gibi, bulduğu ilk kolona order by yapanlar.!

Selam olsun sizlere…

O tablonun 78 milyon kayıt içerdiğinden haberiniz var mıydı?

Peki yaptığınız hareketin “select * from 78milyon order by 78milyondate;” anlamına geldiğinin farkında mısınız?

  • Bu iki soruya da cevabınız “evet“se, tek bahaneniz kalıyor: O da en fazla 6 aylık IT iş tecrübeniz var demektir.! Yöneticiniz henüz bu konuyu size anlatmamış demek ki.

* Bir de F4 bile yapmadan, direkt “select * from 78milyon order by 78milyondate;” yapanlar var. Onlara yorum yapmayacağım bu yazıda..!

Bu masum kaçamağınız, size nelere mal olacak hemen anlatayım:

* Muhtemelen Toad ekranınız beyazlaşacak, sonra da donacak. Çaktırmadan Toad'ı kökten kapatıp sorunu çözdüğünüzü düşüneceksiniz. Ta ki Dba'lerden gelen o acı telefona kadar.!

* Siz Toad'ı kapattım sansanız bile, yaptığınız hareketin oluşturduğu "select * from 78milyon order by 78milyondate;" sorgusu, arkada DB'de çalışmaya devam edecek.

* Önce Dba'lere, sonra da Bilgi Güvenliği uygulamalarına "alert"ler düşmeye başlayacak.

* Dba'leriniz bu uzun süredir çalışan sorguyla ilgili sizden açıklama isteyecek.

* Bu kadar büyük bir tabloya "full" gidilip, sonra yapılan "order by" işi, DB'de temp tablespace kullanımını tavan yaptıracak. Dba'leriniz bir de bunun için sizden açıklama isteyecek.

* DB'de temp alanı kısıtlıysa, ya da temp'i o an kullanan yoğun işler varsa, uygulama da bundan etkilenecek.!
O zaman ne yapmak gerekiyor..
* Çalıştığınız tabloların tahmini kaç kayıt içerdiğinizi bilmeniz gerekiyor.

* Bilen birinden öğrenemiyorsanız, "select count(*) from table;" diyerek kayıt sayısını çekebilirsiniz. Yarım dk içinde sonuç hala gelmediyse, elinizdeki bombanın farkına varmanız gerekiyor.

* Mümkün oldukça F4 ile iş yapmaktan kaçınınız. 2 satır select'ini yazmaktan üşenmeyiniz.

* Yazdığınız "select" sorgusuyla uygun kullanabileceğiniz "where" koşulunu öğrenip, sorgunuzu iyice daraltmanız gerekiyor.

* Bundan sonra sorgunuza "order by" ekleyip sonucunu alabilirsiniz.
Selamımızı almayı unutmayın 🙂