2010-03-23 2 views
0

oracle 데이터베이스에 연결하는 .net 데스크탑 응용 프로그램이 있습니다. 때로는 눈에 띄는 지연이 있습니다.Oracle.DataAccess를 사용하여 oracle db에 연결할 때 .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 초간 정지했다가 거기에있다합니다.

저는 코드에 문제가 없지만 다음에 어디서 볼지 확신하지 못합니다. 어떤 일이 일어나고 있는지 설명 할 수있는 오라클 추적 경험이있는 사람이 있습니까?

+0

DB는 어떻게 생겼습니까? 많은 양의 기록이 있습니까? 제대로 색인이 생성 되었습니까? – Aaron

+0

저는 DB 문제가 아니라고 확신합니다. 하지만 네, 최소한 2 명의 DBA가 검토했습니다. – chris

답변

0

네트워크를 추적 해 보셨습니까? 네트워크에 문제가있는 경우이 문제를 해결할 수 있습니다.

+0

네트워크 담당자에 따르면 네트워크 문제가 아닙니다. 명령 줄에서 sqlplus가 정상적으로 작동하는 것 같습니다. – chris

+0

응용 프로그램이 실행 중일 때 네트워크 추적을 시도 했습니까? 그 결과를보기. 그리고 네트워크에 문제가없는 경우 스택 맨 아래에 중단 점을 추가하고 소켓에 쓰는지 확인합니다. Windbg를 사용하여 중단 점을 설정하고 디버그합니다. 중단 점 설정에 문제가있는 경우 응답하십시오. – Naveen

관련 문제