sql server 删除大量数据的一次坑爹之旅
数据库有1kw数据不在使用了,影响读写速度,于是要删除掉
使用delete语句
意外发生,持续了半个小时后,依然不见结束的迹象
于是强行结束(停止了服务)
再打开服务后,数据库显示 【正在恢复】
百度一下我就知道了
于是,停下服务,剪切了数据到别的文件夹
恢复服务
删除数据库
启动服务
附加数据库
1个小时候,附件完成(刚好中午吃饭去了)
无知的我再次使用delete语句删除
两个小时候,实在无法忍受,停止删除
数据库显示 正在恢复
数据库文件增大,mdf达到31g,log问价达到109g
再次剪切文件到别的文件夹,启动服务,删除数据库,启动服务,附加数据库
1h后,sql 附加数据库窗口崩溃
本人崩溃
再次停止服务
剪切数据库文件,启动服务,删除数据库,停止服务,附加mdf,不要log文件,报错无法附加
百度
停止服务,剪切数据库文件,恢复服务,创建同名数据库,停止服务,删除同名数据库mdf文件,将原有数据库mdf覆盖同名数据mdf文件
打开服务,看到数据,为挂起状态
百度
执行如下代码
USE master
GO
ALTER DATABASE test SET SINGLE_USER
GO
ALTER DATABASE test SET EMERGENCY
GO
DBCC CHECKDB(test,REPAIR_ALLOW_DATA_LOSS)
go
ALTER DATABASE test SET ONLINE
GO
ALTER DATABASE test SET MULTI_USER
GO 来自:http://blog.csdn.net/zxr85/article/details/51943011
半个小时后依然在执行状态
本人崩溃
停止执行,数据库此时已经 成为 单个用户模式
崩溃,百度
执行如下代码
USE master;
GO
DECLARE @SQL VARCHAR(MAX);
SET @SQL=''
SELECT @SQL=@SQL+'; KILL '+RTRIM(SPID)
FROM master..sysprocesses
WHERE dbid=DB_ID('数据库名'); EXEC(@SQL);
ALTER DATABASE 数据库名 SET MULTI_USER; 代码来自:http://www.cnblogs.com/amadeuslee/p/6608076.html
数据库单人模式解除
刷新数据,奇迹发生了
数据库表可以访问了,由于只有一个表,实际要保留的数据只有8w多,于是使用
select into 语句,将数据保存至临时表,由于磁盘空间不足
收缩数据库
执行select into语句
执行 truncate table ,数据库文件大小未变化
收缩数据库
执行insert into select
一切搞定
本次一系列操作都不是生产环境,是本地服务器上的数据
本文中一系列操作仅供参考,文中奇迹发生的那一段,我同样很蒙蔽,仅供参考
sql server 删除大量数据的一次坑爹之旅的更多相关文章
- SQL Server 删除重复数据只保留一条
DELETE FROM Bus_TerminalMessage_Keywords WHERE Content IN (select Content from Bus_TerminalMessage_K ...
- sql server删除重复数据,保留第一条
SELECT * FROM EnterpriseDataTools.Enterprise.CompanyMainwhere CompanyNo in (select CompanyNo from En ...
- 最简单删除SQL Server中所有数据的方法
最简单删除SQL Server中所有数据的方法 编写人:CC阿爸 2014-3-14 其实删除数据库中数据的方法并不复杂,为什么我还要多此一举呢,一是我这里介绍的是删除数据库的所有数据,因为数据之间 ...
- Sql Server删除数据表中重复记录 三种方法
本文介绍了Sql Server数据库中删除数据表中重复记录的方法. [项目]数据库中users表,包含u_name,u_pwd两个字段,其中u_name存在重复项,现在要实现把重复的项删除![分析]1 ...
- SQL Server删除重复行的6个方法
SQL Server删除重复行是我们最常见的操作之一,下面就为您介绍六种适合不同情况的SQL Server删除重复行的方法,供您参考. 1.如果有ID字段,就是具有唯一性的字段 delect ta ...
- Sql Server系列:数据表操作
表是用来存储数据和操作数据的逻辑结构,用来组织和存储数据,关系数据库中的所有数据都表现为表的形式,数据表由行和列组成.SQL Server中的数据表分为临时表和永久表,临时表存储在tempdb系统数据 ...
- 一个有趣的SQL Server 层级汇总数据问题
看SQL Server大V宋大侠的博客文章,发现了一个有趣的sql server层级汇总数据问题. 具体的问题如下: parent_id emp_id emp_nam ...
- sql server 与oracle数据互导的一种思路--sql server链接服务器
思路:通过在sql server数据库中添加链接服务器,可以远程查询oracle数据库的表环境准备,安装sql server数据库,并安装好oracle驱动,在配置好tnsname文件中配置好orac ...
- 探讨SQL Server并发处理队列数据不阻塞解决方案
前言 之前对于并发这一块确实接触的比较少,自从遇到现在的老大,每写完一块老大都会过目一下然后给出意见,期间确实收获不少,接下来有几篇会来讲解SQL Server中关于并发这一块的内容,有的是总结,有的 ...
随机推荐
- inline-block并列排序时候的影响
当两个设置了inline-block属性的元素并列排放时,它们的位置能够互相影响. 元素结构: <div class="container"> <div clas ...
- Docker for Windows 使用入门
欢迎来到Docker for Windows! Docker是用于创建Docker应用程序的完整开发平台,Docker for Windows是在Windows系统上开始使用Docker的最佳方式. ...
- Linux查看系统信息(CentOS 7中测试通过)
以下命令运载CentOS7中测试通过 Linux查看服务器系统信息 CentOS版本 [root@blog ~]# cat /etc/os-release NAME="CentOS Linu ...
- centos6.5 yum update 报错Couldn't resolve host 'centos.ustc.edu.cn'
异常信息 [root@localhost ~]# yum -y update Loaded plugins: fastestmirror, refresh-packagekit, security S ...
- MVC+EF 入门教程(三)
一.前言 上一节,我们将了生成数据库,那么这张我就将操作设计库. 二.在 Aplication 定义服务 在 Application 中添加文件夹(Blog)和 操作类(BlogServer).实例如 ...
- spark-submit参数说明--on YARN
示例: spark-submit [--option value] <application jar> [application arguments] 参数名称 含义 --master M ...
- JSON Schema 校验实例
JSON Schema 简介 JSON Schema is a vocabulary that allows you to annotate and validate JSON documents. ...
- 【java】实现一个简单的正则:判断一个字符串是否全由数字组成
package 正则; public class TestIsNum { public static void main(String[] args) { String s1="abc&qu ...
- springboot 入门四-时间类型处理
springboot 自带了jackson来处理时间,但不支持jdk8 LocalDate.LocalDateTime的转换. 对于Calendar.Date二种日期,转换方式有二种: 一.统一app ...
- DataBase MongoDB高级知识
MongoDB高级知识 一.mongodb适合场景: 1.读写分离:MongoDB服务采用三节点副本集的高可用架构,三个数据节点位于不同的物理服务器上,自动同步数据.Primary和Secondary ...