Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Performance SQL Azure性能问题_Performance_Azure Sql Database - Fatal编程技术网

Performance SQL Azure性能问题

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的性能

我们正在考虑从具有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行

这是我用来测试的循环:

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。