SQL2008删除大量数据
常见问题:工作中数据库难免产生大量的日志,而用户可能关心的只有最近一个月左右的,这些日志占用了服务器磁盘,还可能影响了服务运行效率。甚至在数据库迁移时更因为体积而带来巨大麻烦。
那么,在需要时,删除不再关注的日志,就很必要。
解决思路:肯定第一反应是想delete,可实际操作的人都知道,这个效率。。
我第二反应是重新建表,drop和create,但所有数据都会删掉。
然后就想要不就把最近的数据插入一个表,再执行drop和create,再插入回新表。。似乎可行。。
接着网上去搜索。。。然后找到博客园 舍长 的帖子: http://www.cnblogs.com/panchunting/archive/2013/04/27/SQL_Tech_001.html.差不多按他最后的方法解决的。
解决方法:
我最后的操作步骤是这样的:
--开启日志无限制--手动,还没找对应语句 --第一条语句会把所有要保留的数据先存放至表#keep中(表#keep无需手工创建,由SELECT INTO生效)
SELECT * INTO #keep FROM EquipmentsLoginLog WHERE WithDrawTime>'2015-09-01'
--第二条语句用于清除整个表中数据,产生的日志文件基本可以忽略;
TRUNCATE TABLE EquipmentsLoginLog
--第三条语句用于还原保留数据。--不查询标识符的id字段
INSERT into EquipmentsLoginLog ([A],B)
SELECT A,B FROM #keep --清理产生的日志文件
DBCC SHRINKDATABASE(TransmitPlatformDB)
--再手动限制日志大小
大数据之删除
小结:
- TRUNCATE太快了,清除10W数据一点没压力,批量删除次之,最后的DELTE太慢了;
- TRUNCATE快是因为它属于DDL语句,只会产生极少的日志,普通的DELETE不仅会产生日志,而且会锁记录。
SQL2008删除大量数据的更多相关文章
- sql查询删除重复数据
数据库UserInfo 删除重复数据 即删除重复的用户名手机号 同一个用户名手机号只保留一个用户 01.根据多个字段查询重复数据 with data1 as( select MobilePhone,N ...
- ajax删除DB数据
1.前台js $().ready(function () { $('[name="checkAll"]').click(function () { if ("checke ...
- MYSQL删除重复数据
delete from co_jobinformation cwhere c.name in (select cc.name from co_jobinformation cc group by ...
- 你真的会玩SQL吗?删除重复数据且只保留一条
在网上看过一些解决方法 我在此给出的方法适用于无唯一ID的情形 表:TB_MACVideoAndPicture 字段只有2个:mac,content mac作为ID,正常情况下mac数据是唯一的,由于 ...
- sql语句中----删除表数据drop、truncate和delete的用法
sql语句中----删除表数据drop.truncate和delete的用法 --drop drop table tb --tb表示数据表的名字,下同 删除内容和定义,释放空间.简单来说就是把整 ...
- 取两个DataTable的交集,删除重复数据
/// <summary> /// 取两个DataTable的交集,删除重复数据 /// </summary> /// <param name="sourceD ...
- phalcon: 当删除循环删除一组数据,需要判断影响的行affectedRows
phalcon:有一个表,按日期查找半年以为的数据,由于数据量特别大,不能一次:delete删除数据,否则会造成数据表卡顿,数据库锁死. 那么只能循环的删除数据,每次删除100条左右,知道删除为止., ...
- MSSQL如何在没有主键的表中删除重复数据
为了对重复数据进行实验,下面建一个设计不太好(没有主键)表并插入了一些重复数据: create database testdb use testdb ; go create table DupsNoP ...
- sql 删除重复数据且保留其中一条 用sql 关键字:with ROW_NUMBER
--1.建立表:Coursecreate table Course( ID int identity(1,1),--ID Student varchar(20) ,--学生 Sub varchar(2 ...
随机推荐
- RenderMonkey基本使用方法【转】
RenderMonkey基本使用方法 楔子: 差不多从年中开始由于工作需要,开始研究Direct3D,这是继大二开始自学DX开始,睽违了6年后再重新学习DX.虽然时间很久了,但是幸亏还是有点基础,所以 ...
- C#中抽象方法与虚方法的区别
一.抽象方法:只在抽象类中定义,方法修饰符不能使用private,virtual,static. 抽象方法如下示: public abstract class People //声明一个抽象类 { ...
- unity GPU bound or CPU bound
unity判断GPU CPUbound android 用unity profiler 里面的cpu时间 xcode有直接的显示
- git删除历史
Git如何永久删除文件(包括历史记录) 有些时候不小心上传了一些敏感文件(例如密码), 或者不想上传的文件(没及时或忘了加到.gitignore里的), 而且上传的文件又特别大的时候, 这将导致别 ...
- IOS AppUI规格指南
- python——PEP8 Python 编码规范整理
决定开始Python之路了,利用业余时间,争取更深入学习Python.编程语言不是艺术,而是工作或者说是工具,所以整理并遵循一套编码规范是十分必要的.所以今天下午我根据PEP 8整理了一份,以后都照此 ...
- NullPointerException异常的原因及java异常??
所谓空指针异常,是因为用空(null)去调用属性或方法. null表示没有这个对象,既然没有这个对象,那么去调用他的属性和方法,就会报异常. <--主要有以下几种原因: 1.使用了未 ...
- ubuntu ss 搭建(tizi_服务端
#更新源 apt-get update #安装python和pip apt-get install python-gevent python pip #安装ss pip install shadows ...
- Visual studio C++ MFC之树形控件Tree Control
背景 本篇旨在MSDN帮助文档下总结树形控件Tree Control的使用,并列出碰到的具体问题. 正文 树形控件Tree Control的类则是CTreeCtrl,具体成员对象详见链接,以下则描述一 ...
- linux 自启动
使用chkconfig命令可以查看在不同启动级别下课自动启动的服务(或是程序),命令格式如下:chkconfig --list可能输出如下:openvpn 0:关闭 1:开启 ...... 6:关闭 ...