sqlserver碎片整理
--首先,用下面的語句,檢查/修復資料庫/並整理索引碎片(需要比較長的時間,請在系統空閑時進行此工作)
USE MASTER
GO
sp_dboption '你的資料庫名', 'single user', 'true'
Go
DBCC CHECKDB('你的資料庫名', REPAIR_REBUILD)
Go
USE 你的資料庫名
go
exec sp_msforeachtable 'DBCC CHECKTABLE(''?'',REPAIR_REBUILD)'
exec sp_msforeachtable 'DBCC DBREINDEX(''?'')'
go
sp_dboption '你的資料庫名', 'single user', 'false'
Go
--然後用這個壓縮資料庫日誌文件.
SET NOCOUNT ON
DECLARE @LogicalFileName sysname,
@MaxMinutes INT,
@NewSize INT
--Select * From Sysfiles
USE YSERP -- 要操作的資料庫名
SELECT @LogicalFileName = 'YSERP_Log' , -- 日誌文件名
@MaxMinutes = 10, -- Limit on time allowed to wrap log.
@NewSize = 20 -- 你想設定的日誌文件的大小(M)
-- Setup / initialize
DECLARE @OriginalSize int
SELECT @OriginalSize = size
FROM sysfiles
WHERE name = @LogicalFileName
SELECT ' Original Size of ' + db_name() + ' LOG is ' +
CONVERT(VARCHAR(30),@OriginalSize) + ' 8K pages or ' +
CONVERT(VARCHAR(30),(@OriginalSize*8/1024)) + ' MB '
FROM sysfiles
WHERE name = @LogicalFileName
CREATE TABLE DummyTrans
(DummyColumn char (8000) not null)
DECLARE @Counter INT,
@StartTime DATETIME,
@TruncLog VARCHAR(255)
SELECT @StartTime = GETDATE(),
@TruncLog = ' BACKUP LOG ' + db_name() + ' WITH TRUNCATE_ONLY '
DBCC SHRINKFILE (@LogicalFileName, @NewSize)
EXEC (@TruncLog)
-- Wrap the log if necessary.
WHILE @MaxMinutes > DATEDIFF (mi, @StartTime, GETDATE()) -- time has not
/*expired*/ AND @OriginalSize = (SELECT size FROM sysfiles WHERE name =@LogicalFileName) AND (@OriginalSize * 8 /1024) > @NewSize
BEGIN -- Outer loop.
SELECT @Counter = 0
WHILE ((@Counter < @OriginalSize / 16) AND (@Counter < 50000))
BEGIN -- update
INSERT DummyTrans VALUES ( ' Fill Log ' )
DELETE DummyTrans
SELECT @Counter = @Counter + 1
END
EXEC (@TruncLog)
END
SELECT ' Final Size of ' + db_name() + ' LOG is ' +
CONVERT(VARCHAR(30),size) + ' 8K pages or ' +
CONVERT(VARCHAR(30),(size*8/1024)) + ' MB '
FROM sysfiles
WHERE name = @LogicalFileName
DROP TABLE DummyTrans
SET NOCOUNT OFF
--其次是壓縮主數據文件
企業管理器->所有任務->壓縮資料庫->壓縮文件->文件->壓縮到最終大小->輸入最小值即可
⑵ sqlserver2000 必須要重建索引嗎
這個東西沒有必須,誰也無法規定你一定要怎樣,搞清楚做這件事是為了什麼,你才知道有沒有必要做。
重建索引的目的是為了讓索引更高效的工作,如果一個索引長時間的沒有整理,那麼整個索引上的數據就會雜亂無章的排列,無法起到提高效率的作用,這樣的索引並沒有什麼卵用。所以對於頻繁寫入數據的表,適時重建索引是需要的。對於不頻繁的表,可以延長索引重建的時間,如果一個表完全只用於查詢而從來不寫入,那可以永遠不需要重建索引。重建索引主要解決索引碎片問題,索引碎片會導致更多的磁碟IO,而磁碟IO恰恰是最消耗時間的操作。
以聚集索引為例,原理在於:
當一個表新增數據時,數據是依次寫入數據頁,索引同理;
而數據寫入並不一定會按順序,例如公司新增員工,你並不能確定每次新增員工他們的姓氏一定就是按照A-Z的順序來的;
那麼時間一長,以字母A為首字母的用戶信息將會遍布整個索引,從頭到尾;
這對於數據檢索沒有什麼好處,假如索引存儲用了1000頁,那麼你需要讀取1000頁的數據來檢索信息;
這時就需要通過索引重建,來把數據按照規則重新排列,以期望在檢索字母A開頭的員工時,可以讓資料庫知道,這些數據都是聚集在前200頁的;
從而讓資料庫減少讀取,提高讀取速度。
更多的細節上的東西,你需要學習2個知識點就可以知道了,
資料庫中的數據是怎麼存儲的,索引又是怎麼存儲的,是什麼結構
索引碎片對性能的影響
⑶ 電腦常用快捷方式有哪些
一、常見用法
F1顯示當前程序或者windows的幫助內容。
F2當你選中一個文件的話,這意味著「重命名」
F3當你在桌面上的時候是打開「查找:所有文件」 對話框
F10或ALT激活當前程序的菜單欄
windows鍵或CTRL+ESC打開開始菜單
CTRL+ALT+DELETE在win9x中打開關閉程序對話框
DELETE刪除被選擇的選擇項目,如果是文件,將被放入回收站
SHIFT+DELETE刪除被選擇的選擇項目,如果是文件,將被直接刪除而不是
放入回收站
CTRL+N新建一個新的文件
CTRL+O打開「打開文件」對話框
CTRL+P打開「列印」對話框
CTRL+S保存當前操作的文件
CTRL+X剪切被選擇的項目到剪貼板
CTRL+INSERT 或 CTRL+C復制被選擇的項目到剪貼板
SHIFT+INSERT 或 CTRL+V粘貼剪貼板中的內容到當前位置
ALT+BACKSPACE 或 CTRL+Z 撤銷上一步的操作
ALT+SHIFT+BACKSPACE重做上一步被撤銷的操作
Windows鍵+L 鎖屏鍵
Windows鍵+M最小化所有被打開的窗口。
Windows鍵+SHIFT+M重新將恢復上一項操作前窗口的大小和位置
Windows鍵+E打開資源管理器
Windows鍵+F打開「查找:所有文件」對話框
Windows鍵+R打開「運行」對話框
Windows鍵+BREAK打開「系統屬性」對話框
Windows鍵+CTRL+F打開「查找:計算機」對話框
SHIFT+F10或滑鼠右擊打開當前活動項目的快捷菜單
SHIFT在放入CD的時候按下不放,可以跳過自動播放CD。在打開word的時候按下不放,可以跳過自啟動的宏
ALT+F4關閉當前應用程序
ALT+SPACEBAR打開程序最左上角的菜單
ALT+TAB切換當前程序
ALT+ESC切換當前程序
ALT+ENTER將windows下運行的MSDOS窗口在窗口和全屏幕狀態間切換
PRINT SCREEN將當前屏幕以圖象方式拷貝到剪貼板
ALT+PRINT SCREEN將當前活動程序窗口以圖象方式拷貝到剪貼板
CTRL+F4關閉當前應用程序中的當前文本(如word中)
CTRL+F6切換到當前應用程序中的下一個文本(加shift 可以跳到前一個窗口)
在IE中:
ALT+RIGHT ARROW顯示前一頁(前進鍵)
ALT+LEFT ARROW顯示後一頁(後退鍵)
CTRL+TAB在頁面上的各框架中切換(加shift反向)
F5刷新
CTRL+F5強行刷新
目的快捷鍵
激活程序中的菜單欄 F10
執行菜單上相應的命令 ALT+菜單上帶下劃線的字母
關閉多文檔界面程序中的當
前窗口 CTRL+ F4
關閉當前窗口或退出程序 ALT+ F4
復制 CTRL+ C
剪切 CTRL+ X
刪除 DELETE
顯示所選對話框項目的幫助 F1
顯示當前窗口的系統菜單 ALT+空格鍵
顯示所選項目的快捷菜單 SHIFT+ F10
顯示「開始」菜單 CTRL+ ESC
顯示多文檔界面程序的系統
菜單 ALT+連字型大小(-)
粘貼 CTR L+ V
切換到上次使用的窗口或者
按住 ALT然後重復按TAB,
切換到另一個窗口 ALT+ TAB
撤消 CTRL+ Z
二、使用「Windows資源管理器」的快捷鍵
目的快捷鍵
如果當前選擇展開了,要折疊或者選擇父文件夾左箭頭
折疊所選的文件夾 NUM LOCK+負號(-)
如果當前選擇折疊了,要展開或者選擇第一個子文件夾右箭頭
展開當前選擇下的所有文件夾 NUM LOCK+*
展開所選的文件夾 NUM LOCK+加號(+)
在左右窗格間切換 F6
三、使用 WINDOWS鍵
可以使用 Microsoft自然鍵盤或含有 Windows徽標鍵的其他任何兼容鍵盤的以下快
捷鍵。
目的快捷鍵
在任務欄上的按鈕間循環 WINDOWS+ TAB
顯示「查找:所有文件」 WINDOWS+ F
顯示「查找:計算機」 CTRL+ WINDOWS+ F
顯示「幫助」 WINDOWS+ F1
顯示「運行」命令 WINDOWS+ R
顯示「開始」菜單 WINDOWS
顯示「系統屬性」對話框 WINDOWS+ BREAK
顯示「Windows資源管理器」 WINDOWS+ E
最小化或還原所有窗口 WINDOWS+ D
撤消最小化所有窗口 SHIFT+ WINDOWS+ M
============================================================
四、「我的電腦」和「資源管理器」的快捷鍵
目的快捷鍵
關閉所選文件夾及其所有父
文件夾按住 SHIFT鍵再單擊「關閉按鈕(僅適用於「我的電腦」)
向後移動到上一個視圖 ALT+左箭頭
向前移動到上一個視圖 ALT+右箭頭
查看上一級文件夾 BACKSPACE
=============================================================
五、使用對話框中的快捷鍵
目的快捷鍵
取消當前任務 ESC
如果當前控制項是個按鈕,要
單擊該按鈕或者如果當前控
件是個復選框,要選擇或清
除該復選框或者如果當前控
件是個選項按鈕,要單擊該
選項空格鍵
單擊相應的命令 ALT+帶下劃線的字母
單擊所選按鈕 ENTER
在選項上向後移動 SHIFT+ TAB
在選項卡上向後移動 CTRL+ SHIFT+ TAB
在選項上向前移動 TAB
在選項卡上向前移動 CTRL+ TAB
如果在「另存為」或「打開」
對話框中選擇了某文件夾,
要打開上一級文件夾 BACKSPACE
在「另存為」或「打開」對
話框中打開「保存到」或
「查閱」 F4
刷新「另存為」或「打開」
對話框 F5
========================================================
六、桌面、我的電腦和「資源管理器」快捷鍵
選擇項目時,可以使用以下快捷鍵。
目的快捷鍵
插入光碟時不用「自動播放」
功能按住 SHIFT插入 CD-ROM
復制文件按住 CTRL拖動文件
創建快捷方式按住 CTRL+SHIFT拖動文件
立即刪除某項目而不將其放入 SHIFT+DELETE
「回收站」
顯示「查找:所有文件」 F3
顯示項目的快捷菜單 APPLICATION鍵
刷新窗口的內容 F5
重命名項目 F2
選擇所有項目 CTRL+ A
查看項目的屬性 ALT+ ENTER或 ALT+雙擊
可將 APPLICATION鍵用於 Microsoft自然鍵盤或含有 APPLICATION鍵的其他兼容鍵
=======================================================
七、Microsoft放大程序的快捷鍵
這里運用Windows徽標鍵和其他鍵的組合。
快捷鍵目的
Windows徽標+PRINT SCREEN將屏幕復制到剪貼板(包括滑鼠游標)
Windows徽標+SCROLL LOCK將屏幕復制到剪貼板(不包括滑鼠游標)
Windows徽標+ PAGE UP切換反色。
Windows徽標+ PAGE DOWN切換跟隨滑鼠游標
Windows徽標+向上箭頭增加放大率
Windows徽標+向下箭頭減小放大率
=========================================================
八、使用輔助選項快捷鍵
目的快捷鍵
切換篩選鍵開關右SHIFT八秒
切換高對比度開關左ALT+左SHIFT+PRINT SCREEN
切換滑鼠鍵開關左ALT+左SHIFT+NUM LOCK
切換粘滯鍵開關 SHIFT鍵五次
切換切換鍵開關 NUM LOCK五秒
QQ快捷鍵,玩QQ更方便
Alt+S 快速回復
Alt+C 關閉當前窗口
Alt+H 打開聊天記錄
Alt+T 更改消息模式
Ait+J 打開聊天紀錄
Ctrl+A 全選當前對話框里的內容
Ctrl+F QQ里直接顯示字體設置工具條
Ctrl+J 輸入框里回車(跟回車一個效果)
Ctrl+M 輸入框里回車(跟回車一個效果)
Ctrl+L 對輸入框里當前行的文字左對齊
Ctrl+R 對輸入框里當前行的文字右對齊
Ctrl+E對輸入框里當前行的文字居中
Ctrl+V在qq對話框里實行粘貼
Ctrl+Z清空/恢復輸入框里的文字
Ctrl+回車 快速回復 這個可能是聊QQ時最常用到的了
Ctrl+Alt+Z快速提取消息
Ctrl+Alt+A 捕捉屏幕
最常用的快捷鍵
F5------------刷新 DELETE--------刪除 TAB-------改變焦點
CTRL+C--------復制 CTRL+X--------剪切 CTRL+V--------粘貼
CTRL+A--------全選 CTRL+Z--------撤銷 CTRL+S--------保存
ALT+F4--------關閉 CTRL+Y--------恢復 ALT+TAB-------切換
CTRL+F5---強制刷新 CTRL+W--------關閉 CTRL+F--------查找
SHIFT+DELETE永久刪除 CTRL+ALT+DEL任務管理 SHIFT+TAB-反向切換
CTRL+空格--中英文輸入切換 CTRL+Shift輸入法切換 CTRL+ESC--開始菜單
CTRL+ALT+ZQQ快速提取消息 CTRL+ALT+AQQ截圖工具 CTRL+ENTERQQ發消息
Alt+1保存當前表單
Alt+2保存為通用表單
Alt+A展開收藏夾列表
資源管理器
END顯示當前窗口的底端
HOME顯示當前窗口的頂端
NUMLOCK+數字鍵盤的減號(-)折疊所選的文件夾
NUMLOCK+數字鍵盤的加號(+)顯示所選文件夾的內容
NUMLOCK+數字鍵盤的星號(*)顯示所選文件夾的所有子文件夾
向左鍵當前所選項處於展開狀態時折疊該項,或選定其父文件夾
向右鍵當前所選項處於折疊狀態時展開該項,或選定第一個子文件夾
自然鍵盤
【窗口】顯示或隱藏「開始」菜單
【窗口】+F1幫助
【窗口】+D顯示桌面
【窗口】+R打開「運行」
【窗口】+E打開「我的電腦」
【窗口】+F搜索文件或文件夾
【窗口】+U打開「工具管理器」
【窗口】+BREAK顯示「系統屬性」
【窗口】+TAB在打開的項目之間切換
輔助功能
按右邊的SHIFT鍵八秒鍾切換篩選鍵的開和關
按SHIFT五次切換粘滯鍵的開和關
按NUMLOCK五秒鍾切換切換鍵的開和關
左邊的ALT+左邊的SHIFT+NUMLOCK切換滑鼠鍵的開和關
左邊的ALT+左邊的SHIFT+PRINTSCREEN切換高對比度的開和關
運行
按「開始」-「運行」,或按WIN鍵+R,在『運行』窗口中輸入:
(按英文字元順序排列)
%temp%---------打開臨時文件夾
.--------------C:\DocumentsandSettings\用戶名所在文件夾
..-------------C:\DocumentsandSettings
...------------我的電腦
\--------------C盤
appwize.cpl----添加、刪除程序
access.cpl-----輔助功能選項
Accwiz---------輔助功能向導
cmd------------CMD命令提示符
command--------CMD命令提示符
chkdsk.exe-----Chkdsk磁碟檢查
certmgr.msc----證書管理實用程序
calc-----------啟動計算器
charmap--------啟動字元映射表
cintsetp-------倉頡拼音輸入法
cliconfg-------SQLSERVER客戶端網路實用程序
clipbrd--------剪貼板查看器
control--------打開控制面板
conf-----------啟動netmeeting
compmgmt.msc---計算機管理
cleanmgr-------垃圾整理
ciadv.msc------索引服務程序
dcomcnfg-------打開系統組件服務
ddeshare-------打開DDE共享設置
dxdiag---------檢查DirectX信息
drwtsn32-------系統醫生
devmgmt.msc----設備管理器
desk.cpl-------顯示屬性
dfrg.msc-------磁碟碎片整理程序
diskmgmt.msc---磁碟管理實用程序
dvdplay--------DVD播放器
eventvwr-------事件查看器
eudcedit-------造字程序
explorer-------打開資源管理器
fsmgmt.msc-----共享文件夾管理器
firewall.cpl---WINDOWS防火牆
gpedit.msc-----組策略
hdwwiz.cpl-----添加硬體
iexpress-------木馬捆綁工具,系統自帶
inetcpl.cpl----INTETNET選項
intl.cpl-------區域和語言選項(輸入法選項)
irprops.cpl----無線鏈接
joy.cpl--------游戲控制器
lusrmgr.msc----本機用戶和組
logoff---------注銷命令
main.cpl-------滑鼠
mem.exe--------顯示內存使用情況
migwiz---------文件轉移向導
mlcfg32.cpl----郵件
mplayer2-------簡易widnowsmediaplayer
mspaint--------畫圖板
msconfig.exe---系統配置實用程序
mstsc----------遠程桌面連接
magnify--------放大鏡實用程序
mmc------------打開控制台
mmsys.cpl------聲音和音頻設備
mobsync--------同步命令
ncpa.cpl-------網路連接
nslookup-------IP地址偵測器
netstartX----開始X服務
netstopX-----停止X服務
netstat-an----命令檢查介面
netsetup.cpl---無線網路安裝向導
notepad--------打開記事本
nslookup-------IP地址偵探器
narrator-------屏幕「講述人」
ntbackup-------系統備份和還原
ntmsmgr.msc----移動存儲管理器
ntmsoprq.msc---移動存儲管理員操作請求
nusrmgr.cpl----用戶賬戶
nwc.cpl--------NetWare客戶服務
osk------------打開屏幕鍵盤
odbcad32-------ODBC數據源管理器
odbccp32.cpl---ODBC數據源管理器
oobe/msoobe/a-檢查XP是否激活
packager-------對象包裝程序
perfmon.msc----計算機性能監測程序
powercfg.cpl---電源選項
progman--------程序管理器
regedit--------注冊表
rsop.msc-------組策略結果集
regedt32-------注冊表編輯器
regsvr32/?----調用、卸載DLL文件運行(詳細請在cmd中輸入regsvr32/?)
sapi.cpl-------語音
services.msc---本地服務設置
syncapp--------創建一個公文包
sysedit--------系統配置編輯器
sigverif-------文件簽名驗證程序
sndrec32-------錄音機
sndvol32-------音量控製程序
shrpubw--------共享文件夾設置工具
secpol.msc-----本地安全策略
sysdm.cpl------系統
syskey---------系統加密(一旦加密就不能解開,保護windowsxp系統的雙重密碼)
services.msc---本地服務設置
sfc.exe--------系統文件檢查器
sfc/scannow---windows文件保護
shutdown-------關機命令(詳細請在cmd中輸入shutdown/?)
taskmgr--------任務管理器
telephon.cpl---電話和數據機選項
telnet---------遠程連接程序
timedate.cpl---日期和時間
tourstart------xp簡介(安裝完成後出現的漫遊xp程序)
tsshutdn-------60秒倒計時關機命令
utilman--------輔助工具管理器
winver---------檢查Windows版本
winmsd---------系統信息
wiaacmgr-------掃描儀和照相機向導
winchat--------XP自帶區域網聊天
wmimgmt.msc----打開windows管理體系結構(WMI)
wordpad--------寫字板
wuaucpl.cpl----自動更新
wupdmgr--------windows更新程序
write----------寫字板
wscript--------windows腳本宿主設置
wscui.cpl------安全中心
C:/windows/fonts字體
hcp://services/centers/homepage幫助和支持
⑷ 如何判斷MSSQL資料庫磁碟出現了瓶頸
具體問題具體分析,舉例來說明為什麼磁碟IO成瓶頸資料庫的性能急速下降了。
為什麼當磁碟IO成瓶頸之後, 資料庫的性能不是達到飽和的平衡狀態,而是急劇下降。為什麼資料庫的性能有非常明顯的分界點,原因是什麼?
相信大部分做資料庫運維的朋友,都遇到這種情況。 資料庫在前一天性能表現的相當穩定,資料庫的響應時間也很正常,但就在今天,在業務人員反饋業務流量沒有任何上升的情況下,資料庫的變得不穩定了,有時候一個最簡單的insert操作, 需要幾十秒,但99%的insert卻又可以在幾毫秒完成,這又是為什麼了?
dba此時心中有無限的疑惑,到底是什麼原因呢? 磁碟IO性能變差了?還是業務運維人員反饋的流量壓根就不對? 還是資料庫內部出問題?昨天不是還好好的嗎?
當資料庫出現響應時間不穩定的時候,我們在操作系統上會看到磁碟的利用率會比較高,如果觀察仔細一點,還可以看到,存在一些讀的IO. 資料庫伺服器如果存在大量的寫IO,性能一般都是正常跟穩定的,但只要存在少量的讀IO,則性能開始出現抖動,存在大量的讀IO時(排除配備非常高速磁碟的機器),對於在線交易的資料庫系統來說,大概性能就雪崩了。為什麼操作系統上看到的磁碟讀IO跟寫IO所帶來的性能差距這么大呢?
如果親之前沒有注意到上述的現象,親對上述的結論也是懷疑。但請看下面的分解。
在寫這個文章之前,作者閱讀了大量跟的IO相關的代碼,如非同步IO線程的相關的,innodb_buffer池相關的,以及跟讀數據塊最相關的核心函數buf_page_get_gen函數以及其調用的相關子函數。為了將文章寫得通俗點,看起來不那麼累,因此不再一行一行的將代碼解析寫出來。
咱們先來提問題。buf_page_get_gen函數的作用是從Buffer bool裡面讀數據頁,可能存在以下幾種情況。
提問. 數據頁不在buffer bool 裡面該怎麼辦?
回答:去讀文件,將文件中的數據頁載入到buffer pool裡面。下面是函數buffer_read_page的函數,作用是將物理數據頁載入到buffer pool, 圖片中顯示
buffer_read_page函數棧的頂層是pread64(),調用了操作系統的讀函數。
通過解析buf_wait_for_read函數的下層函數,我們知道其實通過首先自旋加鎖pin的方式,超過設定的自旋次數之後,進入等待,等待IO完成被喚醒。這樣節省不停自旋pin時消耗的cpu,但需要付出被喚起時的開銷。
再繼續擴展問題: 如果會話線程A 經過物理IO將數據頁1001讀入buffer之後,他需要修改這個頁,而在會話線程A之後的其他的同樣需要訪問數據頁1001的會話線程,即使在數據頁1001被入讀buffer pool之後,將仍然處於等待中。因為在數據頁上讀取或者更新的時候,同樣需要上鎖,這樣才能保證數據頁並發讀取/更新的一致性。
由此可見,當一個高並發的系統,出現了熱點數據頁需要從磁碟上載入到buffer pool中時,造成的延遲,是難以想像的。因此排在等待熱點頁隊列最後的會話線程最後才得到需要的頁,響應時間也就越長,這就是造成了一個簡單的sql需要執行幾十秒的原因。
再回頭來看上面的問題,mysql資料庫出現性能下降時,可以看到操作系統有讀IO。 原因是,在資料庫對數據頁的更改,是在內存中的,然後通過檢查點線程進行非同步寫盤,這個非同步的寫操作是不堵塞執行sql的會話線程的。所以,即使看到操作系統上有大量的寫IO,資料庫的性能也是很平穩的。但當用戶線程需要查找的數據頁不在buffer pool中時,則會從磁碟上讀取,在一個熱點數據頁不是非常多的情況下,我們設置足夠大的innodb_buffer_pool的size, 基本可以緩存所有的數據頁,因此一般都不會出現缺頁的情況,也就是在操作系統上基本看不到讀的IO。 當出現讀的IO時,原因時在執行buf_read_page_low函數,從磁碟上讀取數據頁到buffer pool, 則資料庫的性能則開始下降,當出現大量的讀IO,資料庫的性能會非常差。
⑸ 如何檢查sql資料庫索引填充因子是否產生碎片以及如何處理
這是收藏的一些資料:
SQLServer提供了一個資料庫命令――DBCC SHOWCONTIG――來確定一個指定的表或索引是否有碎片。
示例:
顯示資料庫里所有索引的碎片信息
DBCC SHOWCONTIG WITH ALL_INDEXES
顯示指定表的所有索引的碎片信息
DBCC SHOWCONTIG (authors) WITH ALL_INDEXES
顯示指定索引的碎片信息
DBCC SHOWCONTIG (authors,aunmind)
DBCC 執行結果:
掃描頁數:如果你知道行的近似尺寸和表或索引里的行數,那麼你可以估計出索引里的頁數。看看掃描頁數,如果明顯比你估計的頁數要高,說明存在內部碎片。
掃描擴展盤區數:用掃描頁數除以8,四捨五入到下一個最高值。該值應該和DBCC SHOWCONTIG返回的掃描擴展盤區數一致。如果DBCC SHOWCONTIG返回的數高,說明存在外部碎片。碎片的嚴重程度依賴於剛才顯示的值比估計值高多少。
擴展盤區開關數:該數應該等於掃描擴展盤區數減1。高了則說明有外部碎片。
每個擴展盤區上的平均頁數:該數是掃描頁數除以掃描擴展盤區數,一般是8。小於8說明有外部碎片。
掃描密度[最佳值:實際值]:DBCC SHOWCONTIG返回最有用的一個百分比。這是擴展盤區的最佳值和實際值的比率。該百分比應該盡可能靠近100%。低了則說明有外部碎片。
邏輯掃描碎片:無序頁的百分比。該百分比應該在0%到10%之間,高了則說明有外部碎片。
擴展盤區掃描碎片:無序擴展盤區在掃描索引葉級頁中所佔的百分比。該百分比應該是0%,高了則說明有外部碎片。
每頁上的平均可用位元組數:所掃描的頁上的平均可用位元組數。越高說明有內部碎片,不過在你用這個數字決定是否有內部碎片之前,應該考慮fill factor(填充因子)。
平均頁密度(完整):每頁上的平均可用位元組數的百分比的相反數。低的百分比說明有內部碎片。
解決碎片問題 :
1. 刪除並重建索引
2. 使用DROP_EXISTING子句重建索引
3. 執行DBCC DBREINDEX
4. 執行DBCC INDEXDEFRAG
刪除並重建索引 :
用DROP INDEX和CREATE INDEX或ALTER TABLE來刪除並重建索引有些缺陷包括在刪除重建期間索引會消失。在索引刪除重建時,對於查詢它不在可用,查詢性能也許會受到明顯的影響,直到重建索引為止。另一個潛在的缺陷是當都請求索引的時候會引起阻塞,直到重建索引為止。通過其他的處理也能解決阻塞,就是索引被使用的時候不刪除索引。另一個主要的缺陷是在用DROP INDEX和CREATE INDEX重建聚集索引時會引起非聚集索引重建兩次。刪除聚集索引時非聚集索引的行指針會指向數據堆,聚集索引重建時非聚集索引的行指針又會指回聚集索引的行位置。
刪除並重建索引的確有一個好處就是通過重新排序索引頁,使索引頁緊湊並刪除不需要的索引頁來完全重建索引。你也許需要考慮那些內部和外部碎片都很高的情況下才使用,以使那些索引回到它們應該在的位置。
使用DROP_EXISTING子句重建索引 :
為了避免在重建聚集索引時表上的非聚集索引重建兩次,可以使用帶DROP_EXISTING子句的CREATE INDEX語句。這個子句會保留聚集索引鍵值,以避免非聚集索引重建兩次。和刪除並重建索引一樣,該方法也可能會引起阻塞和索引消失的問題。該方法的另一個缺陷是也強迫你去分別發現和修復表上的每一個索引。
除了和上一個方法一樣的好處之外,該方法的好處是不必重建非聚集索引兩次。這樣可以對那些帶約束的索引提供正確的索引定義以符合約束的要求。
執行DBCC DBREINDEX :
DBCC DBREINDEX類似於第二種方法,但它物理地重建索引,允許SQLServer給索引分配新頁來減少內部和外部碎片。DBCC DBREINDEX也能動態的重建帶約束的索引,不象第二種方法。
DBCC DBREINDEX的缺陷是會遇到或引起阻塞問題。DBCC DBREINDEX是作為一個事務來運行的,所以如果在完成之前中斷了,那麼你會丟失所有已經執行過的碎片。
執行DBCC INDEXDEFRAG :
DBCC INDEXDEFRAG(在SQLServer2000中可用)按照索引鍵的邏輯順序,通過重新整理索引里存在的葉頁來減少外部碎片,通過壓縮索引頁里的行然後刪除那些由此產生的不需要的頁來減少內部碎片。它不會遇到阻塞問題但它的結果沒有其他幾個方法徹底。這是因為DBCC INDEXDEFRAG跳過了鎖定的頁且不使用任何新頁來重新排序索引。如果索引的碎片數量大的話你也許會發現DBCC INDEXDEFRAG比重建索引花費的時間更長。DBCC INDEXDEFRAG比其他方法的確有好處的是在其他過程訪問索引時也能進行碎片整理,不會引起其他方法的阻塞問題。
⑹ SqlServer數據文件太大,表佔用空間太大,怎麼釋放空間
時間充足就斷線停止寫入資料庫,做個全備份。
刪除資料庫,刪除資料庫文件。
整理下磁碟。
重建同名資料庫,恢復資料庫。
這時候的空間是最緊湊的,可以試試建聚集索引。
最根本的方法是加硬碟,可能你的數據操作規律就是會產生很多碎片的,必須要有雙倍的空間才行。
⑺ 電腦開始菜單中的運行程序有哪些妙用
按「開始」-「運行」,或按WIN鍵+R,在『運行』窗口中輸入:
(按英文字元順序排列)
%temp%---------打開臨時文件夾
.--------------C:\DocumentsandSettings\用戶名所在文件夾
..-------------C:\DocumentsandSettings
...------------我的電腦
\--------------C盤
appwize.cpl----添加、刪除程序
access.cpl-----輔助功能選項
Accwiz---------輔助功能向導
cmd------------CMD命令提示符
command--------CMD命令提示符
chkdsk.exe-----Chkdsk磁碟檢查
certmgr.msc----證書管理實用程序
calc-----------啟動計算器
charmap--------啟動字元映射表
cintsetp-------倉頡拼音輸入法
cliconfg-------SQLSERVER客戶端網路實用程序
clipbrd--------剪貼板查看器
control--------打開控制面板
conf-----------啟動netmeeting
compmgmt.msc---計算機管理
cleanmgr-------垃圾整理
ciadv.msc------索引服務程序
dcomcnfg-------打開系統組件服務
ddeshare-------打開DDE共享設置
dxdiag---------檢查DirectX信息
drwtsn32-------系統醫生
devmgmt.msc----設備管理器
desk.cpl-------顯示屬性
dfrg.msc-------磁碟碎片整理程序
diskmgmt.msc---磁碟管理實用程序
dvdplay--------DVD播放器
eventvwr-------一個事情查看器
eudcedit-------造字程序
explorer-------打開資源管理器
fsmgmt.msc-----共享文件夾管理器
firewall.cpl---WINDOWS防火牆
gpedit.msc-----組策略
hdwwiz.cpl-----添加硬體
iexpress-------木馬捆綁工具,系統自帶
inetcpl.cpl----INTETNET選項
intl.cpl-------區域和語言選項(輸入法選項)
irprops.cpl----無線鏈接
joy.cpl--------游戲控制器
lusrmgr.msc----本機用戶和組
logoff---------注銷命令
main.cpl-------滑鼠
mem.exe--------顯示內存使用情況
migwiz---------文件轉移向導
mlcfg32.cpl----郵件
mplayer2-------簡易widnowsmediaplayer
mspaint--------畫圖板
msconfig.exe---系統配置實用程序
mstsc----------遠程桌面連接
magnify--------放大鏡實用程序
mmc------------打開控制台
mmsys.cpl------聲音和音頻設備
mobsync--------同步命令
ncpa.cpl-------網路連接
nslookup-------IP地址偵測器
netstartX----開始X服務
netstopX-----停止X服務
netstat-an----命令檢查介面
netsetup.cpl---無線網路安裝向導
notepad--------打開記事本
nslookup-------IP地址偵探器
narrator-------屏幕「講述人」
ntbackup-------系統備份和還原
ntmsmgr.msc----移動存儲管理器
ntmsoprq.msc---移動存儲管理員操作請求
nusrmgr.cpl----用戶賬戶
nwc.cpl--------NetWare客戶服務
osk------------打開屏幕鍵盤
odbcad32-------ODBC數據源管理器
odbccp32.cpl---ODBC數據源管理器
oobe/msoobe/a-檢查XP是否激活
packager-------對象包裝程序
perfmon.msc----計算機性能監測程序
powercfg.cpl---電源選項
progman--------程序管理器
regedit--------注冊表
rsop.msc-------組策略結果集
regedt32-------注冊表編輯器
regsvr32/?----調用、卸載DLL文件運行(詳細請在cmd中輸入regsvr32/?)
sapi.cpl-------語音
services.msc---本地服務設置
syncapp--------創建一個公文包
sysedit--------系統配置編輯器
sigverif-------文件簽名驗證程序
sndrec32-------錄音機
sndvol32-------音量控製程序
shrpubw--------共享文件夾設置工具
secpol.msc-----本地安全策略
sysdm.cpl------系統
syskey---------系統加密(一旦加密就不能解開,保護windowsxp系統的雙重密碼)
services.msc---本地服務設置
sfc.exe--------系統文件檢查器
sfc/scannow---windows文件保護
shutdown-------關機命令(詳細請在cmd中輸入shutdown/?)
taskmgr--------任務管理器
telephon.cpl---電話和數據機選項
telnet---------遠程連接程序
timedate.cpl---日期和時間
tourstart------xp簡介(安裝完成後出現的漫遊xp程序)
tsshutdn-------60秒倒計時關機命令
utilman--------輔助工具管理器
winver---------檢查Windows版本
winmsd---------系統信息
wiaacmgr-------掃描儀和照相機向導
winchat--------XP自帶區域網聊天
wmimgmt.msc----打開windows管理體系結構(WMI)
wordpad--------寫字板
wuaucpl.cpl----自動更新
wupdmgr--------windows更新程序
write----------寫字板
wscript--------windows腳本宿主設置
wscui.cpl------安全中心