如何在SQLSERVER中快速有条件删除海量数据
1.SQLSERVER数据库改bit类型为 not Boolean(即,true改成false;false改成true)
例:update 表 set bit字段=bit字段-1
最近有个朋友问我,他说他在SQLSERVER删除几百万到几千万数据是显的很慢,帮他分析了一下,提了一些以下意见,或许对很多人有用,再者也好长没写过BLOG了,一起探讨一下
如果你的硬盘空间小,并且不想设置数据库的日志为最小(因为希望其他正常的日志希望仍然记录),而且对速度要求比较高,并清除所有的数据建议你用turncate table1,因为truncate 是DDL操作,不产生rollback,不写日志速度快一些,然后如果有自增的话,恢复到1开始,而delete会产生rollback,如果删除大数据量的表速度会很慢,同时会占用很多的rollback segments,同时还要记录下G级别的日志 ;当然如果有条件删除比如where time<'2006-3-10' 怎么办,能不能不记录日志用delete,回答是不行的,SQL Server 引擎在设计上就会对 Delete 操作进行日志记录。至今没有办法强制制定某一些语句不记录到日志中,如果在执行 Delete Table1 where Time < '2006-3-10' 由于涉及的记录比较多,所以日志记录也相应很大(3-4G),如果可行,我建议用以下方式:
选出您所需要保留的记录到新的表。如果您使用 Full Recovery Mode
根据Select INTO的记录数,日志可能会比较大
Select * into Table2 From Table1 Where Time > = '2006-03-10'
然后直接Truncate Table1。无论何种恢复模式都不会进行日志记录
Truncate table Table1
最后对Table2进行改名为Table1
EC sp_rename 'Table2', 'Table1'
相关推荐
-
如何在SQLSERVER中快速有条件删除海量数据
1.SQLSERVER数据库改bit类型为 not Boolean(即,true改成false;false改成true) 例:update 表 set bit字段=bit字段-1最近有个朋友问我,他说他在SQLSERVER删除几百万到几千万数据是显的很慢,帮他分析了一下,提了一些以下意见,或许对很多人有用,再者也好长没写过BLOG了,一起探讨一下 如果你的硬盘空间小,并且不想设置数据库的日志为最小(因为希望其他正常的日志希望仍然记录),而且对速度要求比较高,并清除所有的数据建议你用turncat
-
在 SQLSERVER 中快速有条件删除海量数据
如果你的硬盘空间小,并且不想设置数据库的日志为最小(因为希望其他正常的日志希望仍然记录),而且对速度要求比较高,并清除所有的数据建议你用turncate table1,因为truncate 是DDL操作,不产生rollback,不写日志速度快一些,然后如果有自增的话,恢复到1开始,而delete会产生rollback,如果删除大数据量的表速度会很慢,同时会占用很多的rollback segments,同时还要记录下G级别的日志 :当然如果有条件删除比如where time〈'2006-3-10'
-
如何在 SQL SERVER 中快速有条件删除海量数据
最近有个朋友问我,他说他在SQLSERVER删除几百万到几千万数据是显的很慢,帮他分析了一下,提了一些以下意见,或许对很多人有用. 如果你的硬盘空间小,并且不想设置数据库的日志为最小(因为希望其他正常的日志希望仍然记录),而且对速度要求比较高,并清除所有的数据建议你用turncate table1,因为truncate 是DDL操作,不产生rollback,不写日志速度快一些,然后如果有自增的话,恢复到1开始,而delete会产生rollback,如果删除大数据量的表速度会很慢,同时会占用很多的
-
三分钟教你如何在IDEA中快速创建工程的方法
1. 创建Java工程 1. 打开的初始界面 Create New Project:创建一个新的工程 Import Project:导入一个现有的工程 Open:打开一个已有工程.比如:可以打开 Eclipse 项目. Check out from VersionControl:可以通过服务器上的项目地址 check out Github上面项目或其他 Git 托管服务器上的项目 2. 新建项目 如果要创建 Web 工程,则需要勾选上面的 Web Application.如果不需要创建 Web
-
值得收藏!教你如何在IDEA中快速查看Java字节码
一.javap的参数 -help --help -? 输出此用法消息 -version 版本信息 -v -verbose 输出附加信息 -l 输出行号和本地变量表 -public 仅显示公共类和成员 -protected 显示受保护的/公共类和成员 -package
-
如何在IDEA中快速解决Jar冲突详解
目录 一.为什么会产生Jar包冲突? 1.1 直接与传递依赖 1.2 Maven 的传递依赖 1.3 Maven 如何解决版本冲突? 1.4 覆盖传递依赖版本 1.5 使用直接依赖覆盖传递依赖版本 二.通过IDEA快捷解决依赖冲突 2.1 查找冲突 2.2 发现冲突 2.3 解决冲突 一.为什么会产生Jar包冲突? 作为 Java 开发人员,我们可能会使用 Maven 维护许多应用程序以进行依赖项管理.这些应用程序需要不时升级以保持最新状态并添加新功能或安全更新. 由于某些依赖项之间的冲突,这个
-
详解如何在Angular中快速定位DOM元素
在使用Angular2+中,经常会想快速的去选择DOM上的某个元素,如果是刚上手Angular,有可能直接就使用原生DOM操作或者导入jQuery再进行DOM操作,既然都使用了Angular了,有没有更好的方法呢?答案是肯定的. 通过ElementRef 先上代码: import {Component, ElementRef, OnInit} from '@angular/core'; @Component({ selector: 'app-root', templateUrl: './app.
-
Python实现删除列表中满足一定条件的元素示例
本文实例讲述了Python实现删除列表中满足一定条件的元素.分享给大家供大家参考,具体如下: 从列表中删除满足一定条件的元素. 如:删除一个列表中长度为0的元素,或者删除列表中同时是2和3的倍数的元素. 做过高级语言编程的人想当然的会认为"这很简单",可以如下面的方式来实现: for i in listObj: if(...): listObj.remove(i) 看下一个小例子和结果: a = [1, 2, 3, 12, 12, 5, 6, 8, 9] for i in a: if
-
如何在IDEA中对 hashCode()和 equals() 利用快捷键快速进行方法重写
在Java中对集合进行操作时,有时候需要对类中的equals() 和 hashCode()进行方法重写.IDEA中实现了利用快捷键即可对上述内容进行快速操作.如下,我们定义一个名为Student的类. 下面我们利用快捷键对equals() 和 hashCode()方法进行重写 按住alt+Inset键会出现下面一个弹框 接着进行如下操作 IDEA自动生成了下面的方法 这样就完成了hashCode()和 equals() 方法的简单重写. 另外补充一句,HashSet集合保证元素的唯一性依赖两个方
-
详解如何在Vue中动态添加类名
目录 静态和动态类 有条件的类名 使用数组语法 使用对象语法 与自定义组件一起使用 快速生成类名 使用计算属性来简化类 能够向组件添加动态类名是非常强大的功能.它使我们可以更轻松地编写自定义主题,根据组件的状态添加类,还可以编写依赖于样式的组件的不同变体. 添加动态类名与在组件中添加 prop :class="classname"一样简单.无论classname的计算结果是什么,都将是添加到组件中的类名. 当然,对于Vue中的动态类,我们可以做的还有很多.在本文中,我们将讨论很多内容:
随机推荐
- 分布式Hibernate search详解
- PowerShell一次打开多个文件的方法
- Oracle实现行列转换的方法分析
- 全面解析Bootstrap排版使用方法(标题)
- 批处理中使用系统路径的命令
- 微信小程序中子页面向父页面传值实例详解
- Asp.net实现选择性的保留DataTable中的列
- Android控件之ScrollView用法实例分析
- 带你了解python装饰器
- ASP运行出错:缺少对象: 'xmlDoc.documentElement'错误解决方法
- Javascript中引用类型传递的知识点小结
- <script defer> defer 是什么意思
- Oracle 中生成流水号的方法
- sql注入数据库修复的两种实例方法
- java 二分法算法的实例
- JavaScript修改作用域外变量的方法
- Android Dialog详解及实例代码
- 深入Android Browser配置管理的详解
- Android开发中怎样调用系统Email发送邮件(多种调用方式)
- VC中删除类的两种操作方法