MSSQL大数据量增加字段耗时对比
单个数据表记录数为1亿4千万条.
一、测试同时增加两个允许为空的字段.
ALTER TABLE [dbo].[XRecord] ADD [sType] int,[cType] int
GO
开始时间:2016-08-02 14:55:33.553
完成时间:2016-08-02 14:55:34.430
总共耗时:877毫秒
更新数据值
UPDATE [dbo].[XRecord] SET [sType]=0,[cType]=0
开始时间:2016-08-02 15:01:46.293
完成时间:2016-08-02 16:38:39.230
总共耗时:1小时37分
增加字段描述
使用sp_addextendedproperty和sp_updateextendedproperty操作
开始时间:2016-08-02 17:13:34.557
完成时间:2016-08-02 17:13:36.050
总共耗时:1.5秒
二、试同时增加两个不允许为空的字段
ALTER TABLE [dbo].[XRecord] ADD [sType] int NOT NULL,[cType] int NOT NULL
GO
开始时间:2016-08-02 17:16:04.580
完成时间:2016-08-02 18:07:39.247
总共耗时:51分钟35秒
三、修改字段的默认值
BEGIN TRANSACTION
GO
ALTER TABLE [dbo].[XRecord] ADD CONSTRAINT
DF_P_XRecord_cType DEFAULT 999999 FOR cType
GO
ALTER TABLE [dbo].[XRecord]SET (LOCK_ESCALATION = TABLE)
GO
COMMIT
开始时间:2016-08-02 18:08:56.680
完成时间:2016-08-02 18:08:58.165
总共耗时:0分钟1秒
四、增加字段同时设置非空及默认值
BEGIN TRANSACTION
GO
ALTER TABLE [dbo].[XRecord] ADD [sType] int NOT NULL DEFAULT 0 , [cType] int NOT NULL DEFAULT 0
GO
ALTER TABLE [dbo].[XRecord] SET (LOCK_ESCALATION = TABLE)
GO
COMMIT
开始时间:2016-09-08 11:47:21
完成时间:2016-09-08 13:45:41
总共耗时:1小时58分钟20秒191毫秒
五、增加字段同时设置默认值
BEGIN TRANSACTION
GO
ALTER TABLE [dbo].[XRecord] ADD [serviceType2] int DEFAULT 0 , [costType2] int DEFAULT 0
GO
ALTER TABLE dbo.XRecord SET (LOCK_ESCALATION = TABLE)
GO
COMMIT
开始时间:2016-09-08 13:52:37.977
完成时间:2016-09-08 13:52:38.913
总共耗时:996毫秒
注:以上测试均在没有其他用户操作数据库及没有从库的情况下执行.