我的笔记本电脑是HP Studio G3,配备16 GB RAM和Xeon E3-1505 v5 CPU以及512 GB NVMe Samsung SSD,因此它应该是一台非常快的机器。
就在最近,我被要求查看应用程序的性能,并将数据库和应用程序正式复制到我的笔记本电脑(Windows 10上的SQL Server 2016 Developer Edition)进行测试。
想象一下,当我发现它在我的机器上运行远比其他任何人都慢时,我感到惊讶。为了验证我的机器性能低下,我创建了一个简单的查询,它会插入大量的行,当然,在我的机器上运行它与办公室中其他速度较慢的机器一样,我的机器是最慢的(大约50秒),它如果行数增加会变得更糟。
这是我的(粗略的)粗略查询:
CREATE TABLE [PerfExample]
(
[ExampleId] [INT] NOT NULL IDENTITY(1, 1),
[Name] [NVARCHAR](MAX),
[Content] [NTEXT]
)
ALTER TABLE [PerfExample]
ADD CONSTRAINT [PK_PerfExample]
PRIMARY KEY CLUSTERED ([ExampleId])
DECLARE @id int
SELECT @id = 1
WHILE @id >= 1 and @id <= 10000
BEGIN
INSERT INTO [PerfExample]
VALUES ('Test', 'Test')
SELECT @id = @id + 1
END
SELECT * FROM [PerfExample]
DELETE FROM [PerfExample]
DROP TABLE [PerfExample]
因此,如果我将该循环值设置为小于1000左右,那么它的运行速度非常快,但是高于此值并且它似乎达到了一定程度,此时磁盘使用率达到100%,就好像内存耗尽一样。我注意到WRITELOG等待状态似乎很高。
我已将最大内存设置为适当大的值而没有效果。线程数设置为512。
任何人都可以提出问题的原因吗?