曲苑雜壇 收縮資料庫檔案

2021-09-06 13:45:26 字數 641 閱讀 8453

很多人在刪除大量資料後收縮資料庫,卻發現沒法收縮到預期效果。

由於使用dbcc shrinkfile來收縮資料檔案時,是針對資料區來收縮,因此可以先使用dbcc showfilestats來檢視檔案中未使用的分割槽數(totalextents-usedextents),如果刪除大量資料但未使用分割槽數比較小,可以先重建索引再收縮資料檔案。

測試資料:

use

db006

gocreate

table

tb1(

id intidentity(1,1

), c1

char(8000))

goinsert

into

tb1(c1)

select'1

'from

sys.all_columns

godelete

from

tb1where id%

8<>1go

dbcc

showfilestats

--totalextents:672

--usedextents:659

--這時候對資料檔案收縮起不到預期目的(刪除85%的資料但是沒有獲得對應的空閒空間),要先重建索引在收縮

go

資料庫檔案

if exists select from mater.sysdatabases where name db 09zy drop database db 09zy go create database zy on primary name zy data filename e 09.9zy1 zy ...

資料庫 檔案

定長記錄 檔案頭維護空閒列表 變長記錄 塊頭 空閒空間 記錄 插入 在空閒空間末尾分配空間 刪除 將條目之前的全部向後移動 大物件通常儲存到特殊檔案,通過指標儲存在記錄中 引數檔案 日誌檔案 套接字檔案 通過套接字檔案,unix系統下本地連線mysql可以採用unix域套接字方式 pid檔案 mys...

資料庫檔案移動

oracle資料庫由資料檔案,控制檔案和聯機日誌檔案三種檔案組成。由於磁碟空間的變化,或者基於資料庫磁碟i o效能的調整等,我們可能會考慮移動資料庫檔案。下面以unix平台為例,分別討論三種資料庫檔案的移動方法。一.移動資料檔案 可以用alter database,alter tablespace兩...