我们的数据库体系结构由两台Sql Server 2005服务器组成,每台服务器都具有相同数据库结构的实例:一台用于所有读取,一台用于所有写入。我们使用事务复制来使读取的数据库保持最新。

这两个服务器的规格确实很高(写服务器具有32GB的RAM),并且通过光纤网络连接。

在决定这种体系结构时,我们被认为可以将数据复制到读取服务器的延迟大约为几毫秒(显然取决于负载)。实际上,即使在最简单的情况下,我们也看到大约2-5秒的延迟,这是不令人满意的。在最简单的情况下,我的意思是更新写入数据库上单个表中单个行中的单个值,并查看在读取数据库中观察新值需要多长时间。

我们应该考虑哪些因素来实现低于1秒的延迟?这甚至可以实现吗?

另外,我们应该考虑使用其他复制模式吗?数据和日志文件位置的最佳做法是什么?

编辑

感谢所有人的建议和见解-我认为我们遇到的等待时间很正常;我们的数据库托管公司误导了预期的延迟时间!

我们正在使用this MSDN article底部附近(在“扩展数据库”标题下)所述的技术,但未能正确处理此警告:



现在,我们正在考虑对缓存机制进行更改,以在数据项被视为“ Volatile ”时强制执行对写数据库的读取。

最佳答案

不会。即使使用快速的硬件,使用SQL Server事务复制也很难达到1秒以下的延迟时间。

如果您可以获得1-5秒的延迟,那么您做得很好。

here:

07-27 13:25