我们遇到了使用 40 个绑定(bind)变量作为列值的慢速插入语句的问题。它在通过 WAN 链接运行时会运行几秒钟,我们无法确定问题,直到我们使用网络分析器。每次执行这个准备好的查询都需要在客户端和服务器之间交换超过 120 个数据包才能完成。我们可以做些什么来更有效地执行它?
当我使用来自同一主机的实际参数(没有绑定(bind)变量)运行相同的插入时,它会在数十毫秒内完成。参数没有什么特别之处,只有简短的 varchars 和数字。
我们正在使用带有 ODAC 的 Delphi 6,我们尝试了各种版本的 ODAC 和 Oracle 客户端,但均无济于事。在服务器端,我们尝试了 Oracle 10 和 11。
最佳答案
TNS
不适合在 WAN
上正常工作.
如果可能,重写您的应用程序以使用其他网络层,例如 HTTP
, 这样效率更高。
您可以使用 Oracle HTTP Server
, 例如。
关于在 WAN 上具有许多绑定(bind)变量的 oracle 插入非常慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/915922/