Firebird 2.1.3 データベースは、未完了のトランザクションから大量のガベージを作成しているようです。これにより、データベースのスイープまたはサーバーの再起動によってガベージが削除されるまで、データベースの実行が非常に遅くなります。私のデータベースのサイズは 30GB+ です。何がこれを引き起こしているのか、何か考えがありますか? 新しいストアド プロシージャのいずれかによって余分なガベージが作成されますか? 私を助けてください。?
質問する
1131 次
1 に答える
3
一定期間後に Firebird データベースの速度が低下するのは、通常、クライアント トランザクション管理が不適切であることを示しています。これは、ヘッダーページからさまざまなトランザクションカウンターを調べることで簡単に確認できます。これは、次を実行してクエリできます。
gstat -h <yourdatabase>
データベースが遅くなったとき。例: ほとんどすべてのアクセス ライブラリは、自動コミット モードでトランザクションを実行する場合 (基本的に、クライアント アプリケーションで明示的なトランザクションを開始することを気にしない場合)、COMMIT RETAINING を使用します。これは基本的に、OIT/OAT の前方への移動をブロックします。
gstat コマンドライン ツールのほかに、Firebird 2.1 では、監視テーブル、特に MON$TRANSACTIONS を使用して、実行時間の長いトランザクションを識別します。
于 2013-05-23T07:43:07.810 に答える