2

当社の製品には、カスタム アプリケーションのセキュリティ情報を含むいくつかのテーブルが含まれています。これらの securityinfo テーブルには、場合によってはかなりの量の行 (あるケースでは 1,300 万行) が含まれる可能性があり、テーブルはクエリを高速化するために存在し、最初から再構築できる可能性がありますが、これは時間/処理能力などの点でコストがかかります。

アプリケーションが設計されている方法では、(プログラムの実行中に) セキュリティ セクションのレコードを削除してから新しいレコードを挿入する方が、保持/更新するレコードを特定して、まだ存在しないレコードを挿入するよりも効率的です。 .

残念ながら、データベース復旧モデルがフルに設定されている場合、このプロセスによって大量のトランザクション ログが生成される可能性があります。

SQL 2005+ で、復旧モデルがフルのデータベースにログに記録されていないテーブル (単純な復旧モード) を持つことは可能ですか?

復旧時に Web アプリケーション/データベースが最初に起動するときに、securityinfo テーブルを再構築できます。

または、単純な復旧モデルを備えた並列データベースを使用することが最善の解決策です。

乾杯ティム

4

1 に答える 1

1

私の知る限り、リカバリモデルはデータベースごとにのみ設定できます。これは、トランザクションログがDB全体のものであるためと考えられます。またはBOLが言うように

リカバリモデルは、トランザクションのログ記録方法、トランザクションログでバックアップが必要かどうか(および許可されるかどうか)、および使用可能な復元操作の種類を制御するデータベースプロパティです。

(強調は私のものです)。したがって、ここでの最善の策は、この特定のテーブルを別のDBに移動するか、テーブルが信頼できるデータソースから簡単に再構築できるキャッシュのように見えるため、メモリ内のDB/キャッシュを調べることです。

于 2012-05-16T16:39:56.717 に答える