2010-07-30 92 views
0

64位Windows Server 2008,SQL Server 2005. 4处理器。数据库处于简单恢复模式 - 运行以下批处理脚本时,事务开始在“ALTER TABLE PS_RC_CASE_AUDIT ADD Z_TMP_ALTER_1 NVARCHAR(80) NULL”处回滚 - 以下是观察到的等待类型。由于日志文件已满并且磁盘空间不足,我们不得不多次回滚此事务。我们今天增加了更多空间,并且交易仍然回滚。有任何想法吗?TSQL - 事务回滚 - PAGEIOLATCH_EX等待类型 - SQL SErver 2005

PAGEIOLATCH_EX 5006.53 
SLEEP_BPOOL_FLUSH 931.00 
LCK_M_SCH_S 466.77 
IO_COMPLETION  226.16 

下面是脚本:

USE [DBNAME] 
go 
SET IMPLICIT_TRANSACTIONS ON 
go 
-- 
-- Alters for record PS_RC_CASE_AUDIT 
--  RC_DESCRLONG - move to table end (LONGCHAR) 
--  RSLN_SUMMARY - change 
--  CASE_VISIBILITY - add 
--    BO_NAME - add 
--   REASON_CD - add 

-- Start the Transaction 


-- Data Conversion 


-- Add Columns 

ALTER TABLE PS_RC_CASE_AUDIT ADD CASE_VISIBILITY NVARCHAR(4) NULL 
go 
ALTER TABLE PS_RC_CASE_AUDIT ADD BO_NAME NVARCHAR(50) NULL 
go 
ALTER TABLE PS_RC_CASE_AUDIT ADD REASON_CD NVARCHAR(10) NULL 
go 
ALTER TABLE PS_RC_CASE_AUDIT ADD Z_TMP_ALTER_1 NVARCHAR(80) NULL 
go 
ALTER TABLE PS_RC_CASE_AUDIT ADD X_TMP_ALTER_1 NVARCHAR(MAX) NULL 
go 
UPDATE PS_RC_CASE_AUDIT SET 
    X_TMP_ALTER_1 = RC_DESCRLONG, 
    Z_TMP_ALTER_1 = RSLN_SUMMARY 
go 

-- Set Default Values 

UPDATE PS_RC_CASE_AUDIT SET CASE_VISIBILITY = ' ', BO_NAME = ' ', 
REASON_CD = ' ' 
go 

-- Modify NULLability 

ALTER TABLE PS_RC_CASE_AUDIT ALTER COLUMN Z_TMP_ALTER_1 NVARCHAR(80) 
NOT NULL 
go 
ALTER TABLE PS_RC_CASE_AUDIT ALTER COLUMN CASE_VISIBILITY NVARCHAR(4) 
NOT NULL 
go 
ALTER TABLE PS_RC_CASE_AUDIT ALTER COLUMN BO_NAME NVARCHAR(50) NOT NULL 
go 
ALTER TABLE PS_RC_CASE_AUDIT ALTER COLUMN REASON_CD NVARCHAR(10) NOT 
NULL 
go 

-- Drop Old Columns 

ALTER TABLE PS_RC_CASE_AUDIT DROP COLUMN RC_DESCRLONG 
go 
ALTER TABLE PS_RC_CASE_AUDIT DROP COLUMN RSLN_SUMMARY 
go 

-- Rename Changed Columns 

sp_rename 'PS_RC_CASE_AUDIT.X_TMP_ALTER_1', RC_DESCRLONG, 'COLUMN' 
go 
sp_rename 'PS_RC_CASE_AUDIT.Z_TMP_ALTER_1', RSLN_SUMMARY, 'COLUMN' 
go 
COMMIT 
go 

-- Done 
go 
COMMIT 
go 
+0

请使用代码标签,这样我们可以读取这... – JNK 2010-07-30 17:18:13

+0

我只是做了。谢谢! – Ranjeeth 2010-07-30 17:34:16

+0

谢谢!现在你可以给我们架构吗?你确定这个专栏不存在吗? – JNK 2010-07-30 17:35:16

回答

1

你还在运行的磁盘空间与T-日志填满? 您是否可以不运行脚本的添加,更新,修改,删除和重命名阶段以避免日志填满。