SQL Server 2000 tarafından 10 yıla yakın bir süredir kullanılan eski bir SQL tablomuz var.
İçinde, char(6)
kimden 000001
tarihine kadar çalışan rozet numaralarımız saklanır 999999
.
Şu anda bir web uygulaması yazıyorum ve çalışan rozet numaralarını saklamam gerekiyor.
Yeni tablomda, kısayolu alıp eski tabloyu kopyalayabilirim, ancak int
değerlerini 'den' 1
e kadar saklayarak daha iyi veri aktarımı, daha küçük boyut, vb. Umuyorum 999999
.
C #'da, int
rozet numarası için bir değeri hızlı bir şekilde biçimlendirebilirim.
public static string GetBadgeString(int badgeNum) {
return string.Format("{0:000000}", badgeNum);
// alternate
// return string.Format("{0:d6}", badgeNum);
}
Döndürülen değeri de biçimlendirmek için bu basit SQL sorgusunu nasıl değiştirebilirim?
SELECT EmployeeID
FROM dbo.RequestItems
WHERE ID=0
Eğer EmployeeID
7135 ise, bu sorgu dönmelidir 007135
.
FORMAT
C # :-) gibi bir işleve sahip olacak
int
Değerler bundan önemli ölçüde daha az yer kaplar char(6)
ve üretilen parça başına bu girişlerin birden fazla olması gerekir. Verimlilik.
DATALENGTH()
her biri iki bayt tasarruf edebileceğinizi (göre ) anlıyorsunuz . Sütun bir dizinde olabileceğinden, 2MB'den fazla tasarruf ediyor olabilirsiniz. Ve diğer sütunlar eklendiğinde, bu 2 bayt, bir satırın uzunluğunu, satır başına 4KB sayfa kaydedecek kadar azaltmak için yeterli olabilir. Bu bir mobil platformda mı barındırılacak, yoksa dikkatinizi verimsiz bir alana mı odaklayacaksınız?
0
bu alan için önemli olduğuna göre, neden onuINT
hiç olarak değiştirelim ?