釋放方法:

我們提供的服務(wù)有:做網(wǎng)站、成都網(wǎng)站制作、微信公眾號(hào)開(kāi)發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、梅縣ssl等。為數(shù)千家企事業(yè)單位解決了網(wǎng)站和推廣的問(wèn)題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的梅縣網(wǎng)站制作公司
1.打開(kāi)sqlserver管理工具,選中需要操作的數(shù)據(jù)庫(kù)——右鍵——任務(wù)——分離;
勾選刪除鏈接(如果有鏈接連著數(shù)據(jù)庫(kù)會(huì)導(dǎo)致分離失敗)然后點(diǎn)擊確定
2.這時(shí)候你會(huì)發(fā)現(xiàn)你的數(shù)據(jù)庫(kù)不見(jiàn)了,不要著急,一會(huì)兒就弄回來(lái),先去我的電腦-文件管理 把萬(wàn)惡之源 ldf文件刪除了
3.然后回到管理工具 附加上剛才分離的庫(kù)文件 一般是 ndf 或者mdf后綴的
4.選擇后下面會(huì)有兩個(gè)文件 如果你刪了ldf 會(huì)提示日志文件找不到 把那一項(xiàng)刪了 點(diǎn)確定就是 再去刪一遍日志文件 我就不截圖了
附加完畢是不是發(fā)現(xiàn) 我的數(shù)據(jù)庫(kù)又回來(lái)了 整個(gè)過(guò)程都不需要重啟數(shù)據(jù)庫(kù)
如果想要直接釋放也可以,但是前提是你需要知道文件的名字,直接執(zhí)行語(yǔ)句
DBCC SHRINKFILE(‘FileName’, 1 , TRUNCATEONLY )
也可以直接釋放。
具體函數(shù) DBCC SHRINKFILE的參數(shù)定義,大家可以自己在網(wǎng)上查詢。
有以下處理方法:
方法1:修改數(shù)據(jù)文件的擴(kuò)展性
1
alter database datafile '文件路徑' autoextend on next 100m maxsize 4000M;
方法2:給表空間增加新的數(shù)據(jù)文件
1
alter tablespace 表空間名 add datafile '數(shù)據(jù)文件路徑‘ size 1000m autoextend on next 100m maxsize 4000M;
Sql Server 區(qū)管理(GAM,SGAM)
大家都知道Sql Server 中數(shù)據(jù)文件存儲(chǔ)的最小單位是頁(yè)面(Page),但實(shí)際SQLSERVE并不是以頁(yè)面為單位給數(shù)據(jù)分配空間的,Sql Server默認(rèn)的存儲(chǔ)分配單位是盤區(qū)(Extend)。這樣做的主要原因是為了避免頻繁的讀寫IO,提升性能。在表或其它對(duì)象分配存儲(chǔ)空間,不是直接分配一個(gè)8K的頁(yè)面,而是以一個(gè)盤區(qū)(Extend)為存儲(chǔ)分配單位,一個(gè)盤區(qū)為8個(gè)頁(yè)面(Size = 8*8K=64K)。
這樣,對(duì)區(qū)得操作就會(huì)非常頻繁,也要求Sql Server有自己的一套系統(tǒng)管理著數(shù)量眾多的區(qū)。其中最突出的出一個(gè)問(wèn)題,那就是在存儲(chǔ)那些只有少量數(shù)據(jù),不足8K的對(duì)象,如果也是分配給一個(gè)盤區(qū),就會(huì)存在存儲(chǔ)空間上的浪費(fèi),降低了空間分配效率。
為解決上述問(wèn)題,SQLSERVER提供了一種解決方案,定義了兩種盤區(qū)類型,統(tǒng)一盤區(qū)和混合盤區(qū)。
全局分配映射表 (GAM)?:統(tǒng)一盤區(qū),GAM 頁(yè)記錄已分配的區(qū)。每個(gè) GAM 包含 64,000 個(gè)區(qū),相當(dāng)于近 4 GB 的數(shù)據(jù)。GAM 用一個(gè)位來(lái)表示所涵蓋區(qū)間內(nèi)的每個(gè)區(qū)的狀態(tài)。如果位為 1,則區(qū)可用;如果位為 0,則區(qū)已分配。?
共享全局分配映射表 (SGAM)?:由多個(gè)對(duì)象共同擁有該盤區(qū),SGAM 頁(yè)記錄當(dāng)前用作混合區(qū)且至少有一個(gè)未使用的頁(yè)的區(qū)。每個(gè) SGAM 包含 64,000 個(gè)區(qū),相當(dāng)于近 4 GB 的數(shù)據(jù)。SGAM 用一個(gè)位來(lái)表示所涵蓋區(qū)間內(nèi)的每個(gè)區(qū)的狀態(tài)。如果位為 1,則區(qū)正用作混合區(qū)且有可用頁(yè)。如果位為 0,則區(qū)未用作混合區(qū),或者雖然用作混合區(qū)但其所有頁(yè)均在使用中。?
在實(shí)際為對(duì)象分配存儲(chǔ)盤區(qū)時(shí),為了提高空間利用率,默認(rèn)的情況下,如果一個(gè)對(duì)象一開(kāi)始大小小于8個(gè)頁(yè)面,就盡量放在混合盤區(qū)中,如果該對(duì)象大小增加到8個(gè)頁(yè)面后,SQLSERVER會(huì)為這個(gè)對(duì)象重新分配一個(gè)統(tǒng)一盤區(qū)。
據(jù)區(qū)當(dāng)前的使用情況,GAM 和 SGAM 中每個(gè)區(qū)具有以下位模式:
這將簡(jiǎn)化區(qū)管理算法。若要分配統(tǒng)一區(qū),數(shù)據(jù)庫(kù)引擎將在 GAM 中搜索為 1 的位,并將其設(shè)置為 0。若要查找具有可用頁(yè)的混合區(qū),數(shù)據(jù)庫(kù)引擎將在 SGAM 中搜索為 1 的位。若要分配混合區(qū),數(shù)據(jù)庫(kù)引擎將在 GAM 中搜索為 1 的位,將其設(shè)置為 0,然后將 SGAM 中對(duì)應(yīng)的位設(shè)置為 1。若要釋放區(qū),數(shù)據(jù)庫(kù)引擎確保將 GAM 位設(shè)置為 1,將 SGAM 位設(shè)置為 0。實(shí)際上,數(shù)據(jù)庫(kù)引擎內(nèi)部使用的算法比本主題中介紹的更為復(fù)雜,因?yàn)閿?shù)據(jù)庫(kù)引擎在數(shù)據(jù)庫(kù)中均勻分布數(shù)據(jù)。但是,由于無(wú)需管理區(qū)分配信息鏈,因此即使是實(shí)際算法也會(huì)被簡(jiǎn)化。
管理Sql Server可用空間
首先摘錄段 MSDN 的一段官方解釋:
頁(yè)可用空間 (PFS) 頁(yè)記錄每頁(yè)的分配狀態(tài),是否已分配單個(gè)頁(yè)以及每頁(yè)的可用空間量。PFS 對(duì)每頁(yè)都有一個(gè)字節(jié),記錄該頁(yè)是否已分配。如果已分配,則記錄該頁(yè)是為空、已滿 1% 到 50%、已滿 51% 到 80%、已滿 81% 到 95% 還是已滿 96% 到 100%。
將區(qū)分配給對(duì)象后,數(shù)據(jù)庫(kù)引擎將使用 PFS 頁(yè)來(lái)記錄區(qū)中的哪些頁(yè)已分配或哪些頁(yè)可用。數(shù)據(jù)庫(kù)引擎必須分配新頁(yè)時(shí),將使用此信息。保留的頁(yè)中的可用空間量?jī)H用于堆和 Text/Image 頁(yè)。數(shù)據(jù)庫(kù)引擎必須找到一個(gè)具有可用空間的頁(yè)來(lái)保存新插入的行時(shí),使用此信息。索引不要求跟蹤頁(yè)的可用空間,因?yàn)椴迦胄滦械狞c(diǎn)是由索引鍵值設(shè)置的。
在數(shù)據(jù)文件中,PFS 頁(yè)是文件頭頁(yè)之后的第一頁(yè)(頁(yè)碼為 1)。接著是 GAM 頁(yè)(頁(yè)碼為 2),然后是 SGAM 頁(yè)(頁(yè)碼為 3)。第一個(gè) PFS 頁(yè)之后是一個(gè)大小大約為 8,000 頁(yè)的 PFS 頁(yè)。在第 2 頁(yè)的第一個(gè) GAM 頁(yè)之后還有另一個(gè) GAM 頁(yè)(包含 64,000 個(gè)區(qū)),在第 3 頁(yè)的第一個(gè) SGAM 頁(yè)之后也有另一個(gè) SGAM 頁(yè)(包含 64,000 個(gè)區(qū))。下圖顯示了數(shù)據(jù)庫(kù)引擎用來(lái)分配和管理區(qū)的頁(yè)順序。
看過(guò)之后,讓人一頭霧水,真是不知所云,真佩服這些 MSDN 是如何翻譯的,看來(lái)中文 MSDN 太不靠譜,最后沒(méi)辦法,只能google了
其實(shí)上面說(shuō)的意思就是:Sql Server 管理可用空間的方法是,查找每個(gè)每個(gè)頁(yè)面是否使用,以及使用情況情況。這時(shí)就需要一個(gè)頁(yè)面來(lái)記錄各個(gè)頁(yè)面的使用情況了,這就是 PFS 頁(yè)。
PFS(Page Free Space),也叫頁(yè)面自由空間,該頁(yè)面用來(lái)跟蹤一個(gè)文件中每一個(gè)特定的頁(yè)面的利用率情況。一個(gè)文件中第二個(gè)頁(yè)面(頁(yè)碼1)就是PFS頁(yè)面,該頁(yè)面的每個(gè)字節(jié)都記錄了相應(yīng)頁(yè)面的分配情況、頁(yè)面類型、是否IAM頁(yè)、是否包含刪除記錄、以及空間利用率信息;PFS能夠管理和跟蹤8088個(gè)頁(yè)面的使用情況,即接近64M的空間,以后每8088個(gè)頁(yè)面將再出現(xiàn)一次。
讓我們首先了解一下PFS的頁(yè)面管理字節(jié)的構(gòu)造,管理單位為字節(jié),每字節(jié)管理一個(gè)頁(yè)面。
第0個(gè)bit為保留字節(jié),始終為0
第1個(gè)bit表示該頁(yè)面是否已分配,我們知道GAM頁(yè)用來(lái)管理區(qū)是否已分配,但一個(gè)區(qū)包含8個(gè)頁(yè)面,所以用該bit用來(lái)準(zhǔn)確定位該區(qū)的某個(gè)頁(yè)面是否已分配出去了。
第2個(gè)bit表示該頁(yè)面是否混合分區(qū)的一個(gè)頁(yè)面。
第3個(gè)bit表示該頁(yè)面是否是一個(gè)IAM(索引分配映射)頁(yè)面。
第4個(gè)bit表示該頁(yè)面中是否包含幻影或已刪除記錄,這有助于SQL Server定期清理幻影或已刪除記錄。
第5~7個(gè)頁(yè)面表示該頁(yè)面的空間使用率情況。
sqlserver數(shù)據(jù)文件太大,表占用空間太大,怎么釋放空間
ms
sqlserver
自帶收縮功能
可以試下
表占用空間大不一定能收縮多少
畢竟有數(shù)據(jù)在那,如果這表經(jīng)常有刪除動(dòng)作的話
收縮還是有用的,
在程序組中,展開(kāi)“Sqlserver”運(yùn)行“查詢分析器”。輸入用戶名、密碼。
在工具欄的數(shù)據(jù)庫(kù)列表中選擇要操作的數(shù)據(jù)庫(kù)。
輸入:select * from sysfiles 執(zhí)行,可以看到下面的內(nèi)容,記住其中的fileid字段的內(nèi)容,也就是1或2,標(biāo)識(shí)數(shù)據(jù)庫(kù)的數(shù)據(jù)文件或日志文件,下面的命令要用到這里的值。
輸入:dbcc?shrinkdatabase('?庫(kù)名'?),收縮數(shù)據(jù)庫(kù),結(jié)果如下:可以看到壓縮后的數(shù)據(jù)庫(kù)文件的尺寸。
輸入:dbcc?shrinkfile(2,?0)執(zhí)行,然后輸入dbcc?shrinkfile(1,?0)執(zhí)行。兩句命令中的第一個(gè)參數(shù)就是前面看到的FileID的值,表示了一個(gè)是日志文件,一個(gè)是數(shù)據(jù)文件。第二個(gè)參數(shù)0,表示收縮到初始大小。
輸入:dbcc updateusage (0),執(zhí)行更新操作,完工!更新后可以跟之前的數(shù)據(jù)文件比對(duì)一下了,會(huì)有相對(duì)較大的尺寸上的優(yōu)化了。
網(wǎng)頁(yè)名稱:sqlserver開(kāi)空間,sqlserver數(shù)據(jù)庫(kù)可用空間
網(wǎng)頁(yè)地址:http://www.yijiale78.com/article28/dsihhjp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站、網(wǎng)頁(yè)設(shè)計(jì)公司、軟件開(kāi)發(fā)、營(yíng)銷型網(wǎng)站建設(shè)、云服務(wù)器、App設(shè)計(jì)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
移動(dòng)網(wǎng)站建設(shè)知識(shí)