SQL Server 2000 tarafından 10 yıla yakın bir süredir kullanılan eski bir SQL tablomuz var.
İçinde, char(6)kimden 000001tarihine 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 intdeğerlerini 'den' 1e kadar saklayarak daha iyi veri aktarımı, daha küçük boyut, vb. Umuyorum 999999.
C #'da, introzet 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 EmployeeID7135 ise, bu sorgu dönmelidir 007135.
FORMAT C # :-) gibi bir işleve sahip olacak
intDeğ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?
0bu alan için önemli olduğuna göre, neden onuINThiç olarak değiştirelim ?