0

アプリケーションの使用状況データ (100 台以上のデバイスから) を含む SQL Server データベースがあり、1 年以上のデータが収集されています (30 GB データベース)。

DB へのデータの挿入は問題ではなく、(現時点では) 十分に高速であり、クライアントによって実行される唯一の操作です。

1 つのマスター テーブルといくつかの子テーブルがありますが、すべてを 1 つのテーブルに入れることができるとしましょう。

統計分析を行う必要があるため、主count(*)に日付と 1 つ以上の列でフィルタリングします。パフォーマンスが低下しています (インデックスでできることはすべて実行しました)。

MongoDB に移行すると速度が向上しますか? 私はそれを研究し始めていませんが、私の操作の99%は次のようになります(はい、SQLではないことはわかっています):

select count(*) from table 
where date between date1 and date2 and field1 = 10 and field2 = "test"
4

2 に答える 2

3

お客様の要件は、SQL サーバーで簡単に処理できます。適切なインデックスおよびその他の最適化手法を使用して。これらのクエリは、SQL SERVER によって効率的に実行できます。あなたのユースケースでは、(日付、フィールド1、フィールド2)のシンプルなインデックス

CREATE CLUSTERED INDEX IDX_TABLE_ID ON TABLE(id)
GO
CREATE  INDEX IDX_TABLE_2 ON TABLE(date,field1,field2)
GO

高速なクエリ実行には十分です。

注意: アーカイブ分析用 SQL サーバー データ ウェアハウジング ツール (SQL SERVER ANALYSIS SERVICE) を提供します。SQL SEREVER CUBE は、膨大なアーカイブ データの集計と分析を非常に簡単に行うことができます。

その他の SQL サーバー情報: http://ms-sql-queries.blogspot.in/

于 2012-12-01T19:54:46.627 に答える
0

クエリ内で結合を使用していない場合、SQL サーバーのパフォーマンスは影響を受けません。同じ目的でmongodbを使用すると、クエリ時間もSQLの時間と同じかそれより少し悪くなります。

于 2012-12-01T18:34:40.930 に答える