SQL Server 2000によって10年近く使用された古いSQLテーブルがあります。
その中に、従業員のバッジ番号はchar(6)
fromからまでの000001
ように保存されてい999999
ます。
現在、Webアプリケーションを作成していて、従業員のバッジ番号を保存する必要があります。
新しいテーブルでは、ショートカットを使用して古いテーブルをコピーできますが、int
から1
に値を格納するだけで、データ転送の向上、サイズの縮小などを望んでいます999999
。
C#では、int
次を使用してバッジ番号の値をすばやくフォーマットできます
public static string GetBadgeString(int badgeNum) {
return string.Format("{0:000000}", badgeNum);
// alternate
// return string.Format("{0:d6}", badgeNum);
}
この単純なSQLクエリを変更して、戻り値もフォーマットする方法を教えてください。
SELECT EmployeeID
FROM dbo.RequestItems
WHERE ID=0
EmployeeID
が7135の場合、このクエリはを返し007135
ます。
FORMAT
C#のような機能を:-)
int
値が占めるスペースは大幅に少なくchar(6)
、製造されるパーツごとにこれらのエントリが複数存在します。効率。
DATALENGTH()
)それぞれ2バイトを節約できると考えます。列がインデックスに含まれている可能性があるため、2MB以上を節約できる可能性があります。そして、他の列を追加すると、その2バイトは、行の長さを減らして行あたり4KBページを節約するのに十分な場合があります。これはモバイルプラットフォームでホストされる予定ですか、それとも非生産的な領域に注意を向けているのでしょうか。
0
のsはこのフィールドにとって重要なので、なぜそれをに変更するのINT
ですか?