2

我在同一个远程服务器上并排安装了一个 Microsoft SQL Server 2008 实例和 Oracle 10g 数据库,每个服务器都加载了完全相同的数据。

我编写了一个程序来计时一个简单的查询,该查询返回大约 10,000 条记录(SELECT * FROM TABLE WHERE X=X)。我通过这个测试看到的是,Oracle 的返回速度比 MSSQL 慢 4-12 倍。我已经在 LAN 连接上进行了测试,通过 VPN 远程使用 ODP.NET4、ODP.NET2,确保在 32 位操作系统上安装了正确的 32 位版本,对于 64 位也是如此。

我的结果总是一样的,因为 Oracle 总是比 SQL Server 实例慢很多倍。

我还在 SQL Developer 中尝试过相同的查询,并且该工具检索相同的记录集的速度要快得多。当我强制该工具检索所有记录时,它比 SQL Server 慢 20%,这至少在我的场景中是可以接受的。

任何帮助表示赞赏。我知道有几个类似的问题,但这些问题的答案并没有帮助解决问题。

谢谢

  • 从数据库服务器:3s (Oracle) vs 0.6s (SQL Server)
  • 从局域网的某个地方:22s (Oracle) vs 4s (SQL Server)
  • 从远程机器通过 vpn:54s (Oracle) vs 21s (SQL Developer) vs 13s (SQL Server)

附加问题:这是您在符合 ODP.NET + SQL Server 的应用程序中遇到的性能损失,还是我认为有问题是正确的?

4

1 回答 1

3

您是否在应用程序中设置了获取大小?如果是这样,您是否尝试过设置不同的提取大小并测量它如何影响经过的时间?我相信 SQL Developer 默认的 fetch 大小为 500(尽管我没有任何拉伸保证),因此您可以将其用作起点。

于 2012-11-14T21:47:07.590 回答