usemdf、ldf檔案過大導致訪問慢的問題:[ivms8100]go
/****** object: storedprocedure [dbo].[clearmemory] script date: 04/13/2010 14:28:39 *****
*/set ansi_nulls on
goset quoted_identifier on
go/*
**start**
*/--
--強制釋放記憶體
create
procedure
[dbo
].[clearmemory]as
begin
--清除所有快取
dbcc
dropcleanbuffers
--開啟高階配置
exec sp_configure '
show advanced options
', 1
----設定最大記憶體值,清除現有快取空間
exec sp_configure '
max server memory
', 256
exec ('
reconfigure')
--設定等待時間
waitfor delay '
00:00:01'--
重新設定最大記憶體值
exec sp_configure '
max server memory
', 4096
exec ('
reconfigure')
--關閉高階配置
exec sp_configure '
show advanced options
',0end
/***end**
*/
還有一種情況是,雖然可以繼續訪問資料庫,但是非常慢。檢視mdf(master database file)和ldf(log database file)檔案比較大。
產生原因:
索引碎片過多;
頻繁的db操作,如果臨時表和儲存過程未及時清理;
異常狀況下,占用的db空間未釋放。
解決方案:
磁碟整理。或者公升級系統,單磁碟轉磁碟陣列;
分多個資料庫;
重建db,將其分為多個檔案組,存放不同的表,並將檔案組存放在不同的磁碟中;
重建db索引;
收縮mdf、ldf。
其中,以上解決方案中最易實現、最容易的就是收縮mdf和ldf檔案。
網上有很多**並茂的操作方式,就不再贅述。有操守的程式設計師還是應該給出可執行的sql**來。
以下給出的例子適合在sql server 2008上執行。有很多sql server 2005和sql server 2000的例子現在已經沒意義了!
以下**資料庫名稱為「ivms8100v3」,請審閱:
--收縮mdf:
dbcc shrinkfile ('
ivms8100v3
',1)
--收縮ldf:
use[
master]go
alter
database ivms8100v3 set recovery ****** with
no_wait
goalter
database ivms8100v3 set recovery ****** --
簡單模式
gouse
ivms8100v3
godbcc shrinkfile (n'
ivms8100v3_log
' , 11
, truncateonly)
gouse
[master]go
alter
database ivms8100v3 set recovery full
with
no_wait
goalter
database ivms8100v3 set recovery full
--還原為完全模式
go
redis AOF檔案過大
最近新安裝了一台redis,版本為redis 3.2.5 資料盤用的是固態硬碟。之前用的是普通硬碟,redis日誌天天報 asynchronous aof fsync is taking too long disk is busy?writing the aof buffer without wai...
CruiseControl 日誌檔案過大
zoundrydocument 前一陣,為了提公升公司 質量,改善開發流程,在我們專案組內,引入了持續整合伺服器,由於我們使用vs作為開發工具,所以選擇使用cruisecontrol.net,下面簡稱cc。server和dashboard的部署,基本看附帶的文件就能搞定,我建立了乙個簡單的流程,每隔...
git目錄檔案過大
最近clone乙個倉庫發現資料夾巨大,檢視具體檔案體積並不大 後來發現是.git目錄占用過多空間 git 往磁碟儲存物件時預設使用的格式叫鬆散物件 loose object 格式 git 時不時地將這些物件打包至乙個叫 packfile 的二進位制檔案以節省空間並提高效率 而git verify p...