SQL Server差异持续时间多次插入

时间:2013-04-24 17:38:35

标签: performance sql-server-2008 insert

我每天都在运行Web应用程序并将大量数据导入sql server数据库。不幸的是我遇到了服务器故障(硬盘故障),我不得不在新机器上重新安装SQL Server和其他应用程序。 我的问题是,从头开始设置系统导入数据到数据库开始是非常长的。新机器比旧机器快得多(64GB RAM,8个线程...),并且在应用程序上执行的所有其他操作都会立即执行。

数据导入如下所示:

  1. 阅读XML文件
  2. 遍历每一行并将其插入数据库(无批量插入,无事务 - 只需清理插入命令)
  3. 在服务器故障处理之前,200 000行需要大约2分钟,现在大约20分钟:( 我想我已经尝试了一切,这是SQL Profiler的截图:

    http://content.screencast.com/users/czyzas/folders/Jing/media/50bc21c1-1e98-478e-88d1-0751f447b619/2013-04-24_1932.png

    表中的所有行都是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'
    

    如果您需要更多详细信息,请给我一个标志。

0 个答案:

没有答案