2008-08-28

Temporary Table mı Table Variable mı Kullanmalıyız?

Aynı soru defalarca kez farklı yerlerden geldiği için sorunun cevabına değinme ihtiyacı hissettim.
  1. Eğer satır sayımız 100'ün altındaysa genellikle table variable'ı kullanırız. Satır sayısı 100 ün üzerindeyse temporary table kullanılmalıdır.
  2. Index oluşturma ihtiyacımız varsa kesinlikle temporary table kullanmalıyız.

Temporary table ile table variable arasındaki farklardan birisi temporary table sistem veritabanlarından birisi olan tempdb'de tutulur.Table variable ise sistem hafızasında(memory) yer alır.

Burdan hareketle her şeyi temporary table/table variable üzerinde tutup tempdb/memory ı şişirmeyin. Gerekli yerlerde gerektiği kadar kullanalım. Yazılım geliştirme ile uğraşan arkadaşların zamanı dar olduğu çoğunlukla bol temporary table kullanıp bu temporary table'lar üzerinde envai çeşit ekleme/çıkarma/güncelleme yaparlar.

Bir örnek vermek gerekirse: Maas tablosunu tamamını temporary table'a atıp personel maaşını %10 temp table üzerinde uygulayan bir arkadaş SQL kodunu aşağıdaki gibi yapacaktır:

SELECT Sicilno, Ad, Soyad, Ucret INTO #MaasTemp
FROM Maas

Update #MaasTemp
SET ucret=ucret*1.1

Bunun yerine Maas tablosundaki verileri temp tabloya atarken %10 zammı ekleyelim.

SELECT Sicilno, Ad, Soyad, Ucret*1.1 INTO #MaasTemp
FROM Maas

Temporary table için daha söylenecek çok şey var ama şimdilik benden bu kadar. SQL kodumuzu yazarken sistem performansına etkisini de gözönünde bulundurmayı unutmayalım.

Bol SQL'li günler diliyorum.

Hiç yorum yok:

.::YASAL UYARI::.

©2004-2016 Mehmet GÜZEL, http://www.mehmetguzel.net/ & http://www.mehmetguzel.com/

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