SQL Server 2008 R2에서 데이터를 읽는 VB.NET으로 작성된 응용 프로그램이 있습니다. 로그인 할 때 사용자는 많은 데이터베이스 파일 (드롭 다운 목록에서 사용 가능) 중 하나를 선택한 다음 사용자 이름과 암호를 입력하여 로그인하십시오. 로그인하는 동안 응용 프로그램은 선택된 데이터베이스의 테이블에서 'strings'이라는 문자열을 읽고 Do While 루프는 응용 프로그램의 작업 환경을 만들기 위해 25-30 개의 변수에 값을 입력합니다.특정 데이터베이스에서 읽기가 지연됩니다.
Do While 루프의 시작과 끝 부분에 시간 추적을 넣었습니다. 데이터베이스 중 하나에서 26 초가 걸리며 다른 값은 0 초가 걸리는 것으로 나타났습니다. 밀리 초 단위로 추적).
역설적으로 26 초가 걸린 데이터베이스의 'strings'테이블에는 125 개의 행이 있고 0 초의 데이터베이스에는 159 개의 행이 있습니다. 명백하게 코드는 동일하며 데이터베이스 구조도 진정한 복제본입니다 (두 데이터베이스는 동일한 스크립트를 사용하여 생성되었습니다).
나는 모든 가능성을 생각했지만 사용자의 로그인 시간을 지연시키는 큰 차이가 있는지 확실하지 않습니다.
내가 이것을 알아낼 수있는 방법을 좀 알려 주실 수 있습니까?
감사합니다.
불행히도 서버는 동일합니다. 성능 문제가있는 데이터베이스가 원래 SQL Server 2005에 구축되었음을 알게되었습니다. 나중에 SQL Server 2005 설치가 SQL Server 2008 R2로 업그레이드되었습니다. 빠른 다른 데이터베이스는 SQL Server 2008 R2 자체에서 작성되었습니다. 이것이 문제의 원인이 될 수 있습니까? –
@PrashantGupta : 업그레이드 자체가 성능을 저하시키지 않을 가능성이 있습니다. 그러나 그것은 데이터베이스가 다소 오래된 것 같습니다. 그 안에있는 인덱스의 모양이 좋지 않을 수 있습니다. 색인 다시 작성 technet.microsoft.com/en-us/library/ms187874(v=sql.105).aspx를 참조하십시오. 적절한 서버 관리자에게 문의하여 데이터베이스 유지 관리를 수행하는 것이 유용 할 수 있습니다. – IvanH