-2

私はプロジェクトに取り組んでいます.efでの最初の試みであり、計算などの特定のことについてどのように進めるかがよくわかりませんでした.SQL計算フィールドを使用して行の合計(数量*価格)といくつかのSQLビューを処理しましたSum() を計算する

昔は、ビューまたはストアド プロシージャを起動していました

アップデート

質問されていたのは、ハイブリッド ソリューションを使用して SQL 内で行を計算するか、それともコードに移行して Web サーバーで処理するかということだったと思います。

結果 私はSQLサーバーオプションを使用し続けましたが、nosqlに移行すると、アプリケーションのコードで処理する必要があったことがわかりました。これにより、より用途が広くなります。

4

1 に答える 1

3

私の経験では、データベースはこれらの操作用に大幅に最適化されているため、この種の処理では非常に高速です。

また、代替案を検討してください。50,000行の結果セットのSUM(数量*価格)を計算するとします(テーブルのサイズは気にしないでください。クエリのサイズが5万行だったとしましょう)。アプリでそれを行った場合、50kペアの整数を取得する必要があります(それらがintであり、32ビットであると仮定しましょう-おそらくそうではありません)。つまり、1行あたり64ビット、5万行で、320万ビット、つまり400KBのデータが得られます。

これで、DBはそれをネットワーク経由でアプリに吐き出す必要があります。アプリはデータを待機し、すべてをデータ構造に読み込んでから、データを反復処理する必要があります。その操作のネットワーク転送時間は、アプリで計算を行うことによって得られた可能性のある節約をすべて消し去ります。

対照的に、DBが合計を行う場合、転送する必要のあるデータははるかに少なくなります。DBサイズでクエリをキャッシュできる場合にも、いくつかの利点があります(もちろん、これはベンダー固有です)。

一言で言えば、アプリでこの種のことを行う本当に正当な理由がない限り、それをDBに任せて、頭痛の種を避けてください。

于 2013-03-04T02:02:06.937 に答える