以前配置的win2008+apache+mysql用oracle客户端读取远程oracle数据库,当第一次访问网站首页时,一般都会是30秒超时。我研究了代码,发现就是oci_connect()这个函数在读取的时候,特别慢,我在php官方网站,看到这样的一句话:
character_set
使用 Oracle 客户端库来确定字符集。字符集不需要与数据库的字符集相匹配。如果不匹配,Oracle 会尽可能地将数据从数据库字符集进行转换。因为依赖于字符集,可能不能给出可用的结果。转换也增加一些时间开销。
如果不指定,Oracle 客户端用 NLS_LANG
环境变量来决定字符集。
传递此参数可减少连接时间。
针对这个,我在系统变量中,加入了TNS_ADMIN D:\oracle\product\10.2.0\db_1\network\ADMIN
NLS_LANG SIMPLIFIED CHINESE_CHINA.ZHS16GBK
加入之后,当我重启服务器再次访问首页的时候,页面执行时间只有5秒多了。
但是就是这5秒多,也是时间太长,我也不知道怎么设置,所以还在研究当中。
en → zh
TNS_ADMIND