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中关于并发这一块的内容,有的是总结,有的 ...
随机推荐
- 学习customEvent
title: 认真学习customEvent tags: DOM date: 2017-7-22 23:20:57 --- 最近要实现一个模拟的select元素组件,所以好好看了这个自定义事件api, ...
- CentOS 7 安装.NET Core 2.0
一.添加dotnet产品Feed 在安装.NET Core之前,您需要注册Microsoft产品Feed. 这只需要做一次. 首先,注册Microsoft签名密钥,然后添加Microsoft产品Fee ...
- mysql千万级数据表,创建表及字段扩展的几条建议
一:概述 当我们设计一个系统时,需要考虑到系统的运行一段时间后,表里数据量大约有多少,如果在初期,就能估算到某几张表数据量非常庞大时(比如聊天消息表),就要把表创建好,这篇文章从创建表,增加数据,以及 ...
- MFC学习之CWinApp类
CWinApp是一个基类,你通过它来继承Windows应用程序对象.应用程序对象为你提供了初始化应用程序(以及它的每一个实例 和运行应用程序所需的成员函数.它实现主事件循环并把事件分发给MFC中其他类 ...
- 苹果审核返回崩溃日志 iOS .crash文件处理 symbolicatecrash. 困扰我多年的牛皮癣根治了 看到这篇文章拿过来用下
AppStore审核被拒,返回crashLog.txt文件,可是打开后都是十六进制的地址,我们可以使用Xcode自带的 symbolicatecrash 解析得到我们需要的详细崩溃信息crashLog ...
- 数值函数ROUND(四舍五入),TRUNC(不四舍五入),MOD
- JavaScript循环实例
几个经典的循环案例: 1.一张纸的厚度是0.0001米,将纸对折,对折多少次厚度超过珠峰高度8848米 var i=0; var h=0.0001; while(true){ i++; h=h*2; ...
- Qt--自定义Delegate
这是Model/View中的最后一篇了,Qt官方显然弱化了Controller在MVC中的作用,提供了一个简化版的Delegate:甚至在Model/View框架的使用中,提供了默认的委托,让这个控制 ...
- ubuntu16.04 查询ip,网关,dns信息
用ifconfig命令只能查询ip,子网掩码信息,不能获取dns和网关信息 用下面命令即可查询 nmcli dev show
- date 命令详解
date - print or set the system date and time Display the current time in the given FORMAT, or set th ...