3

システムのパフォーマンスに問題があります。DB テーブルには、すべてのレコードに大きな XML データがあります。私の懸念は、毎回 DB から XML データを解析して XML の属性と情報を取得する必要があるかどうかです。もう 1 つの選択肢は、XML を一度解析してキャッチすることです。XML サイズは平均 100KB で、10^10 レコードになります。このスペースとコンピューティングのパフォーマンスの問題を解決するにはどうすればよいですか? 私の推測では、結果 (XML の重要な属性) をキャッチすることです。クエリごとに 10^10 レコードを解析するのは簡単な作業ではないためです。さらに、解析された属性をインデックスとして使用できます。

4

3 に答える 3

1

すべてのクエリを解析する場合は、間違いなく結果をキャッシュする必要があります。おそらく、生成された完全な製品を単一のデータベース フィールドまたはファイルに入れて、後で使用するか、最後に何かが変更されるまで、フォーラム システムが行うようにします。

常に同じ結果が得られることを知りながら、膨大な量のデータに対してコストのかかるプロセスを繰り返すことは、リソースの無駄遣いです。

于 2013-04-17T03:23:11.980 に答える
0

XML の属性の一部をインデックス作成に使用する場合は、それらを列としてテーブルに追加することをお勧めします。

XML の解析に関しては、100kb はパフォーマンスに影響を与えるサイズではありません。さらに、レコードを取得している間に XML を (そのまま) 読み取り、文字列に格納し、それらの追加属性を表示/使用する場合にのみ解析することができます。

于 2013-04-17T03:16:20.313 に答える