数据库每天在进行频繁操作和记录,LOG文件会特别大且增长的比较快,有时候一天就5000M,每天删除一次也很不方便。有没有方法能避免生成日志或不产生日志呢?不产生日志的方法目前我还没找到,但我们在平常的操作中用一些命令可以避免产生过多的日志。
比如:
SELECT  *  into test_2  from book
共50000条记录,产生十几M log,
如果是delete from test_2
产生80多M log ,这显然无形中增大了日志。

我们在使用delete时可以换成truncate:
truncate table test_2
这样就可以明显减少日志的产生。

下面介绍一下truncate这个命令:
Truncate是SQL中的一个删除数据表内容的语句,用法是:
语法   TRUNCATE TABLE   name
参数
name 是要截断的表的名称或要删除其全部行的表的名称。
下面是对Truncate语句在MSSQLServer2000、2005中用法和原理的说明:
Truncate table 表名 速度快,而且效率高,因为:
TRUNCATE TABLE 在功能上与不带 WHERE 子句的 DELETE 语句相同:二者均删除表中的全部行。但 TRUNCATE TABLE 比 DELETE 速度快,且使用的系统和事务日志资源少。
DELETE 语句每次删除一行,并在事务日志中为所删除的每行记录一项。TRUNCATE TABLE 通过释放存储表数据所用的数据页来删除数据,并且只在事务日志中记录页的释放。
TRUNCATE TABLE 删除表中的所有行,但表结构及其列、约束、索引等保持不变。新行标识所用的计数值重置为该列的种子。如果想保留标识计数值,请改用 DELETE。如果要删除表定义及其数据,请使用 DROP TABLE 语句。
对于由 FOREIGN KEY 约束引用的表,不能使用 TRUNCATE TABLE,而应使用不带 WHERE 子句的 DELETE 语句。由于 TRUNCATE TABLE 不记录在日志中,所以它不能激活触发器。
TRUNCATE TABLE 不能用于参与了索引视图的表。
对用TRUNCATE TABLE删除数据的表上增加数据时,要使用UPDATE STATISTICS来维护索引信息。
如果有ROLLBACK语句,DELETE操作将被撤销,但TRUNCATE不会撤销。
示例
下例删除 authors 表中的所有数据。
TRUNCATE TABLE authors
权限
TRUNCATE TABLE 权限默认授予表所有者、sysadmin 固定服务器角色成员、db_owner 和 db_ddladmin 固定数据库角色成员且不可转让。
补充参数:
TRUNCATE TABLE name [DROP/REUSE STORAGE]
DROP STORAGE:显式指明释放数据表和索引的空间
REUSE STORAGE:显式指明不释放数据表和索引的空间 

Truncate Table 删除表内容避免产生过多日志相关推荐

  1. Mysql清空表(truncate)与删除表中数据(delete)的区别

    2019独角兽企业重金招聘Python工程师标准>>> 为某基于wordpress搭建的博客长久未除草,某天升级的时候发现已经被插入了几万条垃圾留言,如果一条条删除那可真是累人的活. ...

  2. MySQL 清空表(truncate)与删除表中数据(delete) 详解

    删除表信息的方式有两种 : truncate table table_name; delete * from table_name; 注 : truncate操作中的table可以省略,delete操 ...

  3. mysql 批量 truncate table 指定表数据

    执行下面sql语句,将结果集复制出来,然后批量执行 SELECT CONCAT("truncate table ",a.table_name,";") FROM ...

  4. Oracle删除表数据TRUNCATE TABLE 命令

    本文导读:删除表中的数据的方法有delete,truncate, 其中TRUNCATE TABLE用于删除表中的所有行,而不记录单个行删除操作.TRUNCATE TABLE 与没有 WHERE 子句的 ...

  5. mysql删除表中内容_SQL中删除表中的内容

    展开全部 (1)如果想清空表里面的内容可以使32313133353236313431303231363533e78988e69d8331333366306438用:delete from KF: (2 ...

  6. SQL语句中删除表数据drop、truncate和delete的用法

    一.SQL的语法 1.drop table 表名称 // drop table dbo.Sys_Test2.truncate table 表名称 // truncate table dbo.Sys_T ...

  7. sql语句-删除表数据drop、truncate和delete的用法

    一.SQL中的语法 1.drop table 表名称 eg: drop table course 2.truncate table 表名称 eg: truncate table course 3.de ...

  8. SQL语句中----删除表数据drop、truncate和delete的用法

    一.SQL中的语法 1.drop table 表名称                         eg: drop table  dbo.Sys_Test    2.truncate table  ...

  9. 删除数据(DELETE、TRUNCATE TABLE)

    1. DELETE  语句的作用是在指定表或指定视图的基表中删除记录行.用户可以删除位于用户自己模式中的表的记录行,也可以删除在该表上具有 DELETE 权限的表的记录行,并且在删除指定表的记录行时, ...

最新文章

  1. no output in console for unittests in pycharm 2017
  2. 推荐一篇关于java集合的博文,写的很nice
  3. ElasticSearch原理
  4. DCMTK:Receiving Images from PACS using DCMSCU
  5. 使用submit异步提交,阻止表单默认提交
  6. SSD性能怎么测?看这一篇就够了!
  7. linux音频设备id,ubuntu下提取DSDT SSDT和声卡ID _ 黑苹果乐园
  8. python音频处理(持续更新)
  9. 上云避坑指南100篇|ERP上云一时爽,遇坑泪两行
  10. shader实例:实现类似宝可梦 Pokemon 的战斗转场
  11. 微信支付证书如何部署在linux,微信支付平台证书更新指引
  12. selenium切换到新打开的网页
  13. 计算机qwerty键盘,QWERTY键盘输入
  14. Java 报错Attempted read from closed stream
  15. Kali linux安装步骤,史上最详细的步骤,傻瓜式教学
  16. 越狱Season 1-Episode 7: Riots, Drills and the Devil: Part 2
  17. PL/SQL Developer配置使用说明
  18. 【视觉高级篇】23 # 如何模拟光照让3D场景更逼真?(上)
  19. 女生最容易就业的5个专业,有没有你学的?
  20. 四、 Spark Webchat的安装

热门文章

  1. 用DataAdapter对象填充DataSet数据集。
  2. Customer Exit
  3. 华为手机如何升级鸿蒙系统_华为鸿蒙2.0带来好消息 2021年部分华为手机能升级到鸿蒙2.0...
  4. C++ 编译期封装-Pimpl技术
  5. 私藏的开发过程中的那些基类
  6. 企业级 SpringBoot 教程 (十四)在springboot中用redis实现消息队列
  7. DES加密/解密类。
  8. CentOS首次安装,网络环境配置
  9. 微软vs2015先行,Visual Studio 2015正式版离线iso及在线下载(附key)附带百度云盘地址...
  10. 远程控制篇:抓取远程屏幕图像