我每天都在运行Web应用程序并将大量数据导入sql server数据库。不幸的是我遇到了服务器故障(硬盘故障),我不得不在新机器上重新安装SQL Server和其他应用程序。 我的问题是,从头开始设置系统导入数据到数据库开始是非常长的。新机器比旧机器快得多(64GB RAM,8个线程...),并且在应用程序上执行的所有其他操作都会立即执行。
数据导入如下所示:
在服务器故障处理之前,200 000行需要大约2分钟,现在大约20分钟:( 我想我已经尝试了一切,这是SQL Profiler的截图:
表中的所有行都是insert语句。如您所见,持续时间从7到120不等,所以我认为这是问题所在。 有没有人知道可能是什么原因?
提前致谢! :)
P.S。系统中有两个硬盘驱动器(RAID),SQL Server 2008 R2
编辑: 数据库是从备份
创建的表模式如下所示:
create table [tempUpload].[Import_0016704] (
ROWNO int identity primary key,
[TheDate] nvarchar(10) COLLATE SQL_Latin1_General_CP1_CI_AS ,
[Campaign] nvarchar(35) COLLATE SQL_Latin1_General_CP1_CI_AS ,
[AdGroup] nvarchar(7) COLLATE SQL_Latin1_General_CP1_CI_AS ,
[Domain] nvarchar(50) COLLATE SQL_Latin1_General_CP1_CI_AS ,
[Impressions] nvarchar(5) COLLATE SQL_Latin1_General_CP1_CI_AS ,
[Cost] nvarchar(8) COLLATE SQL_Latin1_General_CP1_CI_AS ,
[ConversionsOnePerClick] nvarchar(1) COLLATE SQL_Latin1_General_CP1_CI_AS ,
[Clicks] nvarchar(2) COLLATE SQL_Latin1_General_CP1_CI_AS ,
[ClientId] nvarchar(10) COLLATE SQL_Latin1_General_CP1_CI_AS
)
单个插入内容如下所示:
exec sp_executesql N'insert into [tempUpload].[Import_0016704] ([TheDate],[Campaign], [AdGroup],[Domain],[Impressions],[Cost],[ConversionsOnePerClick],[Clicks],[ClientId])
select
@v_165,@v_166,@v_167,@v_168,@v_172,@v_174,@v_176,@v_173,@v_177',
N'@v_165 nvarchar(20), @v_166 nvarchar(70),@v_167 nvarchar(14),@v_168 nvarchar(100),@v_172 nvarchar(10),@v_174 nvarchar(16),@v_176 nvarchar(2),@v_173 nvarchar(4),@v_177 nvarchar(20)',
@v_165=N'2013-04-07',@v_166=N'Tematy',
@v_167=N'120x600',
@v_168=N'gallery.com',
@v_172=N'21',
@v_174=N'0',
@v_176=N'0',
@v_173=N'0',
@v_177=N'243'
如果您需要更多详细信息,请给我一个标志。