어제 SQL Server 데이터베이스에 문제가 없었습니다. 오늘은 거의 사용할 수 없습니다. 때렸을 때에 따라 5에서 20 사이의 속도로 느려집니다.
야간로드 프로세스에서 일부 데이터가 서버에 추가되었지만 데이터베이스에 큰 영향을 미치는 볼륨과 같은 것은 없습니다. 약 50,000 개의 일반 텍스트 레코드 (XML 또는 기타 frippery 없음).
서버는 오늘 아침에 다시 부팅하기 전에 패치되었습니다. 그러나 패치 된 다른 데이터베이스 서버는 다르게 동작하지 않습니다.
리소스 모니터는 디스크 IO에 결함이 있다고 제안하는 것 같습니다. 실제로 데이터베이스에 별다른 문제가없는 경우에도 .mdf 파일에서 용량의 거의 100 %로 실행 중입니다. Templog.ldf에 대한 액세스도 상당히 높습니다.
여기에는 전문가 DBA (우리는 다양한 SQL 기술을 보유한 모든 개발자)가 없으며, 발생한 상황에 당황합니다. sp_updatestats를 실행하고 큰 인덱스 중 일부를 다른 디스크로 이동했지만 아무 소용이 없었습니다.
패치와 관련이 있다고 생각합니다. 너무 많은 부수적 인 것 같습니다. 동료는 데이터로드로 인해 mdf의 크기가 실행 계획이 비효율적으로되는 지점까지 증가했다고 확신합니다.
지구상에서 무엇이 원인입니까? 우리는 어떻게 알 수 있으며, 그것을 고치기 위해 무엇을 할 수 있습니까?
편집하다:
사용 sp_WhoIsActive하면 평범한 것이 없습니다. 현재 다른 인덱스를 이동하려고하는 동료의 sproc 사용 및 일부 명령을 등록합니다. 아마도 지금 DB를 유지하고 있지만 이전과 마찬가지로 제대로 실행 중이었습니다.
SQL Server 2008 R2의 표준 버전입니다. SELECT @@VERSION제공합니다 :
Microsoft SQL Server 2008 R2 (SP2)-10.50.4033.0 (X64)
2014 년 7 월 9 일 16:04:25
저작권 (c) Windows NT 6.1 (빌드 7601 : 서비스 팩 1)의 Microsoft Corporation Standard Edition (64 비트) (하이퍼 바이저 )
서버에는 72GB의 RAM과 3 개의 쿼드 코어 2GHz 프로세서가 있습니다.
패치는 Windows에만 적용되었습니다. 패치 이외의 변경 사항은 없습니다.
선택된 설정 :
_id name value minimum maximum value_in_use description is_dynamic is_advanced
1540 min memory per query (KB) 1024 512 2147483647 1024 minimum memory per query (kBytes) 1 1
1541 query wait (s) -1 -1 2147483647 -1 maximum time to wait for query memory (s) 1 1
1543 min server memory (MB) 0 0 2147483647 16 Minimum size of server memory (MB) 1 1
1544 max server memory (MB) 65536 16 2147483647 65536 Maximum size of server memory (MB) 1 1
업데이트 : 인덱스와 테이블을 다른 디스크 파티션으로 옮기는 것이 개선되고있는 것 같습니다. 나는 우리가 어떻게 그렇게 급격한 결과로 갑자기 티핑 포인트에 도달 할 수 있었는지에 대해 여전히 혼란 스럽다.
SELECT * FROM sys.configurations;-당신은 value, value_in_use같은 것을 원합니다 max server memory (MB). 또한 빌드 번호 SELECT @@VERSION;는 하이퍼 바이저에 있는지 여부와 어제 이후 (또는 마지막으로 SQL Server를 다시 시작한 이후) 호스트에서 변경된 사항이있는 경우에도 유용합니다.