1

SQL Server の 1 つの BLOB 列は (パフォーマンスに関して)、~20 個の REAL 列 (20 x 32 ビット浮動小数点数) とどのように比較されますか?

Martin Fowler が (エンタープライズ アプリケーション アーキテクチャのパターンで) 大きなオブジェクト グラフを永続化するために BLOB を使用して、クエリで複数の結合を削除することを推奨したことを覚えていますが、20 個の固定列を持つテーブルに対してこのようなことを行うことは理にかなっていますか?クエリ)?

このテーブルは非常に頻繁に (毎秒約 100 回) 更新INSERTされ、クエリで指定されたすべての列でステートメントがかなり大きくなります。

最初の答えは「自分でプロファイリングする」になると思いますが、誰かがこのような経験をすでに持っているかどうか知りたいです.

4

2 に答える 2

2

これがパフォーマンス要件を満たすために重要であることがわかっていない場合は、通常はそうすべきではありません。

1 つのブロブに保存する場合、オブジェクト構造に変更を加えた場合 (列の追加や削除など)、データベース全体を再計算する必要があります。複数の列を保持すると、将来のデータベースのリファクタリングと展開がはるかに簡単になります。

于 2012-10-17T20:05:59.547 に答える
1

のパフォーマンスについて十分に語ることはできませんSELECT。テストする必要がありますが、以前よりも多くのデータを読み取ることはないため、パフォーマンスの問題が発生する可能性は非常に低いと思います。ただし、 に関しては、更新する統計インデックスがない可能性が高いINSERTため、パフォーマンスの向上が見られるはずです (サイズは不明です) 。もちろん、それは多くの設定に依存しますが、私はそこに私の意見を投げかけています. この質問はかなり主観的なものであり、変更に伴うパフォーマンスの問題が発生するかどうかを正確に判断するには、十分な情報が得られません。

さて、実際には、実際のパフォーマンスの問題が発生しない限り、そのままにしておきます。さらに、実際のパフォーマンスの問題が発生している場合は、このタイプのソリューションを選択する前にそれらを分析してください。おそらく、それらを修正する他の方法があります。

于 2012-10-17T16:11:56.787 に答える