sqlserver数据库里最大的表删了80%的记录(约7亿条),但是mdf文件才从110G减少了3G,为什么怎么解决

sqlserver数据库里最大的表删了80%的记录(约7亿条),但是mdf文件才从110G减少了3G,为什么怎么解决,第1张

不是的。。这个是因为你数据数据虽然删除了。但是数据库的体积并没有减少多少。。

就好比说一个大盆子原来是装满的现在倒掉了一大半的水但是盆子的体积并没有减小你从外边看还是那么大的一个盆子尽管里边空空如也

这个时候你可以用数据库 任务里的压缩功能他会把盆子变小的

有帮助,请采纳

sqlserver数据文件太大,表占用空间太大,怎么释放空间

ms

sqlserver

自带收缩功能

可以试下

表占用空间大不一定能收缩多少

毕竟有数据在那,如果这表经常有删除动作的话

收缩还是有用的,

这个错误应该出现在你的表中NAME的字段;

1、检查一下oracle数据库表中NAME字段类型和Sqlserver数据库表中NAME字段类型是否一样;2、检查一下Sqlserver数据库表中NAME字段长度是否小于oracle数据库表中NAME字段的长度;

3、检查一下Sqlserver数据库表中NAME字段时候不允许为空,设置允许为空试试;

服务未运行、防火墙设置不正确。

1、sqlserver服务未启动,将无法连接到它,可以在计算机管理中查看服务是否正在运行,并尝试手动启动服务。

2、防火墙会阻止sqlserver的访问请求,可以通过开放1433和1434端口,或者使用sqlserver配置管理器来进行配置。

一、用户数据库搬家

*** 作方法有以下两种

方法1:在企业管理器中进行

(1)在企业管理器中选定要搬家的数据库名,在其上单击鼠标右键,出现如图1所示对话框。

(2)选中“所有任务”,在其子菜单中单击“分离数据库”。

(3)将该数据库的数据文件和日志文件从旧的位置(如D:\MSSQL\Data)拷贝到新的位置(如E:\SQLDataNew)。

(4)再在企业管理器中选中“数据库”文件夹,在其上单击鼠标右键,在出现的对话框中选中“所有任务”,在其子菜单中单击“附加数据库”。

(5)在出现的“附加数据库”对话框中,选择数据库的两个文件的新位置。

方法2:用SQL系统存储过程sp_detach_db/sp_attach_db实现

(1)使用下面语句分离数据库:

USE master

GO

EXEC sp_detach_db 'mydb'

GO

(2)将该数据库的数据文件和日志文件从旧的位置拷贝到新的位置。

(3)使用下面语句重新附加数据库:

USE master

GO

EXEC sp_attach_db

'mydb', 'E:\SQLDataNew\mydbdatamdf', 'E:\SQLDataNew\mydblogldf''

GO

二、系统数据库搬家

1.master数据库搬家

(1)由于SQL Server每次启动的时候都需要读取master数据库,因此必须在企业管理器中改变SQL Server启动参数中master数据文件和日志文件的路径。

在 SQL Server属性的“常规”选项卡下面有一个叫做“启动参数”的按钮,单击后可以看到所示的界面。

其中,-d用来指定master数据库文件的路径,而–l用来指定master数据库日志文件的路径。

删除旧的master数据库文件和日志文件的路径,添加新的master数据文件和日志文件所在的路径,如:

-dE:\ SQLDataNew \mastermdf

-lE:\ SQLDataNew \mastlogldf

(2)停止SQL Server服务,将mastermdf文件和mastlogldf文件拷贝到新的位置,如E:\ SQLDataNew文件夹中。

(3)重新启动服务即可。

小技巧:如果在“启动参数”添加的master数据库文件和日志文件的路径或文件名有误,就会造成SQL Server启动不起来。而此时想改正错误又因SQL Server启动不了而重设不了“启动参数”。其实这两个文件路径和文件名是放置在注册表HKEY_LOCAL_MACHINE\SOFWARE\Microsoft\Miccrosoft SQL Server\你安装SQL服务器的名\MSSQLServer\Parrmeters下的参数SQLArg1和SQLArg2中,修改这两个参数的值即可。

2 msdb数据库和model数据库搬家

(1)对于msdb数据库和model数据库,我们不能在企业管理器中实现分离和附加,只能用sp_detach_db和sp_attach_db存储过程来分离和附加这两个数据库。

其中,对于msdb数据库,还应确保SQL Server代理当前没有运行,否则sp_detach_db存储过程将运行失败,并返回如下消息:

“无法除去数据库 'msdb' ,因为它当前正在使用。”

(2)调出如图4所示的“启动参数”对话框,添加新参数-T3608。这样,启动SQL Server,它就不会恢复除master之外的任何数据库。

(3)重新启动SQL Server,再用下面命令分离msdb或者model数据库:

EXEC sp_detach_db 'msdb'

GO

(4)将数据文件和日志文件移到新的位置,然后再用下面命令重新附加msdb数据库或者model数据库:

USE master

GO

EXEC sp_attach_db

'msdb', ‘E:\SQLDataNew\msdbdatamdf', ' E:\SQLDataNew\msdblogldf '

GO

(5)在企业管理器中,从“启动参数”框中删除-T3608跟踪标记,再停止并重新启动SQL Server。

3 tempdb数据库搬家

对于tempdb数据库,则可以直接使用ALTER DATABASE语句来为数据文件和日志文件指定新的存放位置,如下所示:

USE master

GO

ALTER DATABASE tempdb MODIF

Y FILE (NAME=tempdev, FILENAME ='E:\SQLDataNew \tempdbmdf')

GO

ALTER DATABASE tempdb MODIF

Y FILE(NAME=templog, FILENAME=

' E:\SQLDataNew \templogldf')

GO

至此,SQL Server 中数据库全部搬家完成。

以上就是关于sqlserver数据库里最大的表删了80%的记录(约7亿条),但是mdf文件才从110G减少了3G,为什么怎么解决全部的内容,包括:sqlserver数据库里最大的表删了80%的记录(约7亿条),但是mdf文件才从110G减少了3G,为什么怎么解决、SqlServer数据文件太大,表占用空间太大,怎么释放空间、Oracle导入sql server 2008报下面的错误,其中oracle中的数据有导入一部分过来等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9726332.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存