テーブルに行があります。この行には、数百万行の他のいくつかのテーブルで参照されるID列があります。行を削除するSQL文は、常にタイムアウトします。私のデザインから、私が削除したい行が他のどこにも参照されないことがわかっています。したがって、私はSQLに、この行への外部キー参照のために他のすべてのテーブルをチェックしてすぐに行を削除することを無視するようにしたいと思います。 SQL 2008でこれを行う簡単な方法はありますか?おそらく、 の線に沿って何か:これらの線に沿ってすべての外部キーと制約を無視してSQL行を削除する
DELETE FROM myTable where myTable.ID = 6850 IGNORE CONSTRAINTS
か何か。
関連テーブルのキー参照列にインデックスを追加することを検討しましたか?まだ存在しない場合は、これにより、SQLが他の行が削除しようとしている行を参照しているかどうかを迅速に判断することができ、実質的なパフォーマンスの向上をもたらす可能性があります。 –
別のアプローチを提案できます。私のシステムでは、ほとんどの(何百もの)テーブルがdbo.Company.Idを指しています。空の会社を削除しても参照がなくても、DBは数十億行のFKの整合性をチェックします。解決方法:論理的な削除だけを使用してください。 – jean