我正在开发基于Oracle数据库的产品的API,我尝试使用ruby-oci8 gem,但是我遇到了一个奇怪的问题 - OCI8.new非常慢,需要1,2-1, 5秒钟连接到数据库。ruby OCI8缓慢初始化
例如:
~ mmulev$ irb
2.1.1 :001 > require 'oci8'
=> true
2.1.1 :002 > def test
2.1.1 :003?> t0 = Time.now
2.1.1 :004?> OCI8.new('SCHEMA', 'STRONG_PASS', '//db_host:port/service_name')
2.1.1 :005?> Time.now - t0
2.1.1 :006?> end
=> :test
2.1.1 :007 > test
=> 1.217809
2.1.1 :008 >
在PHP(oci_new_connect)同样的事情需要大约0,1-0,2第二,建立连接,并退回处理程序。
除连接池外还有其他解决方案吗?
P.S.红宝石API代码是由method_profiler和基准异形,甲骨文N - 11克
您是否使用完全相同的PHP连接字符串?你的客户端上有多个'ORACLE_HOME'吗? – 2014-09-23 20:23:33
当然,使用[n-tier](http://en.wikipedia.org/wiki/Multitier_architecture)设计,并从ruby(或php)连接到您的中间层。当然,您的中间层可能需要一个连接池才能以良好的性能连接到您的数据库。 – 2014-09-24 00:25:16
@ frank-schmitt,连接字符串是一样的,ORACLE_HOME只有一个 – 2014-09-24 04:32:35