Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server Sql Server ldf文件增长非常快_Sql Server_Database_Sql Server 2012 - Fatal编程技术网

Sql server Sql Server ldf文件增长非常快

Sql server Sql Server ldf文件增长非常快,sql-server,database,sql-server-2012,Sql Server,Database,Sql Server 2012,我正在使用Sql Server 2012。 我的LDF文件增长非常快。 例如, 如果我尝试将3-4列的数据类型从varchar(10)更改为varchar(5),则会消耗几乎4-5GB的磁盘空间 甚至,当我运行简单的insert查询时,也会消耗大量的磁盘空间 请告诉我ldf文件增长如此之快的可能原因是什么? 我如何解决这个问题 谢谢。如果在完全恢复模式下运行,则需要定期执行事务日志备份,以减缓日志增长 USE master GO SELECT a.name, MAX(b.

我正在使用Sql Server 2012。
我的LDF文件增长非常快。
例如,
如果我尝试将3-4列的数据类型从varchar(10)更改为varchar(5),则会消耗几乎4-5GB的磁盘空间

甚至,当我运行简单的insert查询时,也会消耗大量的磁盘空间

请告诉我ldf文件增长如此之快的可能原因是什么?
我如何解决这个问题


谢谢。

如果在完全恢复模式下运行,则需要定期执行事务日志备份,以减缓日志增长

USE master
GO
SELECT   a.name, 
         MAX(b.backup_finish_date) AS backup_finish_date 
FROM     master.sys.sysdatabases a 
         LEFT OUTER JOIN msdb..backupset b 
         ON b.database_name = d.name 
         AND b.type          = 'L' 
GROUP BY a.name 
ORDER BY backup_finish_date DESC 
此外,以下是导致事务日志增长的一些因素:


此外,此链接还可以帮助您进一步控制日志文件大小:

因此,我终于有机会解决此问题。
事实上 当我执行事务日志备份时,它不会从ldf文件中释放空间。
所以,
要解决它,
首先,我对数据库进行完整备份。
然后尝试收缩数据库(而不是文件)。
当我收缩数据库时,ldf文件中的空间被释放

这就解决了我的问题


有关Aaron Bertrand

建议的更简短的详细信息,请参见我尝试执行事务日志备份。。。但这并不影响ldf文件的大小。ldf文件的大小仍与以前相同。但是,我应该截断ldf文件。(尽管我选择了turncate和transaction log选项)…:(另外,执行定期事务日志备份会降低日志增长速度,但ldf文件的大小保持不变……:(@MikeDarwish不确定,但这正是当时对我有效的方法。一定有更好的解决方案。