DBA(トレーニングに2年しか使用していない)は、システム内のデータフローに必要なすべての属性を含む大規模なデータ管理テーブル(108列以上)を作成しました。このテーブルを略してBFTと呼びます。
これらの列のうち、
10はメタデータ参照用です。
15は、データソースおよび時間追跡
用です。テキストデータ用のnew / curr列の1インスタンス、
複数値の数値更新用のnew / current / delta / ratio / range列の10インスタンス:合計50列。
複数値の数値更新には、通常、2〜5個の更新グループのみが必要です。
15K〜1500KレコードのバッチがBFTにロードされ、ロジックを使用してストアドプロシージャによって処理され、それらのレコードが約30の他のテーブルの永続ストレージにシャッフルされます。
ほとんどのレコードロードでは、プロセス全体を通して50〜70の列が空になっています。
私はデータベースの専門家ではありませんが、このモデルとプロセスは少し臭いがするようですが、理由を説明するのに十分な知識がなく、代替手段を提供できずに文句を言いたくありません。
データ処理モデルに対するこの非常に小さな洞察を考えると、誰かが考えや提案を持っていますか?データベース(SQL Server)は、ほとんど空の列を持つレコードを効率的に処理することを信頼できますか、またはこの方法で処理すると、多くのサイクル/メモリなどが無駄になりますか?