Global Ve Lokal Temp Tablo Oluşturmak

20 Ara by NURULLAH ÇAKIR

Global Ve Lokal Temp Tablo Oluşturmak

SQL Server’da tsql ile kod geliştirenler bazen geçici olarak kayıtları bir tabloda tutmak isteyebilirler. Bu işlem veritabanında bir tablo oluşturup bu tabloyu kullanarak ta yapılabilir fakat sql server bu iş için global ve lokal temp tablo özelliğini bize sunar.

 

Temp tablo kullanmanın avantajları ve dezavantajlarını aşağıdaki tabloda bulabilirsiniz.

 

Avantajları

Dezavantajları

Sadece size özel bir tablo olacağı için locklanma olmaz ve performans artışı sağlar

Temp tablolar tempdb veritabanında duracağı için, tempdb veritabanının bulunduğu diskler yavaş olursa performans sorunu olacaktır.

Production ortamdaki bir tablo üzerinde yapmaya korkacağınız işlemleri güvenli

Bir şekilde temp tablolar üzerinde yapabilirsiniz

Tempdb veritabanını büyüteceği için ekstra disk alanı gerektirecektir.(küçük temp tablolar bu soruna neden olmasada büyük temp tablolar oluşturan kod geliştiriciler olabilir)

Normal bir tabloya yapabileceğiniz işlemleri temp tablolara da yapabilirsiniz(sort,filter,join)

User defined function’lar üzeriden temp tablolara insert,update ve delete yapamazsınız.

Temp tablolarda index oluşturabilirsiniz.

 

 

Lokal Temp Tablo: Tabloyu kim oluşturduysa sadece o, aynı connection üzerinden bu tabloyu kullanabilir. Lokal temp tablolar, bu tabloyu oluşturan kişi instance üzerinden disconnect olduğunda silinir.

 

Aşağıdaki gibi lokal temp tablo oluşturabilir, kayıt ekleyebilir ve select çekebilirsiniz:

 

create table #TempTablo (Tempkolon varchar(50))
Insert Into #TempTablo VALUES('testkayıt')
Select * From #TempTablo

 

Global Temp Tablo: Global temp tablo oluşturulduğunda, bütün kullanıcılar ve bütün connectionlar tarafından görülebilir olur. Bu tabloya bağlanan kullanıcılar instance üzerinden disconnect olduğunda silinirler.

 

Aşağıdaki gibi global temp tablo oluşturabilir, kayıt ekleyebilir ve select çekebilirsiniz:

 

create table ##TempGlobalTablo (TempGlobalkolon varchar(50))
Insert Into ##TempGlobalTablo VALUES('testkayıt')
Select * From ##TempGlobalTablo

 

Bir sonraki makalemiz olan “Table Variable Kullanımı” isimli makalesinde temp tablolara benzeyen Table Variable Kullanımını anlattım. Bu iki kavram arasındaki farklar genelde çok merak edilir. Bu yüzden “Temp Tablo ve Table Variable Farkları” isimli makalem de ilginizi çekebilir.

Loading

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir