我有一個相當簡單的命令,我偶爾運行:快速,原子表替換
BEGIN TRAN T1;
truncate table mytable
insert into mytable select name from myview
COMMIT TRAN T1;
該命令有兩個醜陋的副作用:首先,mytable上選擇請求經常超時。其次,在mytable上選擇請求有時不會返回任何結果。我不在乎它是否返回事務前結果或事務後結果,但不希望它返回中間的任何內容或超時。我想到的一個解決方案,幾乎肯定會有所幫助,首先將視圖複製到臨時表(因爲視圖有點貴)。這並不能完全解決問題,但它幾乎肯定會使窗口變得狹窄,使問題被忽略。坦率地說,窗口很窄,可以忽略它現在,但我不喜歡忽略它。另一個解決方案是瘋狂的過度工程,它將用兩個表(例如雙緩衝區)替換表,並調用最新的,正確填充的表。
是否有一個更優雅的方式來替換一個新的表?
您使用的是什麼事務隔離級別? – mwigdahl 2009-12-08 19:49:01
我不知道如何設置它或我正在使用什麼。 – Brian 2009-12-08 21:11:57