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ます。
FORMATC#のような機能を:-)
int値が占めるスペースは大幅に少なくchar(6)、製造されるパーツごとにこれらのエントリが複数存在します。効率。
DATALENGTH())それぞれ2バイトを節約できると考えます。列がインデックスに含まれている可能性があるため、2MB以上を節約できる可能性があります。そして、他の列を追加すると、その2バイトは、行の長さを減らして行あたり4KBページを節約するのに十分な場合があります。これはモバイルプラットフォームでホストされる予定ですか、それとも非生産的な領域に注意を向けているのでしょうか。
0のsはこのフィールドにとって重要なので、なぜそれをに変更するのINTですか?