Performance SQL Azure性能问题
我们正在考虑从具有Sql Server web edition的虚拟机迁移到Sql Azure,但是一些非常基本的测试(我的意思是基本测试)让我有点担心性能。我在本地创建了一个DB并插入了10000行,这需要几毫秒,当我连接到一个基本的SQLAzure数据库并运行while循环以插入10000行时,这需要2分20秒。我将数据库升级到标准2S2,并在40秒内完成。然后我在本地插入了100k行,在3秒内完成,在S2上花了6分41秒 我知道这是难以置信的基本测试,但它确实让我担心SQLAzure的性能。我们目前有一个虚拟机,有8个内核和56gb ram Azure VM D13,托管大约10个数据库。我们希望迁移,这样就不必再担心管理Sql Server虚拟机 读了几遍之后: 他们计算这些值的方式完全超出了我的理解,例如S2表示每分钟2570个事务,但我在6分钟内插入了100k行 这是我用来测试的循环:Performance SQL Azure性能问题,performance,azure-sql-database,Performance,Azure Sql Database,我们正在考虑从具有Sql Server web edition的虚拟机迁移到Sql Azure,但是一些非常基本的测试(我的意思是基本测试)让我有点担心性能。我在本地创建了一个DB并插入了10000行,这需要几毫秒,当我连接到一个基本的SQLAzure数据库并运行while循环以插入10000行时,这需要2分20秒。我将数据库升级到标准2S2,并在40秒内完成。然后我在本地插入了100k行,在3秒内完成,在S2上花了6分41秒 我知道这是难以置信的基本测试,但它确实让我担心SQLAzure的性能
DECLARE @cnt int = 100000
WHILE (@cnt > 0)
BEGIN
declare @seed int;
declare @string varchar(256);
select @seed = @cnt; -- saved start seed
exec GetRandomString @maxlen=50,
@seed = @seed output
, @string = @string output;
BEGIN TRANSACTION
INSERT INTO Users VALUES (@string)
COMMIT TRANSACTION
SET @cnt = @cnt - 1;
END
您是否有这样插入行的真实场景?SQL Azure通常速度较慢,但对于95%的实际用例来说速度足够快。在我们的应用程序迁移过程中,我们有一个脚本,它批量插入所有全球化值,因为我们有一个主控表,这将清除现有表并插入约6000条记录。这将大大降低我们的迁移速度。您是否设法提高了吞吐量?我们可以看到,在S1上需要30多秒,在S3上需要16秒才能批量插入1K行的BCP。