TruncateTable是怎么刪除表內(nèi)容避免產(chǎn)生過多日志

這篇文章將為大家詳細(xì)講解有關(guān)Truncate Table是怎么刪除表內(nèi)容避免產(chǎn)生過多日志,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guān)知識(shí)有一定的了解。

茅箭網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)!從網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、響應(yīng)式網(wǎng)站設(shè)計(jì)等網(wǎng)站項(xiàng)目制作,到程序開發(fā),運(yùn)營(yíng)維護(hù)。創(chuàng)新互聯(lián)于2013年創(chuàng)立到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)。

數(shù)據(jù)庫每天在進(jìn)行頻繁操作和記錄,LOG文件會(huì)特別大且增長(zhǎng)的比較快,有時(shí)候一天就5000M,每天刪除一次也很不方便。有沒有方法能避免生成日志或不產(chǎn)生日志呢?不產(chǎn)生日志的方法目前我還沒找到,但我們?cè)谄匠5牟僮髦杏靡恍┟羁梢员苊猱a(chǎn)生過多的日志。

比如:  
SELECT  *  into test_2  from book  
共50000條記錄,產(chǎn)生十幾M log,

如果是delete from test_2  
產(chǎn)生80多M log ,這顯然無形中增大了日志。  
 
我們?cè)谑褂胐elete時(shí)可以換成truncate:  
truncate table test_2  
這樣就可以明顯減少日志的產(chǎn)生。

下面介紹一下truncate這個(gè)命令:

Truncate是SQL中的一個(gè)刪除數(shù)據(jù)表內(nèi)容的語句,用法是:

語法   TRUNCATE TABLE   name

參數(shù)

name 是要截?cái)嗟谋淼拿Q或要?jiǎng)h除其全部行的表的名稱。

下面是對(duì)Truncate語句在MSSQLServer2000、2005中用法和原理的說明:

Truncate table 表名 速度快,而且效率高,因?yàn)?

TRUNCATE TABLE 在功能上與不帶 WHERE 子句的 DELETE 語句相同:二者均刪除表中的全部行。但 TRUNCATE TABLE 比 DELETE 速度快,且使用的系統(tǒng)和事務(wù)日志資源少。

DELETE 語句每次刪除一行,并在事務(wù)日志中為所刪除的每行記錄一項(xiàng)。TRUNCATE TABLE 通過釋放存儲(chǔ)表數(shù)據(jù)所用的數(shù)據(jù)頁來刪除數(shù)據(jù),并且只在事務(wù)日志中記錄頁的釋放。

TRUNCATE TABLE 刪除表中的所有行,但表結(jié)構(gòu)及其列、約束、索引等保持不變。新行標(biāo)識(shí)所用的計(jì)數(shù)值重置為該列的種子。如果想保留標(biāo)識(shí)計(jì)數(shù)值,請(qǐng)改用 DELETE。如果要?jiǎng)h除表定義及其數(shù)據(jù),請(qǐng)使用 DROP TABLE 語句。

對(duì)于由 FOREIGN KEY 約束引用的表,不能使用 TRUNCATE TABLE,而應(yīng)使用不帶 WHERE 子句的 DELETE 語句。由于 TRUNCATE TABLE 不記錄在日志中,所以它不能激活觸發(fā)器。

TRUNCATE TABLE 不能用于參與了索引視圖的表。

對(duì)用TRUNCATE TABLE刪除數(shù)據(jù)的表上增加數(shù)據(jù)時(shí),要使用UPDATE STATISTICS來維護(hù)索引信息。

如果有ROLLBACK語句,DELETE操作將被撤銷,但TRUNCATE不會(huì)撤銷。

示例

下例刪除 authors 表中的所有數(shù)據(jù)。

TRUNCATE TABLE authors

權(quán)限

TRUNCATE TABLE 權(quán)限默認(rèn)授予表所有者、sysadmin 固定服務(wù)器角色成員、db_owner 和 db_ddladmin 固定數(shù)據(jù)庫角色成員且不可轉(zhuǎn)讓。

補(bǔ)充參數(shù):

TRUNCATE TABLE name [DROP/REUSE STORAGE]

DROP STORAGE:顯式指明釋放數(shù)據(jù)表和索引的空間

REUSE STORAGE:顯式指明不釋放數(shù)據(jù)表和索引的空間 

關(guān)于Truncate Table是怎么刪除表內(nèi)容避免產(chǎn)生過多日志就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。

網(wǎng)頁名稱:TruncateTable是怎么刪除表內(nèi)容避免產(chǎn)生過多日志
分享鏈接:http://muchs.cn/article30/ihcppo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設(shè)、自適應(yīng)網(wǎng)站、標(biāo)簽優(yōu)化、定制網(wǎng)站、軟件開發(fā)、動(dòng)態(tài)網(wǎng)站

廣告

聲明:本網(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í)需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)頁設(shè)計(jì)公司