tempdb數(shù)據(jù)庫(kù)設(shè)置問(wèn)題
廣告:
清除日志:
backup log tempdb with no_log --清除事務(wù)日志
go
backup log 當(dāng)前數(shù)據(jù)data with no_log --清除事務(wù)日志
go
use tempdb
go
dbcc shrinkfile (tempdev, 10240) --調(diào)整tempdb的主數(shù)據(jù)文件大小為10240 MB, 可根據(jù)需要調(diào)整, 這個(gè)命令不是必須執(zhí)行的。
go
dbcc shrinkfile (templog, 10240) --調(diào)整tempdb的事務(wù)日志文件大小為10240 MB, 可根據(jù)需要調(diào)整
go
--A. 將tempdb數(shù)據(jù)庫(kù)的主數(shù)據(jù)文件大小設(shè)置為10MB。
ALTER DATABASE tempdb
MODIFY FILE(
name=tempdev,
size=100 MB)
GO
--B. 將tempdb數(shù)據(jù)庫(kù)的主數(shù)據(jù)文件移動(dòng)到指定的磁盤(pán)分區(qū)上,并且為其添加一個(gè)數(shù)據(jù)文件。
--移動(dòng)主數(shù)據(jù)文件
ALTER DATABASE tempdb MODIFY FILE
( NAME='tempdev',
FILENAME ='d:tempdb.mdf')
ALTER DATABASE tempdb
MODIFY FILE(
NAME='tempdev',
FILEGROWTH=10%)
GO
ALTER DATABASE [tempdb] MODIFY FILE ( NAME = N'tempdev', FILEGROWTH = 10% )
GO
ALTER DATABASE [tempdb] MODIFY FILE ( NAME = N'templog', FILEGROWTH = 204800KB )
--添加次要數(shù)據(jù)文件
ALTER DATABASE tempdb ADD FILE
( NAME='tempdata_1',
FILENAME ='d:tempdb_data_1.ndf')
tempdb出問(wèn)題時(shí):
這個(gè)問(wèn)題說(shuō)明你的處理要求數(shù)據(jù)庫(kù)立即分配 xx MB 的存儲(chǔ)空間用于滿足你的處理需求,但數(shù)據(jù)庫(kù)在 xx 毫秒無(wú)法完成這個(gè)分配.
解決的辦法:
1. 不要使用自動(dòng)收縮, 自動(dòng)收縮會(huì)定期收容數(shù)據(jù)文件的空閑空間,則處理需要的時(shí)候卻要擴(kuò)大數(shù)據(jù)文件,這兩者相反的處理,是沖突的
設(shè)置方法:
ALTER DATABASE MyDataBase SET AUTO_SHRINK OFF
2. 如果你不進(jìn)行事務(wù)日志備份, 也不需要利用事務(wù)日志做處理,則可以將數(shù)據(jù)庫(kù)恢復(fù)模型設(shè)置為SIMPLE, 減少日志記錄, 減輕磁盤(pán)I/O壓力
ALTER DATABASE MyDataBase SET RECOVERY SIMPLE
3. 設(shè)置更小的文件增長(zhǎng)步驟,以減少每次數(shù)據(jù)文件分配空間所需要的時(shí)間
ALTER DATABASE MyDataBase
MODIFY FILE(
NAME='MyDataBase_Date',
FILEGROWTH=50 MB) --不要使用百分比, 不然數(shù)據(jù)文件大了的話,這個(gè)百分比的結(jié)果就很大
4. 為數(shù)據(jù)文件預(yù)先分配足夠大的空間,避免數(shù)據(jù)處理時(shí)分配空間
ALTER DATABASE MyDataBase
MODIFY FILE(
NAME='MyDataBase_Date',
SIZE=500 GB) -- 預(yù)設(shè)數(shù)據(jù)文件大小為500GB
5. 如果通過(guò)上述處理還無(wú)法解決問(wèn)題,則應(yīng)該考慮你的磁盤(pán)I/O性能不行,考慮提高硬件配置.
廣告: