2
DELETEがパフォーマンスに長引く影響を与えるのはなぜですか?
最後に、@ table変数と#tempテーブルのパフォーマンスを比較するためのテストスクリプトがあります。私はそれを正しく設定したと思います-パフォーマンスのタイミングはDELETE / TRUNCATEコマンドの外で取られます。私が得ている結果は次のとおりです(ミリ秒単位の時間)。 @Table Variable #Temp (delete) #Temp (truncate) --------------- -------------- ---------------- 5723 5180 5506 15636 14746 7800 14506 14300 5583 14030 15460 5386 16706 16186 5360 念のためGetDate()、バッチではなくステートメントの時点でCURRENT_TIMESTAMP(別名)が取得されることを示しているため、TRUNCATE / DELETEとSET @StartTime = CURRENT_TIMESTAMPステートメントの相互作用はありません。 select current_timestamp waitfor delay '00:00:04' select current_timestamp ----------------------- 2012-10-21 11:29:20.290 ----------------------- 2012-10-21 11:29:24.290 DELETEを使用してテーブルをクリアする場合、最初の実行と後続の実行の間のジャンプは非常に一貫しています。DELETEの理解に欠けているものは何ですか?これを何度も繰り返し、順序を交換し、成長を必要としないようにtempdbのサイズを調整しました。 CREATE TABLE …