主页 > 大数据 > mssql数据库太大怎么压缩?

mssql数据库太大怎么压缩?

一、mssql数据库太大怎么压缩?

下面是一个减小数据库大小的方法:

1、打开企业管理器2、打开要处理的数据库3、点击菜单> 工具> SQL查询分析器4、在输入窗口里面输入:DUMP TRANSACTION [数据库名] WITH NO_LOGBACKUP LOG [数据库名] WITH NO_LOGDBCC SHRINKDATABASE([数据库名]) 点击执行,操作成功。这三行代码的作用分别为:清空日志、截断事务日志、收缩数据库文件(如果不压缩,数据库的文件不会减小)。

二、EXCEL数据太大如何导入数据库?

Office 自带的Access就可以,其实 前2页不 是特别大的话,完全没有必要 去Vlookup,要什么直接用宏 去提取 生成

三、SQL数据库太大怎么办?

--1.日常要做数据库压缩

--压缩日志及数据库文件大小

/*--特别注意

请按步骤进行,未进行前面的步骤,请不要做后面的步骤

否则可能损坏你的数据库.

--*/

1.清空日志

DUMP TRANSACTION 库名 WITH NO_LOG

2.截断事务日志:

BACKUP LOG 数据库名 WITH NO_LOG

3.收缩数据库文件(如果不压缩,数据库的文件不会减小

企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件

--选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了

--选择数据文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了

也可以用SQL语句来完成

--收缩数据库

DBCC SHRINKDATABASE(客户资料)

--收缩指定数据文件,1是文件号,可以通过这个语句查询到:select * from sysfiles

DBCC SHRINKFILE(1)

4.为了最大化的缩小日志文件(如果是sql 7.0,这步只能在查询分析器中进行)

a.分离数据库:

企业管理器--服务器--数据库--右键--分离数据库

b.在我的电脑中删除LOG文件

c.附加数据库:

企业管理器--服务器--数据库--右键--附加数据库

此法将生成新的LOG,大小只有500多K

或用代码:

下面的示例分离 pubs,然后将 pubs 中的一个文件附加到当前服务器。

a.分离

EXEC sp_detach_db @dbname = 'pubs'

b.删除日志文件

c.再附加

EXEC sp_attach_single_file_db @dbname = 'pubs',

@physname = 'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs.mdf'

5.为了以后能自动收缩,做如下设置:

企业管理器--服务器--右键数据库--属性--选项--选择"自动收缩"

--SQL语句设置方式:

EXEC sp_dboption '数据库名', 'autoshrink', 'TRUE'

6.如果想以后不让它日志增长得太大

企业管理器--服务器--右键数据库--属性--事务日志

--将文件增长限制为xM(x是你允许的最大数据文件大小)

--SQL语句的设置方式:

alter database 数据库名 modify file(name=逻辑文件名,maxsize=20)

四、数据库太大了,怎么办?

  处理方法:  

1、用BACKUP LOG database WITH NO_LOG清除日志  把数据库属性中的故障还原模型改为“简单”可以大大减慢日志增长的速度。  用BACKUP LOG database WITH NO_LOG命名后,会截断不活动日志,不减小物理日志文件的大小,但逻辑日志会减小,收缩数据库后会把不活动虚拟日志删除来释放空间,不会损坏数据。  如果日志被截断并收缩数据库后,就不能直接用最近的一个全库备份做时间点还原,建议立即备份数据库,以防万一。  

2、sql server运行中,删除主数据库事务日志文件,步骤如下:  (1)、分离数据库管理器-数据库-右击要删除日志的数据库-所有任务-分离数据库  (2)、然后删除日志文件  (3)、然后再附加数据库  企业管理器-数据库-右击数据库-所有任务-附加数据库时只附加mdf.  

3、压缩SQL数据库及日志的详细方法  可以在数据库属性选项中选择“Auto shrink”选项,让系统自动压缩数据库,也可以用人工的方法来压缩。

五、sqlserver数据库日志文件太大,怎么清理?

收缩数据库 一般情况下,SQL数据库的收缩并不能很大程度上减小数据库大小,其主要作用是收缩日志大小,应当定期进行此操作以免数据库日志过大

1、设置数据库模式为简单模式:打开SQL企业管理器,在控制台根目录中依次点开Microsoft SQL Server-->SQL Server组-->双击打开你的服务器-->双击打开数据库目录-->选择你的数据库名称(如论坛数据库Forum)-->然后点击右键选择属性-->选择选项-->在故障还原的模式中选择“简单”,然后按确定保存

2、在当前数据库上点右键,看所有任务中的收缩数据库,一般里面的默认设置不用调整,直接点确定

3、收缩数据库完成后,建议将您的数据库属性重新设置为标准模式,操作方法同第一点,因为日志在一些异常情况下往往是恢复数据库的重要依据

六、Sqlserver数据库日志太大如何快速删除?

收缩数据库 一般情况下,SQL数据库的收缩并不能很大程度上减小数据库大小,其主要作用是收缩日志大小,应当定期进行此操作以免数据库日志过大

1、设置数据库模式为简单模式:打开SQL企业管理器,在控制台根目录中依次点开Microsoft SQL Server-->SQL Server组-->双击打开你的服务器-->双击打开数据库目录-->选择你的数据库名称(如论坛数据库Forum)-->然后点击右键选择属性-->选择选项-->在故障还原的模式中选择“简单”,然后按确定保存

2、在当前数据库上点右键,看所有任务中的收缩数据库,一般里面的默认设置不用调整,直接点确定

3、收缩数据库完成后,建议将您的数据库属性重新设置为标准模式,操作方法同第一点,因为日志在一些异常情况下往往是恢复数据库的重要依据

七、SQL数据库文件太大怎么处理?

  处理方法:   

1、用BACKUP LOG database WITH NO_LOG清除日志   把数据库属性中的故障还原模型改为“简单”可以大大减慢日志增长的速度。

  用BACKUP LOG database WITH NO_LOG命名后,会截断不活动日志,不减小物理日志文件的大小,但逻辑日志会减小,收缩数据库后会把不活动虚拟日志删除来释放空间,不会损坏数据。  如果日志被截断并收缩数据库后,就不能直接用最近的一个全库备份做时间点还原,建议立即备份数据库,以防万一。  

2、sql server运行中,删除主数据库事务日志文件,步骤如下:   (1)、分离数据库管理器-数据库-右击要删除日志的数据库-所有任务-分离数据库   (2)、然后删除日志文件   (3)、然后再附加数据库   企业管理器-数据库-右击数据库-所有任务-附加数据库时只附加mdf.   

3、压缩SQL数据库及日志的详细方法   可以在数据库属性选项中选择“Auto shrink”选项,让系统自动压缩数据库,也可以用人工的方法来压缩。

八、sql数据库占用内存太大如何处理?

1. 数据缓存:执行个查询语句,Sql Server会将相关的数据页(Sql Server操作的数据都是以页为单位的)加载到内存中来, 下一次如果再次请求此页的数据的时候,就无需读取磁盘了,大大提高了速度。

2.执行命令缓存:在执行存储过程,自定函数时,Sql Server需要先二进制编译再运行,编译后的结果也会缓存起来, 再次调用时就无需再次编译。清除SQL Server服务器内存的方法:

方法一.清除所有缓存语句DBCC DROPCLEANBUFFERS方法二.调整可使用物理内存1.选择服务器属性2.把最大服务器内存改成合适的值,确定后多余的内存就会被强制释放

九、oracle数据库进程数太大怎么全部删除?

打开数据库,找到需要删除的文件点击删除即可

十、数据库导出数据到excel数据太大怎么解决?

其实这个需求并不合理,就算是导出了那么多数据,也没人看的完,excel也很难打开。

不过在这里,我强答一波吧。

做法:导出操作,不经过php,而是直接交给sql做,使用sql自带的导出功能即可。代码如下:

最后,将此文件输出给浏览器,OK了。

PS:仅供参考,我自己测试过,120万的数据,导出时间2.242s,表字段7个,其中一个是主键。

导出csv文件92.9M,excel不能完全打开 :)

相关推荐