DATALENGTH Fonksiyonu
DATALENGTH fonksiyonu, SQL Server’da belirli bir sütunun veya değerin kapladığı byte miktarını döndüren bir fonksiyondur. Özellikle, veri tabanındaki tabloların veya sütunların kapladığı alanı öğrenmek istediğinizde sıklıkla kullanılan bir fonksiyondur. DATALENGTH fonksiyonu kullanımı, genellikle string veri tiplerinin boyutlarını hesaplamak için tercih edilir. Bunun yanında, veritabanı ve tablo boyutlarını analiz etmek için de ideal bir araçtır. Len fonksiyonu ile karıştırılmaması gerekir; çünkü DATALENGTH, karakter sayısı yerine byte uzunluğunu döndürür.
DATALENGTH Fonksiyonu Kullanımı
Fonksiyonun temel sözdizimi şu şekildedir:
Dönüş Tipleri:
- Eğer ifade
varchar(max)
,nvarchar(max)
veyavarbinary(max)
gibi veri tiplerinden biriyse, dönüş tipibigint
olacaktır. - Diğer durumlarda dönüş tipi
int
olacaktır.
DATALENGTH ile Veri Tiplerine Göre Hesaplama
- CHAR ve VARCHAR: Her karakter 1 byte olarak hesaplanır.
- NCHAR ve NVARCHAR: Her karakter 2 byte olarak hesaplanır.
- VARBINARY: Depolanan verinin byte sayısı döner.
Bu özellikler sayesinde DATALENGTH, verilerin fiziksel depolama boyutunu ölçmek için idealdir.
DATALENGTH Fonksiyonunun Örnek Kullanımı
Aşağıda, bir sütunun kapladığı byte miktarını hesaplayan basit bir örnek verilmiştir:
Daha gelişmiş bir örnek için AdventureWorks veritabanını kullanalım:
Bu sorgu, çalışanların adlarının kaç byte yer kapladığını hesaplar ve isim-soyisim bilgilerini döndürür.
DATALENGTH ile LEN Fonksiyonu Arasındaki Fark
- LEN Fonksiyonu: Karakter sayısını döndürür ve son boşlukları hesaba katmaz.
- DATALENGTH Fonksiyonu: Byte uzunluğunu döndürür ve son boşluklar dahil tüm karakterleri hesaba katar.
Bu fark, özellikle Unicode karakterler içeren veritabanlarında önemlidir. Örneğin, NVARCHAR veri tipinde her karakter 2 byte olarak hesaplanır.
DATALENGTH Fonksiyonunun Kullanım Alanları
- Veritabanı Analizi: Tabloların ve sütunların depolama alanını hesaplamak için kullanılır.
- Veri Doğrulama: Karakterlerin fiziksel boyutunu kontrol etmek için idealdir.
- Performans Optimizasyonu: Büyük veri kümelerinde depolama alanı yönetimini kolaylaştırır.