資料庫空間釋放空間
⑴ 如何釋放SQL表中己分配但又未使用的空間
SQL Server 2000 自動收縮有大量可用空間的資料庫。該進程僅適用於那些 autoshrink 選項設置為 true 的資料庫。伺服器定期檢查每個資料庫中的空間使用情況。如果發現資料庫中有大量閑置空間,而且它的 autoshrink 選項設置為 true,SQL Server 就縮小該資料庫中的文件大小。也可以使用 SQL Server 企業管理器或 DBCC SHRINKDATABASE 和 DBCC SHRINKFILE 語句,手工收縮資料庫中的文件。文件始終從末端開始收縮。例如,如果有個 5 GB 的文件並將 DBCC SHRINKDB 語句中的 target_size 指定為 4GB,則 SQL Server 將從文件的最後一個 1 GB 開始釋放盡可能多的空間。如果文件中被釋放的部分包含使用過的頁,則 SQL Server 首先將這些頁重新定位到保留的部分。只能將資料庫收縮到沒有剩餘的可用空間為止。例如,某個 5GB 的資料庫有 4 GB 的數據並且 DBCC SHRINKDATABASE 語句的 target_size 被指定為 3 GB,則只釋放 1 GB。如果 DBCC SHRINKDATABASE 或 DBCC SHRINKFILE 語句無法收回日誌文件中的所有空間,該語句將發出信息,指示必須執行什麼操作以釋放更多符合條件的空間。收縮事務日誌在下列情況下,日誌文件的物理大小將減少: 執行 DBCC SHRINKDATABASE 語句時。執行引用日誌文件的 DBCC SHRINKFILE 語句時。自動收縮操作發生時。 日誌收縮操作依賴於最初的日誌截斷操作。日誌截斷操作不減小物理日誌文件的大小,但減小邏輯日誌的大小,並將沒有容納邏輯日誌任何部分的虛擬日誌標記為不活動。日誌收縮操作會刪除足夠多的不活動虛擬日誌,將日誌文件減小到要求的大小。減小大小的單位是一個虛擬日誌文件。例如,如果有個 600 MB 的日誌文件被分成了 6 個 100 MB 的虛擬日誌,則該日誌文件的大小隻能按 100 MB 遞減。比如,文件可以減小到 500 MB 或 400 MB,但不能減小到 433 MB 或 525 MB。不能釋放容納邏輯日誌部分的虛擬日誌。如果某個日誌文件中的所有虛擬日誌都容納了邏輯日誌部分,則不能收縮該文件,直到截斷操作在物理日誌的末端將一個或更多的虛擬日誌標記為不活動。當收縮任何文件時,必須從文件的末端開始釋放空間。當收縮事務日誌文件時,從文件的末端開始釋放足夠的虛擬日誌以將日誌減小到用戶所要求的大小。用戶指定的 target_size 四捨五入為下一個最大的虛擬日誌邊界大小。例如,如果用戶為包含 6 個 100 MB 虛擬日誌文件的 600 MB 文件指定 325 MB 的 target_size,則刪除最後兩個虛擬日誌文件,因此新的文件大小為 400 MB。在 SQL Server 2000 中,DBCC SHRINKDATABASE 或 DBCC SHRINKFILE 操作試圖立即將物理日誌文件收縮到所要求的大小(以四捨五入的值為准): 如果虛擬日誌中的邏輯日誌部分沒有超出 target_size 標記,則釋放 target_size 標記之後的虛擬日誌,並且成功完成 DBCC 語句,不出現任何信息。如果虛擬日誌中的邏輯日誌部分超出 target_size 標記,則 SQL Server 2000 釋放盡可能多的空間並發出一條信息。該信息告訴您需要執行什麼操作以獲得文件末端超出虛擬日誌的邏輯日誌部分。執行完該操作後,可以重新發出 DBCC 語句以釋放剩餘的空間。
⑵ oracle 在刪除表,表空間,用戶時 如何釋放磁碟空間
oracle刪除表,釋放表空間,需要通過truncate table xx,然後drop table xxx 來釋放,或者直接通過 drop table xxx purge;
示例如下:
1、創建測試表,
create table test_space(id number, name varchar2(20));
⑶ SqlServer數據文件太大,表佔用空間太大,怎麼釋放空間
時間充足就斷線停止寫入資料庫,做個全備份。
刪除資料庫,刪除資料庫文件。
整理下磁碟。
重建同名資料庫,恢復資料庫。
這時候的空間是最緊湊的,可以試試建聚集索引。
最根本的方法是加硬碟,可能你的數據操作規律就是會產生很多碎片的,必須要有雙倍的空間才行。
⑷ 在oracle資料庫中刪除表後,怎樣把佔用的磁碟空間釋放出來
你是用drop命令刪除的嗎?drop命令是不回收表空間飢虧的,只是吧表對應的記錄從數弊肢答據字典中抹掉,也不會回收高水位。
truncate才會直租慧接回收表空間