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.