3

2つのタイプの計算列がいくつかあります。

  1. 現在のテーブルの列に基づいて計算された列(つまり、価格*税)
  2. 他の列に基づいて計算された列(つまり、Price * fn_GetTax(OrderId))

クライアントのCLRでのみこれらの列を使用し、サーバーから計算と転送のパフォーマンスを保存する方がよいと思いますか?上記のタイプ(および他のタイプ)で異なりますか?

4

1 に答える 1

4

計算列をSQLテーブルの一部にしようと思います-そうするために必要な努力が法外でない場合。

かなり単純な計算、ルックアップ、またはそれらの線に沿った何かがある場合は、それらをSQLテーブルに直接配置します。このように、T-SQLまたはSQL Serverデータベースにアクセスする別のツールを使用してテーブルをクエリする必要がある場合でも、これらを使用できます。おそらく、はるかに高速です(特に、永続化できる場合)。 。

より複雑な要件がある場合、広範な文字列、数学、または日付操作などが必要な場合は、それらの計算を.NET言語に変換することをお勧めします。これをCLRアセンブリとしてSQLServerに保存し、SQL Serverで列を直接実行するか(他のチームやプロジェクトで再利用される可能性がある場合)、可能性が高い場合はそれらをEFモデルに配置することができます。それらの計算列に関心があるのは1人だけです。

それがあなたの質問に少し光を当てることを願っています!

于 2009-12-14T06:18:59.437 に答える