为什么我的Azure SQL Server这么慢?


10

当前,我们有一个功能很差的虚拟机,并建议迁移到具有更好规格的Azure VM。问题是,即使Azure VM具有更高的规格,它也比原始VM慢得多。

原始服务器是具有2GB内存的2核VM,它也是Web服务器。它正在运行Microsoft SQL Server Web Edition 2008 R2,并且由于该服务器还用于其他用途,因此我们不得不将SQL Server中的最大服务器内存限制为512MB

新服务器是具有7GB内存的4核VM,仅是数据库服务器。它正在运行Microsoft SQL Server Standard Edition 2008 R2,并且我们没有限制SQL Server可以使用的内存量。

这是在镜像环境中设置的两台服务器之一,但是我正在运行测试的数据库未镜像。目前,该服务器上的其他数据库通信量不大(实际上,在我运行这些测试时,活动监视器未显示其他DB上的活动)。

我确实意识到Azure VM的一个问题是硬盘驱动器是一种网络资源,因此这将成为速度下降的根源,但是即使IO统计数据中显示了0次物理读取,它仍然会变慢。

我已在Azure VM 上遵循此页面上的调优建议,包括剥离磁盘(每个驱动器两个磁盘)并将日志和数据文件放在单独的驱动器上。

我唯一没有做的事情就是启用页面压缩,限制数据库的自动增长以及将SQL Server错误日志和跟踪文件目录移动到数据磁盘。我也没有在旧服务器上做到这一点。

旧服务器没有完成任何调优,并且日志和数据文件位于未分割的同一驱动器上。

当前服务器上的数据库为65 GB(45个数据和20个日志),这太大了,无法传输到新服务器,因此我正在较小的DB(6个数据和13.5日志)上进行测试

这是旧服务器上的结果,CPU time = 1311 ms, elapsed time = 1057 ms.新服务器上CPU time = 1281 ms, elapsed time = 2525 ms. 的结果是。这只是一次运行,但是结果代表了我通常看到的内容。

新服务器的持续时间似乎比CPU时间长得多。这是一个问题吗,我可以做些什么来找出造成此问题的原因吗?

我还能采取什么其他步骤来找出为什么该服务器看起来比旧服务器要快的情况下运行如此缓慢?


1
Maxdop 1?您是否比较了执行计划,在等待统计之前和之后进行统计并检查是否存在阻塞?
亚伦·伯特兰

1
多少个数据驱动器?使用标准页面Blob存储,每个驱动器被限制为基本层为300 IOPS或标准层为500 IOS中的较小者,这远远小于本地旋转磁盘。必须拥有尽可能多的驱动器(vhd)以最大化IOPS和带宽。您可以使用Windows存储空间来避免需要在每个驱动器上创建单独的数据文件。
Dan Guzman 2015年

新服务器将4个VHD划分为两个驱动器,因此我有1000 IOPS的日志和1000 IOPS的数据。
史蒂夫·凯

由于限制,标准页面博客存储VHD仅提供约30MB /秒的带宽,因此总计仅为60MB /秒。考虑创建14个数据VHD,最高速度为420MB / sec,并在其中进行条带化。
丹·古兹曼

我只能有8个磁盘,因为它是A3实例,所以我必须升级到A4才能做到,这是价格的两倍。我认为这不是驱动器问题,因为最重要的测试是IO统计信息列出了0次物理读取。
史蒂夫·凯

Answers:


2

物有所值,我结束了将Azure中的VM从类型A更改为类型D,然后附加另一个磁盘并将TEMPDB移动到该磁盘。因此,我现在的最终VM是具有7 GB RAM和三个数据磁盘的D2 Standard,一个磁盘用于MDF文件,另一个磁盘用于LDF文件和新的TEMPDB磁盘。

我放弃了尝试用A3理解您提到的一些事情,而只是升级虚拟机。我什至从A2转到A3,尽管确实找到了一些改进,但最终还是改用了D2 VM。

在您声明的文档中,Microsoft建议使用D3 for Enterprise Edition或D2 for Web或Standard Edition,以及使用高级存储,以及本文开头的检查列表中的其他内容。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.