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