2015年7月28日火曜日

SQLServer での Truncate Table 使用上の注意

SQLServer でテーブルの構造を残して、データだけ削除する際には、
Delete From T_hogehoge
ですが、
TRUNCATE TABLE T_hogehoge
のほうが圧倒的に高速に削除できます。

今まで、これを多用していました。

別途、Index付ビュー という、これも高速化するためのもので、
通常のビューはIndexをつけることができませんが、
ちょっと細工をすることで、Index付ビューにすることができて、
そのビューに対する検索が高速になります。

ところが、困ったことが判明しました。

「TRUNCATE TABLE は Index付ビューで参照しているテーブルに対して実行でき
ない。」

これを知らずに、Index付ビューを設定する前に書いたストアドを流していまし
たが、
途中で、Index付ビューを作ったために、その後の処理が全部落ちてました。

しかも、自動実行的なストアドだったので、実行されているように見えてて、
ここ半年の処理が・・・(T-T)

0 件のコメント:

コメントを投稿