データベースが大きくなりすぎているため、現在いくつかのパフォーマンスの問題に直面しています。過去10年間のデータが保存されており、2年以上前のデータを新しいデータと同じテーブルに保存する必要がある理由はわかりません。
現在、私はデータベースの管理にあまり深い経験がないので、古いデータをアーカイブする最良の方法を探しています。
情報
データベースには合計で約310'000'000レコードがあります。
データベースには、ハードディスクに250 GBが必要です。
- サーバーのバージョンは、互換性レベルがSQL Server 2005(90)のSQL Server 2008ですが、SQL Server 2012へのアップグレードを近日中に計画しています
私は2つの可能性について考えました:
新しいデータベース
実動サーバー上のデータベースと同様のデータベースを作成し、すべての古いデータを新しいデータベースに挿入します。
- 欠点:リンクサーバーは環境で許可されていないため、必要に応じて古いデータを結合することは困難です。
履歴スキーマ
本番データベースと同じテーブルで新しいスキーマfe [hist]を作成します。新しいスキーマのこれらの新しいテーブルにすべての古いデータを挿入します。
- 利点:将来的に古いデータが必要になる場合、簡単に参加できます
- 解決策の1つを他よりも優先しますか?
- どうして?
- より良い可能性はありますか?
- このタスクを簡単に実行できる既存のツールはありますか?
- 他に考えはありますか?
前もって感謝します
編集
追加の質問:
新しく作成されたアーカイブテーブルもプライマリ/外部キーを必要としますか?
または、キー/制約のない列だけが必要ですか?