我有一个固态硬盘,使用IOmeter测试,显示性能超过200MB / s。但是,当我从本地计算机运行任何SQL查询时,Windows资源监视器从不显示高于7MB /秒的磁盘IO。即使对于耗时超过2分钟的查询,这也适用。瓶颈仅来自SSD的7MB /秒是什么?
我在跑:
- Windows Server 2012标准版
- SQL Server 2008 R2
- 英特尔i7 3820
- 内存32GB
- Sandisk SSD
2
也许数据已经在RAM中并且不需要磁盘访问了?
—
gbn
@DeanMacGregor-您如何使用结果?如果在SSMS中尝试尝试丢弃结果该怎么办。这会改变什么吗?另外,您可以尝试在
—
马丁·史密斯
sys.dm_os_waiting_tasks
查询运行时查看它是否遇到其他等待类型。
@DeanMacGregor-因此,可以将其排除在等式之外,您可以将结果分配给标量变量(示例查询)。
—
马丁·史密斯
DECLARE @Name VARCHAR(10), @High int; SELECT @Name=name, @High = high FROM master..spt_values
。因此,不会将任何结果发送回客户端,但计划和IO仍将相同。
假设您正在解释ASYNC_NETWORK_IO,是在等待问题是否与网络有关?(通常)不是。正如@MartinSmith所建议的(两次)最有可能的是,SSMS或您使用的应用程序消耗的结果没有SQL提供结果的速度快。按照建议的任何一种方法来省略行的消耗,您将获得最大IO吞吐量的真实图景。
—
Mark Storey-Smith