2009-08-19 8 views
1

내 응용 프로그램은 고전 ASP에서 개발되었지만 .NET에서 응용 프로그램을 마이그레이션 할 때 asp.net도 사용합니다. SQL 서버를 데이터베이스로 사용하고 Windows 서버 2003에서 호스팅합니다.SQL 서버 시간 초과

이제 응용 프로그램이 오랫동안 완벽하게 작동하지만 시간이 지나면 SQL Server에서 시간 초과 오류가 발생하고 요청을했다. SQL 서버 또는 IIS를 다시 시작하더라도 문제가 해결되지 않고 궁극적으로는 문제가 해결 될 때마다 서버를 다시 시작해야합니다.

어떤 문제가 발생했는지 알 수 있습니까? 피크닉 시간에 약 300 명의 사람들이이 사이트를 사용합니다.

어떤 문제가 발생했는지 알 수 있습니까? 피크닉 시간에 약 300 명의 사람들이이 사이트를 사용합니다. 나는 분명히 연결을 도처에서 닫고 있고, 각 페이지의 나의 끝 코드는 연결을 닫는다. 종료 페이지 전에 오류가 발생하면, expection 핸들러는 연결을 닫습니다. 그래서 연결을 닫는 것이 문제가되지 않을 것이라고 확신합니다. 그리고 SQL 로그를 보면 열린 연결이 없다는 것입니다. 우리 서버에는 SQL Server, IIS, iMail (메일 서버)이 하나만 있습니다. SQL Server를 다시 시작한 후에도 문제가 해결되지 않았습니다. Windows Server 만 다시 시작하면 성공했습니다. perfom에서 IO 사용은 상당히 높습니다. 제안이 있습니까? 당신이 코드를 사용하여 수행되면

감사합니다, 최소한

답변

1

정리가 제대로되어 있지 않은 관리되지 않는 리소스가있는 것처럼 들립니다. 우리는 그 자원이 무엇인지 정확하게 알기에 충분한 정보가 없기 때문에 우리가 할 수있는 것은 짐작할 수 있습니다.

내 첫 번째 본능은 데이터베이스 연결입니다. 단, 다시 시작하면 재시작하는 SQL Server가 문제를 해결해야합니다. 목록의 다음은 파일 핸들과 스레드입니다. 따라서 멀티 스레딩 작업이나 볼만한 파일 io를 추가로 수행하면됩니다. ASP.Net에서 using 문 (지시문 아님)이 친구임을 기억하십시오.

2

, 당신은 데이터베이스에 대한 연결을 닫는? 또한 연결 문자열은 어떻게 생겼습니까? 연결 풀을 사용합니까?

편집 : 귀하의 의견을 보았습니다. 대기중인 트랜잭션이 커밋 되나요?

0

첫째, 당신은

내 직감 반응은 당신이 폐쇄되지 않은 것입니다 그들은 등 열려있는 연결, 테이블 잠금, 실행 속도가 느린 쿼리의 수를 확인하실 수 있습니다 ... 당신의 DBA 얘기해야 연결 어딘가에 있거나 연결 풀이 너무 낮습니다.

0

정기적 인 데이터베이스 유지 보수를 수행하고 있습니까? 재 구축/인덱스 조각 모음, 통계 재 계산 (자동으로 수행하도록 설정하지 않은 경우) 거래 로그 크기 등을 확인하십시오.