我在泰伦德的工作遇到了问题。
我使用tmssqlrow删除一些表(+/-25000000行)中的大量数据。由于我有一些条件,我不能使用截断。
数据库设置为“恢复模式简单”选项。尽管如此,事务日志文件的增加仍然占用了磁盘的所有可用空间。
以下是代码使用:
DECLARE @RowCount int = 1, @nbocc int = 0
WHILE @Rowcount > 0
BEGIN
BEGIN TRANSACTION
delete TOP (100000) from large_table
SET @Rowcount = @@ROWCOUNT;
COMMIT TRANSACTION
CHECKPOINT
SET @nbocc = @nbocc + 1
IF @nbocc = 15
BEGIN
DBCC SHRINKFILE (N'logfile' , 0)
WITH NO_INFOMSGS
SET @nbocc = 0
END
END
SET ROWCOUNT 0
如果在management Studio中运行此脚本,它工作正常,因此ldf文件每出现15次就会收缩一次。但与Talend一起使用时,ldf文件不断增长。
我怎样才能解决这个问题?
我尝试放置tOpenconnection,然后是tmssqlrow,然后是tmssqlcommit和tcloseconnection,但面临相同的问题。