0

約1500万のレコードを持つテーブルAがあります。別の一時テーブル Bからテーブル Aにデータを削除して挿入するプロセスがあります。

それはうまく機能しており、別のユーザーがこのテーブル Aに直接アクセスすることはありません。プロセス シナリオは次のとおりです。1)テーブル Bを使用して、テーブル Aから一致するすべてのレコードを削除します。2)テーブル BからテーブルAに新しい新鮮なデータを挿入します。

しかし、いつかプロセスが行き詰まることがあります。私はそれを確認しましたが、解決策はありませんでした。

A)テーブル A の代わりに新しいテーブルを作成し、古いデータをテーブル Aから新しいテーブルにフェッチします。しばらくして、新しいテーブルで同じ問題が発生しました。

B) 次回、テーブル A の代わりに別のテーブルを作成しましたが、このテーブルには古いレコードを挿入しませんでした。現在、プロセスは正常に機能しています。

しかし、すべてのレコードをテーブル Aに入れるソリューションが必要です。 お願いします、誰か助けてくれませんか?

SQL Server 2005 Enterprise バージョンを使用しています。このプロセスは、ストア プロシージャを介して行われます。テーブルにインデックスがありません。単に削除して挿入するだけです。

4

2 に答える 2

0

大量のデータを処理しているときにバッファがいっぱいになっていると思います。バッファをフラッシュするには、バッファ内のデータがディスクに書き込まれるCOMMIT一定量の実行後にステートメントを使用します。inserts

于 2012-09-27T05:57:56.373 に答える
0

私は解決策、データベースの終わりの問題を手に入れました。私が観察したように、データベースが大きくなる場合は、データベースを監視し、メンテナンス ジョブを実行して、データベースから不整合を取り除く必要があります。

于 2012-12-20T11:55:45.007 に答える