引自鄒建<<中文版SQLServer2000開發(fā)與管理應(yīng)用實(shí)例>>
tempdb數(shù)據(jù)庫
關(guān)于文件組,另一個(gè)有必要涉及到的就是系統(tǒng)數(shù)據(jù)庫tempdb,tempdb數(shù)據(jù)庫保存所有的臨時(shí)表和臨時(shí)存儲(chǔ)過程.它還滿足任何其他的臨時(shí)存儲(chǔ)要求.例如,存儲(chǔ)SQLServer生成的工作表.tempdb數(shù)據(jù)庫是全局資源,所有連接到系統(tǒng)的用戶的臨時(shí)表和存儲(chǔ)過程都存儲(chǔ)在該數(shù)據(jù)庫中.tempdb數(shù)據(jù)庫在SQLServer每次啟動(dòng)時(shí),都根據(jù)系統(tǒng)數(shù)據(jù)庫model的結(jié)構(gòu)重新創(chuàng)建.
在使用數(shù)據(jù)庫的過程中,或多或少地都會(huì)用到臨時(shí)表和臨時(shí)存儲(chǔ)過程.因此,tempdb數(shù)據(jù)庫的性能對(duì)數(shù)據(jù)庫的影響是全局的,它的性能可能會(huì)決定整個(gè)SQLServer實(shí)例的處理效率.鑒于此,對(duì)tempdb數(shù)據(jù)庫的性能調(diào)優(yōu)也顯得非常重要.
默認(rèn)情況下,在SQLServer運(yùn)行時(shí)tempdb數(shù)據(jù)庫會(huì)根據(jù)需要自動(dòng)增長.不過,與其他數(shù)據(jù)庫不同,每次啟動(dòng)數(shù)據(jù)庫引擎時(shí),它會(huì)重置為其初始大小.如果為tempdb數(shù)據(jù)庫定義的大小較小,則每次重新啟動(dòng)SQLServer時(shí),將tempdb數(shù)據(jù)庫的大小自動(dòng)增加到支持工作負(fù)荷所需的大小這一工作就可能會(huì)成為系統(tǒng)處理負(fù)荷的一部分.為避免這種開銷,可以使用ALTER DATABASE語句增加tempdb數(shù)據(jù)庫的大小.下面的代碼將tempdb數(shù)據(jù)庫的主數(shù)據(jù)文件大小設(shè)置為100MB.
ALTER DATABASE tempdb
MODIFY FILE(
name=tempdev,
size=100MB)
除了避免啟動(dòng)SQLServer時(shí)tempdb數(shù)據(jù)庫自動(dòng)增加的工作負(fù)荷外,把tempdb數(shù)據(jù)庫的數(shù)據(jù)文件分散到多個(gè)高性能的磁盤上,并有避免和用戶數(shù)據(jù)庫的數(shù)據(jù)文件放在同一磁盤,也可以獲得更好的性能.
下面的代碼可以將tempdb數(shù)據(jù)庫的主數(shù)據(jù)文件移動(dòng)到指定的磁盤分區(qū)上,并且為其添加一個(gè)數(shù)據(jù)文件.
--移動(dòng)主數(shù)據(jù)文件
ALTER DATABASE tempdb MODIFY FILE
(NAME='tempdev',
FILENAME='d:\tempdb.mdf')
--添加次要數(shù)據(jù)文件
ALTER DATABASE tempdb ADD FILE
(NAME='tempdata_1',
FILENAME='d:\tempdb_data_1.ndf')
二分注釋法