Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/74.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.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-由于活动的\u事务,日志已满_Sql_Sql Server_Sql Server 2012 - Fatal编程技术网

Sql server-由于活动的\u事务,日志已满

Sql server-由于活动的\u事务,日志已满,sql,sql-server,sql-server-2012,Sql,Sql Server,Sql Server 2012,我有一个非常大的数据库(50+GB)。为了释放硬盘空间,我尝试从其中一个表中删除旧记录。我运行命令: delete from Table1 where TheDate<'2004-01-01'; 它没有删除任何东西。这是什么意思?如何删除记录?重新启动SQL Server将清除数据库使用的日志空间。 但是,如果这不是一个选项,您可以尝试以下操作: * Issue a CHECKPOINT command to free up log space in the log file. * C

我有一个非常大的数据库(50+GB)。为了释放硬盘空间,我尝试从其中一个表中删除旧记录。我运行命令:

delete from Table1 where TheDate<'2004-01-01';

它没有删除任何东西。这是什么意思?如何删除记录?

重新启动SQL Server将清除数据库使用的日志空间。 但是,如果这不是一个选项,您可以尝试以下操作:

* Issue a CHECKPOINT command to free up log space in the log file.

* Check the available log space with DBCC SQLPERF('logspace'). If only a small 
  percentage of your log file is actually been used, you can try a DBCC SHRINKFILE 
  command. This can however possibly introduce corruption in your database. 

* If you have another drive with space available you can try to add a file there in 
  order to get enough space to attempt to resolve the issue.

希望这将帮助您找到解决方案。

以下是我最后为解决错误所做的工作

首先,我将数据库恢复模型设置为简单的。更多信息

然后,通过删除一些旧文件,我能够获得5GB的可用空间,这给了日志文件更多的增长空间

我在没有任何警告的情况下成功地重新运行DELETE语句

我认为通过运行DELETE语句,数据库将立即变小,从而释放硬盘空间。但事实并非如此。除非运行以下命令,否则DELETE语句后释放的空间不会立即返回到操作系统:

DBCC SHRINKDATABASE (MyDb, 0);
GO
有关该命令的详细信息。

Small;)不是很大。只要能放入中端服务器的内存中,变化肯定不会很大。DBCC SQLPERF('logspace')将显示“日志大小(MB)”和“使用的日志空间(%)”。请记住,日志大小并不表示写入日志的实际大小,而是表示磁盘上日志文件的大小。因此,要获得日志的真实大小(以MB为单位),请将这两列相乘。例如,2.00MB的日志大小和70%的使用率意味着您有1.4MB的日志数据。
DBCC SHRINKDATABASE (MyDb, 0);
GO