我在测试数据库时候,发现这么一个问题。
我在客户端机器上 通过alter session set sql_trace=true;
然后执行一句sql,比如 select * from table_a; 在udump下无法生成trace文件。
如果我在数据库服务器端,去这么这行,ok ,一切正常。请问为什么?我的数据库,如果在客户端,通过plsql或者sql-plus去执行一条语句,发现多次执行后,总会能遇到一次速度慢。5 6次出现一次的频率,而在服务器端,做测试没有问题。所以去做了sql_trace,发现了上面的情况。为了排除网路的问题,我把机器的防火墙去掉,同样放在一台千兆交换机上,测试,还是有这个问题。
如果从服务端,去连接客户端的测试数据库,反而没有问题,从而觉得交换机也应该没有问题。那位高手,同仁,遇到过类似问题?请不吝指教,多谢! 

解决方案 »

  1.   

    我的数据库,如果在客户端,通过plsql或者sql-plus去执行一条语句,发现多次执行后,总会能遇到一次速度慢。5 6次出现一次的频率,而在服务器端,做测试没有问题。所以去做了sql_trace,发现了上面的情况。这样的话去检查是否执行了一次硬解析,做TRACE得到结果了?你看看进程的ID 多少,没有在服务器端做过TRACE,不过在客户端做TRACE的时候,只有新的TRACE切换TRACE的时候,上次的TRACE才会在目录下显示,就是说会滞后一个SESSION ID
      

  2.   

    我多次执行过sql_trace,在测试库上是成功的,而连接正是运营库,就不行,在测试库上测试不存在滞后。
      

  3.   

    不能生成SQL_TRACE的问题已经解决,是连接类型的问题,如果设置为专用服务器就OK了。