自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

SQL Server數(shù)據(jù)庫(kù)收縮相關(guān)知識(shí)筆記

數(shù)據(jù)庫(kù) MySQL
SQL Server 數(shù)據(jù)庫(kù)采取預(yù)先分配空間的方法來(lái)建立數(shù)據(jù)庫(kù)的數(shù)據(jù)文件或者日志文件,比如數(shù)據(jù)文件的空間分配了300MB,而實(shí)際上只占用了20MB空間,這樣就會(huì)造成磁盤存儲(chǔ)空間的浪費(fèi)。

 [[389369]]

 

1、為什么要進(jìn)行數(shù)據(jù)庫(kù)收縮?

SQL Server 數(shù)據(jù)庫(kù)采取預(yù)先分配空間的方法來(lái)建立數(shù)據(jù)庫(kù)的數(shù)據(jù)文件或者日志文件,比如數(shù)據(jù)文件的空間分配了300MB,而實(shí)際上只占用了20MB空間,這樣就會(huì)造成磁盤存儲(chǔ)空間的浪費(fèi)??梢酝ㄟ^(guò)數(shù)據(jù)庫(kù)收縮技術(shù)對(duì)數(shù)據(jù)庫(kù)中的每個(gè)文件進(jìn)行收縮,刪除已經(jīng)分配但沒(méi)有使用的頁(yè)。從而節(jié)省服務(wù)器的存儲(chǔ)的成本。

2、數(shù)據(jù)庫(kù)收縮的原理

官方解釋:收縮數(shù)據(jù)文件通過(guò)將數(shù)據(jù)頁(yè)從文件末尾移動(dòng)到更靠近文件開(kāi)頭的未占用的空間來(lái)恢復(fù)空間。在文件末尾創(chuàng)建足夠的可用空間后,可以取消對(duì)文件末尾的數(shù)據(jù)頁(yè)的分配并將它們返回給文件系統(tǒng)。

3、數(shù)據(jù)庫(kù)收縮的限制和局限

收縮后的數(shù)據(jù)庫(kù)不能小于數(shù)據(jù)庫(kù)最初創(chuàng)建時(shí)指定的大小。 或是上一次使用文件大小更改操作(如 DBCC SHRINKFILE)設(shè)置的顯式大小。

比如:如果數(shù)據(jù)庫(kù)最初創(chuàng)建時(shí)的大小為 10 MB,后來(lái)增長(zhǎng)到 100 MB,則該數(shù)據(jù)庫(kù)最小只能收縮到 10 MB,即使已經(jīng)刪除數(shù)據(jù)庫(kù)的所有數(shù)據(jù)也是如此。

不能在備份數(shù)據(jù)庫(kù)時(shí)收縮數(shù)據(jù)庫(kù)。 反之,也不能在數(shù)據(jù)庫(kù)執(zhí)行收縮操作時(shí)備份數(shù)據(jù)庫(kù)。

4、數(shù)據(jù)庫(kù)收縮的方式

4.1 收縮數(shù)據(jù)庫(kù) DBCC SHRINKDATABASE

介紹:收縮指定數(shù)據(jù)庫(kù)中的數(shù)據(jù)文件大小。

語(yǔ)法格式:

  1. DBCC SHRINKDATABASE  
  2.     ( database_name [ , target_percent ]  
  3.         [ , { NOTRUNCATE | TRUNCATEONLY } ]   
  4. )  

 

參數(shù)說(shuō)明:

  • database_name:是要收縮的數(shù)據(jù)庫(kù)名稱
  • target_percent:是數(shù)據(jù)庫(kù)收縮后的數(shù)據(jù)庫(kù)文件中所要的剩余可用空間百分比。
  • NOTRUNCATE:導(dǎo)致在數(shù)據(jù)庫(kù)文件中保留所釋放的文件空間。如果未指定,將所釋放的文件空間釋放給操作系統(tǒng)。
  • TRUNCATEONLY:導(dǎo)致將數(shù)據(jù)文件中的任何未使用的空間釋放給操作系統(tǒng),并將文件收縮到上一次所分配的大小,從而減少文件大小,而不移動(dòng)任何數(shù)據(jù)。不試圖重新定位未分配頁(yè)的行。使用 TRUNCATEONLY 時(shí),忽略 target_percentis。

4.2 收縮數(shù)據(jù)庫(kù)文件 DBCC SHRINKFILE

介紹:收縮當(dāng)前數(shù)據(jù)庫(kù)的指定數(shù)據(jù)或日志文件的大小,或通過(guò)將數(shù)據(jù)從指定的文件移動(dòng)到相同文件組中的其他文件來(lái)清空文件,以允許從數(shù)據(jù)庫(kù)中刪除該文件。文件大小可以收縮到比創(chuàng)建該文件時(shí)所指定的大小更小。這樣會(huì)將最小文件大小重置為新值。

語(yǔ)法格式:

  1. DBCC SHRINKFILE   
  2. (  
  3.     { file_name | file_id }   
  4.     { [ , EMPTYFILE ]   
  5.     | [ [ , target_size ] [ , { NOTRUNCATE | TRUNCATEONLY } ] ]  
  6.     }  
  7. )  
  8. WITH NO_INFOMSGS ]  

 

