2010-03-23 99 views
0

我有一个连接到oracle数据库的.net桌面应用程序。有时候,有非常明显的延误。使用Oracle.DataAccess连接到Oracle数据库时.net应用程序的延迟

我在代码上运行了一个跟踪,它总是在DataReader.Read()中。

我打开SQL跟踪,发现以下,这相当于我看到的拖延:

(2128) [23-MAR-2010 13:00:07:310] nsprecv: reading from transport... 
(2128) [23-MAR-2010 13:00:07:310] nttrd: entry 
(2128) [23-MAR-2010 13:00:24:655] nttrd: socket 676 had bytes read=2047 
(2128) [23-MAR-2010 13:00:24:655] nttrd: exit 
(2128) [23-MAR-2010 13:00:24:655] nsprecv: 2047 bytes from transport 

有大约14秒的停顿在那里。

我很确定代码中没有问题,但不知道下一步要看哪里。有没有人可以解释发生了什么的oracle跟踪经验?

+0

你的数据库是什么样的?有大量记录吗?它是否正确索引? – Aaron 2010-03-23 16:12:09

+0

我很确定这不是数据库问题。但是,是的,它已经被至少2位DBA审查过了。 – chris 2010-03-23 17:28:43

回答

0

你跟踪了你的网络吗?如果你的网络有问题,你可以运行这个。

+0

据网络人士介绍,这不是网络问题。从命令行sqlplus似乎工作正常。 – chris 2010-04-07 19:19:29

+0

当您的应用程序运行时,您是否尝试过进行网络跟踪?查看其输出。 如果您没有看到网络问题,那么我会在堆栈底部添加一个断点并检查它是否写入套接字。我会用Windbg来设置一个断点和调试。 如果您在设置断点时遇到问题,请回复。 – Naveen 2010-04-07 20:14:29

相关问题