如何提高SQL Server镜像性能?

(从stackoverflow转贴)

我已经安装了SQL服务器镜像,使用2个SQL Server 2005标准版本。 当应用程序受到压力时,响应时间增加10倍。 我已经指出了镜子,因为暂停镜子显示可接受的响应时间。

有哪些select可以实现更好的性能? 请注意,我使用的是标准版,所以卓越的高性能模式不可用。

服务器在同一个机架上,连接到千兆交换机。

以下是用于创build端点的代码:

CREATE ENDPOINT [Mirroring] AUTHORIZATION [sa] STATE=STARTED AS TCP (LISTENER_PORT = 5022, LISTENER_IP = ALL) FOR DATA_MIRRORING (ROLE = PARTNER, AUTHENTICATION = WINDOWS NEGOTIATE , ENCRYPTION = REQUIRED ALGORITHM RC4) 

原理和镜像之间的链接是否有足够的带宽来处理事务日志生成的原则?

你的日志文件是优化的吗? 看到这些链接:

http://www.sqlskills.com/BLOGS/KIMBERLY/post/8-Steps-to-better-Transaction-Log-throughput.aspx

http://sqlblog.com/blogs/linchi_shea/archive/2009/02/09/performance-impact-a-large-number-of-virtual-log-files-part-i.aspx

暂停镜子可能不会成为您麻烦的真正原因。 根据我的经验,使用同步镜只会使响应时间加倍。 如果您看到响应时间在负载较高的情况下变得更糟,则可能还有其他事情正在进行。

有几件事要考虑和尝试:

  • 检查服务器没有动力不足(CPU /内存)
  • 检查networking是不是瓶颈(通过直接连接2个SQL服务器并强制镜像stream量通过该直接链接)
  • 检查I / O是不是瓶颈(虽然这似乎不太可能给予10倍响应时间增加只有镜像)。 通常的东西适用:更好的硬件RAID /caching,单独的设备,…
  • 高性能模式是asynchronous的。 如果你没有问题,那么你可以使用复制而不是镜像。 (我忘了这个function的MS术语。)