認識SQL Server2000 tempdb資料庫

tolywang發表於2008-12-02

tempdb資料庫,正如它的名字所暗示的那樣,是一個臨時性的資料庫,它存在於SQL Server會話期間,一旦SQL Server關閉,tempdb資料庫將丟失。當SQL Server重新啟動時,將重建全新的、空的tempdb資料庫,以供使用。關於該過程,還有更多可講述的內容,但是,在深入探討這些之前,還是先來了解tempdb資料庫的用途是什麼。

眾所周知,資料庫能夠儲存資料,而資料可以儲存在多個表中,使用命令和函式來檢索和操作這些資料。然而,有時可能想把某個資料集臨時儲存起來,以便稍後進行處理——例如,當要把得自一個儲存過程的資料傳遞給在該儲存過程之後執行的另一個儲存過程時,一個選擇就是把那些資料儲存在tempdb資料庫中。在儲存過程或查詢中建立的所有臨時表都將被放置在tempdb資料庫中。只要tempdb資料庫沒被更新,一切將稱心如意;一旦重建了tempdb資料庫,那麼存放於其中的資料將丟失,需要重生成資料。

或許,你會認為這並非一個理想的解決方案,畢竟,如果能把臨時資訊儲存在該資料庫之外的某處,不是很完美嗎?其實,tempdb不是這樣用的,關於tempdb,實際上只應把它看作是過渡的儲存空間。

重建tempdb的另一個原因是:不僅開發者要使用該資料庫,SQL Server自己也要使用tempdb。實際上,SQL Server始終在使用tempdb,當重新初始化SQL Server時,它需要確認原先正在處理的任何臨時性工作都已經清除掉。畢竟,很可能是由於臨時性工作的問題導致服務的重啟。

正像其他資料庫一樣,tempdb也有大小的限制,必須確保該資料庫的大小對於當前的應用以及所有要儲存於其中的臨時資訊是足夠的。閱讀隨後的章節,將看到資料庫的大小有最小值和最大值。tempdb也不例外,應該確保該資料庫大小可以擴充套件,這樣當需要時就可以增加其大小。

注意    因為tempdb的大小是有限的,所以在使用它時必須當心,不要讓tempdb被來自不好的儲存過程(對於建立有太多記錄的表沒有明確限制)的表中的記錄所填滿。如果發生了這種情況,不僅當前的處理不能繼續,整個伺服器都可能無法工作,從而將影響到在該伺服器上的所有使用者。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/35489/viewspace-504419/,如需轉載,請註明出處,否則將追究法律責任。

相關文章