私は2つのテーブルを持っています1. main_table 2. log_table main_tableでは、削除と更新時に影響を受けた行をlog_tableにコピーするトリガが定義されています。 log_tableでは、2つの余分な列pid(主キーint)とupdateat(タイムスタンプ)を除いて列は同じです。以下の方法でログテーブルからデータを削除する純粋なSQLメソッドはありますか?
毎月、cronジョブはlog_tableから10日以上経過したすべてのレコードを削除します。各行の最新の10を除くすべてのレコードを削除するために変更する必要があります。
私は別のIDを選択していますが、すべてのIDをループしていて、そのIDのすべてのデータをトップ10を除いて削除しています。 これは生産に苦労して非現実的です環境。私もこのロジックをカーソル付きのストアドプロシージャに移そうとしましたが、まだ遅いです。
私にはわかりませんが、私はそれを達成するための他の方法があると思います。どこにループを張る必要はありませんか?
サーバーはmssql 2012です(問題がある場合)。
はい、これは私がやろうとしていたものです。 – Ratna