0

私が働いている会社では、約 100 の Web サイトからデータをクロールして DB に保存し、そのデータに対していくつかの手順と計算を実行する C# プロジェクトを実行しています。

これらの 100 の Web サイトにはそれぞれ約 10,000 のイベントがあり、各イベントは DB に保存されます。

その後、保存されたデータが生成され、1 つの大きな xml ファイルに集約されるため、保存された 10,000 件のイベントのそれぞれが DB で XML ファイルとして表示されるようになりました。

このデザインは次のようになります。

1) crawling 100 websites to collects the data and save it the DB.
2) collect the data that was saved to the DB and generate XML files for each event
3) XML files are saved to the DB

この投稿の主な問題は、保存された XML ファイルの選択です。

各 XML は約 1 MB であり、約 10,000 のイベントがあるという事実を考慮すると、SQL Server 2008 R2 が適切なオプションであるかどうかはわかりません。

Redis を使用しようとしましたが、保存は非常にうまく機能しています (そして高速です!) が、これらの XML を取得するためのクエリは非常に遅く機能します (ローカルであっても、ネットワーク トラフィックは問題になりません)。

私はあなたの考えは何ですか?これはリアルタイム システムであるため、キャッシュはここではオプションではないことを考慮してください。

どんなアイデアでも歓迎されます。

ありがとう。

4

3 に答える 3

1

あなたの質問には、データをデータベースに保持する必要がある期間などの詳細がいくつかありません…</p>

生データが既にある場合は、XML をデータベースに保存することは避けたいと思います。データベースにクエリを実行し、必要に応じて XML レポートを生成するアプリケーションを用意しない理由はありません。これにより、多くのスペースを節約できます。

1 日あたり 10 GB のデータは、SQL Server 2008 R2 が適切なハードウェアと適切な構造最適化を使用して処理できる量です。Standard エディションで十分かどうか、またはエンタープライズまたはデータ センター ライセンスを使用する必要があるかどうかを調査する必要があります。

いずれにせよ、答えはイエスです。SQL Server はこの量のデータを処理できますが、他のソリューションもチェックして、何らかの方法でコストを削減できるかどうかを確認します。

于 2013-08-19T13:52:14.720 に答える