mssql清空資料庫數據
清空資料庫主要有兩種方式
(1)DELETE語句執行刪除的過程是每次從表中刪除一行,並且同時將該行的刪除操作作為事務記錄在日誌中保存以便進行進行回滾操作。
TRUNCATETABLE則一次性地從表中刪除所有的數據並不把單獨的刪除操作記錄記入日誌保存,刪除行是不能恢復的。並且在刪除的過程中不會激活與表有關的刪除觸發器。執行速度快。
(2)表和索引所佔空間。
當表被TRUNCATE後,這個表和索引所佔用的空間會恢復到初始大小,
DELETE操作不會減少表或索引所佔用的空間。
drop語句將表所佔用的空間全釋放掉。
(3)一般而言,drop>truncate>delete
Ⅱ 怎樣清理或者刪除MSSQL資料庫日誌文件
資料庫的性能是DBA都需要重點關注的,日誌文件的增多嚴重影響資料庫的性能,本文將為您介紹SQLServer刪除日誌文件的方法,供您參考,希望對您有所幫助。
資料庫在使用過程中會使日誌文件不斷增加,使得資料庫的性能下降,並且佔用大量的磁碟空間。SQL Server資料庫都有log文件,log文件記錄用戶對資料庫修改的操作。可以通過直接刪除log文件和清空日誌在清除資料庫日誌。
1、刪除LOG
1.1 分離資料庫
分離資料庫之前一定要做好資料庫的全備份,選擇資料庫——右鍵——任務——分離。
附加資料庫之後將生成新的日誌文件log,新的日誌文件的大小事504K。
1.4 也可以通過命令才完成以上的操作
use master;
exec sp_detach_db @dbname='資料庫名';
exec sp_attach_single_file_db @dbname='資料庫名',@physname='D:Program FilesMicrosoft SQL ServerMSSQL10.SQL2008MSSQLDATATestDB.mdf'
Sp_detach_db:分離資料庫;
sp_attach_single_file_db:附加單個資料庫文件;在上述代碼中只附加了數據文件,而未附加日誌文件,言下之意就是刪除了日誌文件。
該命令在SQL Server 2005和2000支持,SQL Server 2008不支持該命令。
2. 清空日誌
DUMP TRANSACTION 資料庫名 WITH NO_LOG
3. 收縮資料庫文件
DBCC SHRINKFILE ('TestDB_log',1)
SQL Server中「數據收縮」詳解
4. 截斷事務日誌
BACKUP LOG TestDB WITH NO_LOG
該命令在SQL Server 2008也是不支持,在SQL Server 2005和2000可以使用。