參數(shù)說(shuō)明:

  • file_name:要收縮的文件的邏輯名稱。
  • file_id:要收縮的文件的標(biāo)識(shí) (ID) 號(hào)。若要獲得文件 ID,請(qǐng)使用 FILE_IDEX 系統(tǒng)函數(shù),或查詢當(dāng)前數(shù)據(jù)庫(kù)中的 sys.database_files 目錄視圖
  • target_size:用兆字節(jié)表示的文件大小(用整數(shù)表示)。如果未指定,則 DBCC SHRINKFILE 將文件大小減少到默認(rèn)文件大小。默認(rèn)大小為創(chuàng)建文件時(shí)指定的大小。
  • 注意:可以使用 DBCC SHRINKFILE target_size 減小空文件的默認(rèn)大小。

例如,如果創(chuàng)建一個(gè)10MB 的文件,然后在文件仍然為空的時(shí)候?qū)⑽募湛s為2 MB,默認(rèn)文件大小將設(shè)置為2 MB。這只適用于永遠(yuǎn)不會(huì)包含數(shù)據(jù)的空文件。

  • EMPTYFILE:將指定文件中的所有數(shù)據(jù)遷移到同一文件組中的其他文件。由于數(shù)據(jù)庫(kù)引擎不再允許將數(shù)據(jù)放在空文件內(nèi),因此可以使用 ALTER DATABASE 語(yǔ)句來(lái)刪除該文件。
  • NOTRUNCATE:在指定或不指定 target_percent 的情況下,將已分配的頁(yè)從數(shù)據(jù)文件的末尾移動(dòng)到該文件前面未分配頁(yè)。文件末尾的可用空間不會(huì)返回給操作系統(tǒng),文件的物理大小也不會(huì)更改。因此,指定 NOTRUNCATE 時(shí),文件看起來(lái)未收縮。
  • NOTRUNCATE 只適用于數(shù)據(jù)文件。日志文件不受影響。
  • TRUNCATEONLY:將文件末尾的所有可用空間釋放給操作系統(tǒng),但不在文件內(nèi)部執(zhí)行任何頁(yè)移動(dòng)。數(shù)據(jù)文件只收縮到最后分配的區(qū)。如果隨 TRUNCATEONLY 指定了 target_size,則會(huì)忽略該參數(shù)。TRUNCATEONLY 只適用于數(shù)據(jù)文件。
  • WITH NO_INFOMSGS:取消顯示所有信息性消息。

5、示例

  1. -- 將TestDB數(shù)據(jù)庫(kù)中的TestDB文件的大小收縮到20MB。  
  2. USE TestDB ;  
  3. GO  
  4. DBCC SHRINKFILE (TestDB, 20) ;  
  5. -- 將減小 UserDB 用戶數(shù)據(jù)庫(kù)中數(shù)據(jù)文件和日志文件的大小,以便在數(shù)據(jù)庫(kù)中留出 10% 的可用空間  
  6. DBCC SHRINKDATABASE (TestDB, 30);   
  7. -- 清理數(shù)據(jù)庫(kù)日志文件為2M  
  8. USE master  
  9. ALTER DATABASE TestDB SET RECOVERY SIMPLE WITH NO_WAIT  
  10. ALTER DATABASE TestDB SET RECOVERY SIMPLE --簡(jiǎn)單模式  
  11. USE TestDB  
  12. DBCC SHRINKFILE (N'TestDB_log' , 2, TRUNCATEONLY)   
  13.   --設(shè)置壓縮后的日志大小為2M,可以自行指定  
  14. USE master  
  15. ALTER DATABASE TestDB SET RECOVERY FULL WITH NO_WAIT  
  16. ALTER DATABASE TestDB SET RECOVERY FULL --還原為完全模式  

 

責(zé)任編輯:華軒 來(lái)源: 今日頭條
相關(guān)推薦

2021-03-19 07:12:23

SQL Server數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)收縮

2021-03-04 22:02:18

SQL Serve數(shù)據(jù)庫(kù)架構(gòu)

2011-08-04 15:20:52

SQL Server數(shù)據(jù)庫(kù)鏡像

2011-08-25 16:31:36

SQL Servertimestamp

2011-08-25 15:19:25

SQL Server 排序規(guī)則

2021-04-02 07:46:52

SQL Server數(shù)據(jù)庫(kù)知識(shí)筆記

2010-07-08 11:09:54

SQL Server數(shù)

2010-07-23 15:03:02

SQL Server數(shù)

2011-08-11 14:23:57

SQL Server 索引分區(qū)

2021-03-12 10:12:40

數(shù)據(jù)庫(kù)SQLServer磁盤

2010-07-15 17:28:50

SQL Server

2021-07-01 06:19:46

Redis數(shù)據(jù)庫(kù)API

2021-02-06 23:03:58

SQLServer數(shù)據(jù)庫(kù)變量

2009-04-10 15:37:48

SQL Server2鏡像實(shí)施

2010-07-08 11:05:14

SQL Server數(shù)

2021-05-17 06:57:34

SQLServer數(shù)據(jù)庫(kù)

2010-07-07 14:24:42

SQL Server

2011-07-29 13:17:58

SQL Server Analysis Se

2011-08-18 17:05:16

Oracle數(shù)據(jù)庫(kù)的服

2011-04-01 17:05:44

SQL Server數(shù)日志
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)