DEFINITIONS

Definitions More Info.
Definition ID536
TitleSQL
CategoryNOTES
DefinitionSQL Server da Temp(Geçici) ve Değişken(Variable) Tabloların Kullanılması
Definition Descriptionhttp://www.ahmetkaymaz.com/2012/04/20/gecici-tablo-ve-tablo-turu-degisken-arasindaki-fark/ Çalışma esnasında bir kayıt listesinin sonucunu geçici saklamak için geçici tablo (temporary table) veya tablo türü değişken (table variable) kullanırız. Peki bunların arasındaki fark nedir ? - SQL Server’de yerel (local) ve genel (global) olmak üzere 2 tür geçici tablo kullanırız. - Yerel tabloları başında “#” olacak şekilde isimlendiririz. - Genel tabloları başında “##” olacak şekilde isimlendiririz. Yerel geçici tablo ile genel geçici tablo arasındaki tek fark, yerel tabloya sadece oluşturulduğu oturumdan erişilebilir. Genel tabloya ise diğer oturumlardan da erişilebilir. - Geçici tabloların yaşam süresi oturumlarıyla sınırlıdır. Yani oluşturuldukları oturumda DROP edildikleri zaman veya oturum kapatıldığı zaman tablolar silinmiş olur. - Geçici tablolar üzerinde normal tablolarda yaptığımız her türlü (clustered / non-clustered index oluşturma, identity kolon kullanmaz, transaction yönetimi .) DDL ve DML işlemi yapılabilir. Sadece Foreign Key constraint oluşturulamaz. Geçici tablolar normal tablolar gibi diskte (tempdb) tutulur ve transaction log tarafında loglanır. - Tablo türü değişkenler de geçici tablolar gibi aynı amaç için kullanılır. SQL Server’de değişken tanımlanır gibi tanımlanır. Bu tablolar üzerinde sadece cluster index oluşturulabilir. Temporary tables ve table variable arasındaki benzer ve farklılıklar şunlardır; - En önemli fark temporary table, transaction yönetimini desteklerken, table variable desteklemez. - Her ikisi de TEMPDB içerisinde oluşturulur. - Table variable constraint tarafında daha kısıtlı yeteneğe sahip. Primary Key oluşturulabilse de default ve check constraint konusunda başarılı sayılmaz. - Her ikisi üzerinde cluster index oluşturulabilir. - Table variable üzerinde non-cluster index oluşturulamaz. - Table variable için statistic bilgiler oluşturulmaz. - Değişken tablolara erişim geçici tablolara göre daha hızlı olmaktadır. Fakat değişken tablolara fazla veri yüklemek belleği dolduracağından performans kaybına da yol açabilir. - Değişken tablolar, kullanıcı tanımlı fonksiyonlar (User Defined Functions) içinde kullanılabilirken, geçici tabloların UDF içinde kullanımı mümkün değildir. - Stored Procedure ler içinde 2 tablo yapımızıda kullanabiliriz. - Değişken tablolar üzerinde index tanımı yapamayız fakat geçici tablolar üzerinde yapabiliriz. - Değişken tablolar tanımlandıktan sonra (declare) alter table ile değiştiremeyiz.
RecordBycunay
Record Date25-06-2014 17:26:00
Düzenle
Kopyala
Sil