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中关于并发这一块的内容,有的是总结,有的 ...
随机推荐
- wordpess关闭评论的方法,wordpress开发
由于某种原因,需要把wordpress的评论关闭,下面讲一下方法. 在wordpress模板中,找到文章模板页面文件single.php,在里面找到 <?php comments_templat ...
- vue中使用keepAlive组件缓存遇到的坑
项目开发中在用户由分类页category进入detail需保存用户状态,查阅了Vue官网后,发现vue2.0提供了一个keep-alive组件. 上一篇讲了keep-alive的基本用法,现在说说遇到 ...
- Akka Serialization
Akka本身使用了Protocol Buffers来序列化内部消息(比如gossip message).Akka系统还可以配置自定义序列化机制. 配置conf akka { actor { ## 在a ...
- Visual simultaneous localization and mapping: a survey 论文解析(全)
当激光或声纳等距离传感器被用来构建小的静态环境的二维地图时,SLAM的问题被认为是解决的.然而,对于动态,复杂和大规模的环境,使用视觉作为唯一的外部传感器,SLAM是一个活跃的研究领域. 第一部分是简 ...
- Confluence5.4.4迁移至6.3.1
1.数据备份 服务器查看: 2.安装破解文件及安装包至服务器 3.停止旧版本并启动安装 4.访问8090端口开始安装 5.获取授权码,需要能访问国外网站,并且有atlassian账号 6.将数据库连接 ...
- Yum database disk image is malformed
使用 yum update 时使用Ctrl+C 后,再用yum 安装其他软件的时候收到:Yum database disk image is malformedyum clean dbcache 清除 ...
- Linux第七节随笔 diff /uniq /stat
linux第七讲(上)1.diff link 作用:diff命令能比较单个文件或者目录内容.如果指定比较的是文件,则只有当输入为文本文件时才有效.以逐行的方式,比较文本文件的异同处. 如果指定比较的是 ...
- windows c++ 程序移植到Linux的一些要点
这段时间得到一份源码,是Windows下的,调试了一把,可以正常运行,可是没有Linux版本,而实际的应用场景是要在Linux服务器上面运行 所以涉及到Windows下c++程序的移植,有同事竭力推荐 ...
- 深入C#.NET数据类型
深入C#数据类型 --不同类型的参数传递使用值传递,在方法中对参数的更改在调用后不能保留.使用ref方式传递,可以保留对参数值的更改. ---值方式参数传递和引用方式传递使用值方式(不用ref修饰)传 ...
- PHP函数和数组
所有代码可以在https://www.github.com/lozybean/learn_www中查看 PHP函数 PHP中还是有很多函数式编程的影子,函数功能还是比较强大的. 1. 函数用funct ...