2010-07-02 2 views
2

응용 프로그램에서 모든 SQL 연결이 제대로 닫히고 또한 사용자가 연결을 닫을 때 여전히 SQL 프로세스 메모리가 RAM에 약간의 시간이 지나면 응용 프로그램이 느려집니다.여러 사용자 로그인 후 어느 정도 시간이 지난 후 ASP.Net C# 응용 프로그램이 느림

+1

불확실한 질문입니다.당신은 아마도 인증 된 사용자의 코드에 문제가있을 것입니다. – Aristos

+0

나는 분명히 문제를 이해하지 못한다고 생각합니다. – Shrik

답변

0

기본 SqlMembership 공급자를 사용하고 있습니까? 아니면 뭔가 혼자서 공예품을 만들었습니까? 옵션 2 인 경우 코드를 프로파일 링하고 스트레스 테스트를 시작하는 것이 좋습니다. 또한 SQL 프로파일 러를 사용하여 데이터베이스로 전송되는 내용을 확인할 수도 있습니다. sp_lock 또는 최신 sys.dm_tran_lock을 사용하여 어딘가에 행 잠금이 있는지 확인할 수도 있습니다.

같은 서버에서 실행중인 다른 프로세스가있어서 SQL Server가 램이 제대로 작동하지 않을 수 있습니까? Sysinternals에는이를 확인하는 데 유용한 도구가 있습니다.

+0

예, SQL 프로필러가 기본 SqlMembership 공급자를 사용하여 데이터베이스에 전송되는 내용을 볼 수 있습니다. 또한 탐험 문제에 우리는 SQL 서버에 의해 램 사용에 메모리가 릴리스되지 않습니다 따라서 응용 프로그램이 느려집니다 통지. 그러나 우리는 왜 이런 일이 일어나고 어떻게 극복 할 수 있는지 알지 못합니다. – Shrik

0

이 질문은 애매합니다. SQL Server 기반 공급자를 사용하는 응용 프로그램 로그인 또는 실제 데이터베이스 서버 자체에 대한 로그인 (Management Studio 등을 통해)에 대해 이야기하고 있습니까?

+0

정확히는 데이터베이스 연결이나 에일에 대한 문제를 실제로 발견 할 수 없습니다. \t \t SQL Server와 올바르게 연결하기 모든 사용자에 대한 연결 풀을 구현합니다. 연결 풀에서 별도의 연결을 설정하고 로그 아웃하는 동안 닫습니다. 문제가 계속 발생합니다. – Shrik

1

@ Shrik : SQL Server는 클래스 A 메모리 사용자입니다. 기본적으로 잡을 수있는 모든 메모리를 사용하도록 설정됩니다. 실제로 디스크에서 실제 메모리로 데이터를 이동할 것이므로이 데이터에 대한 향후 액세스가 훨씬 빨라질 것입니다.

SQL Server 서비스가 자체 상자에있을 때 - 그다지 문제는 아닙니다. 그러나 다른 응용 프로그램이이 상자에서 실행하려고하면 심각한 자원 병목 현상이 발생합니다. 이 시나리오는 내가 토론 한 내용들 사이에서 읽고있는 내용입니다.

SQL 상자에서 응용 프로그램을 실행하고 SQL Server가 '할 일'을 시작할 때마다 성능이 저하되는 경우 다음 중 하나를 수행하십시오. SQL의 메모리 수를 제한하십시오 (좋지는 않음). SQL 서버 자체 박스.

SQL 서버가 이미 자체 상자에있는 경우 'slowness'가 발생한 곳을 구별하기위한 첫 번째 위치는 SQL의 & 응용 프로그램에서 일반적인 '느린'쿼리/문을 실행하는 것입니다. SSMS를 통한 서버. 그래서 아주 하이테크 아니, 알아,하지만 너무 말하고. 쿼리가 신속하고 SSMS를 통해 민첩한 경우 DBMS 만 남겨두고 앱 및 네트워크 실제/소프트 레이어에 집중합니다. 쿼리가 그렇게 좋지 않은 경우 SQL Server를 @ 찾습니다.

SQL Server의 경우 쿼리 성능이 좋지 않고 쿼리를 설명하는 방식이 응용 프로그램이 진행되면서 더 나 빠졌지 만 응용 프로그램을 다시 시작하면 성능이 향상됩니다. (btw, 응용 프로그램을 다시 시작하면 Sql Server가 문제를 해결하지 못하면 응용 프로그램 문제 일 수 있습니다).

언제나처럼 로그는 친구입니다! SQL Server가 말하는 것을보십시오. 예를 들어 앱이 SQL CLR을 많이 사용하게 될 수 있습니다. 어셈블리가 처음 호출되면 SLOOOOW입니다. 두 번째로, FAST. SQL Server는 메모리 공간을 관리하며 때때로 어셈블리를 메모리에서 밀어냅니다. 다음 번에 어셈블리를 호출합니다. 사용자의 경험은 무엇입니까? SLOOOOOW. SQL Server가 메모리에서 어셈블리를 푸시하는지 어디에서 볼 수 있습니까?

이 문제 해결 중 일부를 시도해보고 결과를 게시하면 누군가가 당신을 조금 도와 줄 수 있습니다. 기억하십시오 - 우리에게 줄 수있는 로그, 오류 메시지 또는 하드 데이터는 귀하의 질문에 대한 답변에 도움이 될 것입니다.

행운을 빈다.

관련 문제