大量のデータを保持する SQL Server 2008 R2 データベースがあります。データは短期間で数百万行に急速に増加することが予想されます。インデックス付きビューは、データの読み取りに使用されます。
一部のビューでクエリを実行すると、約 35 ~ 40 秒かかります。クエリの微調整に取り組みますが、これが唯一のオプションであるという保証はありません。膨大な量のレコードでは、実行時間が許容できないと思います。
今、私は他に何ができるかを考えています。
たとえば、現在の日付から 1 年前と過去 24 時間という 2 つの期間が最も使用されると予想されます。
このようにしようとすることについてどう思いますか。
db_A
今日のレコード、db_B
昨日から 365 を引いたもの、およびアーカイブdb_C
(1 年以上前のものすべて) の3 つのデータベースを作成します。したがって、おそらく、別のデータベースへのコピーと最初のデータベースからの削除を行うサービスを作成することに直面しています。
次に、リンクされたサーバーを使用するか、API を記述して、クエリを実行するデータベースを決定することができます。もちろん、年間の期間でも膨大な量のレコードが含まれますが、これはさらに優れています。への挿入/更新db_A
が高速になり、多くのクエリがヒットする可能性が高くなりdb_A
ます。
そのようなシナリオのためのいくつかの文芸的な解決策はありますか? 物理的に異なる場所でデータベースをホストすると、パフォーマンスが向上します (並列実行による)。
プロのアドバイスをお待ちしております。