2008-07-29

Miraç Kandilinizi Tebrik Ederim

Bu mübarek gecede dualarınızın kabul olması dileklerimle Miraç Kandilinizi tebrik eder; siz ve sevdikleriniz hakkında hayırlara vesile olmasını dilerim.





2008-07-16

SQL Server'da İstatistikleri Görüntüleme

SQL Server'daki istatistiklerin isimlerini ve hangi alanlardan oluştuğunu görmek için sp_helpstats stored procedure'; istatistiklerin detay bilgilerine ulaşmak için ise DBCC SHOW_STATISTICS komutunu kullanabilirsiniz.

SQL'de Kodu Kısaltmak Her Zaman Yararlı Değildir!

SQL de tablo adlarını alias ile kısaltmak çoğu zaman yazacağımız kodu kısaltır ve kodun anlaşılabilirliğini artırır. SQL kısaltmalarını bir çok yerde desteklemekle birlikte sakıncalı olabilecek yerlerde de dikkat etmenizi öneririm.

SQL kodlayan yazılımcılar arasında sıklıkla yapılan hatalardan birisi de kısaltma hastalığı neticesinde yanlış tabloyu update etmektir. SQL kodunu kısaltayım derken iş ömrünüzü kısaltmayın!

Örnek: 1 nolu şirketteki personelin statu sunu 0 yapacak kodu yazmaya çalışalım:

update s
set statu=0
from personel p inner join sirket s ON P.sirketid=S.id
where S.id=1

Yazdığım kod kısa olduğu için hatayı hemen yakalamak mümkün ama SQL kodu çok uzunsa hatayı yakalamak zor olabilir. Yukarıda yapılan hata personel durumlarını update edeyim derken şirket durumu update edilmiştir. Her iki tablodada statu alanı olduğu için kod çalıştırıldığında düzgünmüş gibi çalışıp, kodu yazanın yanılmasına sebep olur.Bu konuda sizlere acizane tavsiyem update edeceğiniz tablo adını uzun bir şekilde yazmanız.

Şimdi hatamızı düzeltip SQL kodumuzu daha okunabilir bir şekilde yazalım:

UPDATE Personel
SET statu=0
FROM Personel INNER JOIN Sirket ON Personel.sirketid=Sirket.id
WHERE Sirket.id=1

Tabiki yapacağınız işleri TRANSACTION block içerisinde yazmak her zaman daha güvenli olacaktır ve yaptığınız hatadan dönme şansını size verecektir:

BEGIN TRAN

UPDATE Personel
SET statu=0
FROM Personel INNER JOIN Sirket ON Personel.sirketid=Sirket.id
WHERE Sirket.id=1


COMMIT TRAN

Herkese hatasız ve performanslı bol SQL li günler...

2008-07-03

Regaib Kandili

Mübarek Regaib Kandili'nizi tebrik eder, hayırlara vesile olmasını dilerim.

.::YASAL UYARI::.

©2004-2023 Mehmet GÜZEL, www.mehmetguzel.net

Site içeriği kaynak gösterilmek koşuluyla yayınlanabilir. Yazılan yazı ve yorumlar sadece yazı ve yorum sahiplerini bağlar.