답변:
서버를 다시 시작하는 것은 아마도 성능에 가장 해로운 요소 중 하나 일 것입니다. 즉, 데이터에 대한 콜드 캐시, 쿼리 계획에 대한 콜드 캐시 및 모든 SQL Server 내부 캐시도 프로세스에서 제거됩니다. 운영 통계 DMV에서 수집 된 모든 통계를 버림으로써 무언가를 성공적으로 조사 할 가능성을 줄입니다.
이 관행을 뒷받침하는 공식적인 지침은 없습니다. 나는 어떤 좋은 관행에서도 잘 알려져 있습니다. 하지마
다른 답변은 훌륭하지만 Windows의 파일 캐시와 같은 중요한 부분이 누락되었습니다.
64 비트 Windows에서는 Windows가 파일을 캐시하는 데 사용하는 메모리 양에 제한이 없습니다. Windows는 시스템의 메모리가 완전히 고갈 될 수 있으며이 시점에서 디스크로 교체를 시작합니다. 몇 곳에서 문서화되었습니다.
SQL Server를 다시 시작하면 SQL이 메모리를 강제로 포기하여 Windows의 성능이 향상되고 페이징이 일시적으로 중지됩니다. 거의 제로에 가까운 메모리를 사용하면 SQL이 다시 시작되고 점차 증가하며, 메모리가 부족하면 다시 시작하면 일시적으로 도움이됩니다. 전체 OS를 다시 시작하면 Windows의 파일 캐시 사용이 강제로 중단됩니다.
실제 수정 사항 : Windows 서버에서 파일 복사를 중지하거나 위의 블로그 게시물에 설명 된대로 동적 파일 캐시 서비스와 함께 사용중인 파일 캐시의 양을 제한하십시오.
쿼리 속도를 높이면 매개 변수 스니핑 이 관련 될 수 있습니다. 폐기 계획이 캐시되어 부적절한 후속 호출에 적용되는 경우 재부팅의 기적은 공통 / 정확한 계획을 캐시 할 수있게합니다. 이 경우 다른 사람이 지적한 것처럼 동작을 수정하는 더 좋은 방법이 무한히 있습니다. 그러나 상자 재부팅을 중지 할 때까지 근본 원인 분석을 수행 할 방법이 없습니다.
서비스 속성을 변경하거나 즉시 적용 할 시작 추적을 설정하지 않으면 SQL Server를 다시 시작하지 않아야합니다.
@RemusRusanu가 많은 요점을 언급했듯이 많은 캐시를 지우고 SQL Server에서 불필요한 시작 작업을 많이 수행합니다. .
이 서버는 전용 SQL Server / 데이터베이스 서버가 아닌 것 같습니다. 프로덕션 데이터베이스 서버에는 데이터베이스 서버가되는 단 하나의 목적이 있어야합니다. 이 경우 OS에 충분한 메모리와 리소스를 따로두고 다른 모든 것을 SQL Server에 제공합니다. 이로 인해 다른 응용 프로그램이나 서버 역할이 고갈되지 않습니다.
모든 일을 올바르게하고 있다면 MSSQL 서버를 재부팅 / 재시작 할 필요가 없다는 정서에 동의합니다.
나에게 이것은 모든 사람이 유능하고 어떤 것을 고칠 수있는 시나리오에 적용됩니다.
저는 DBA가 아닙니다. 나는 소프트웨어 아키텍트 처음부터 전체 데이터베이스 스키마를 구축하고, 포함이의 일부입니다 불행하게도 , 나는 절대적 것을 제 3 자 데이터베이스 작업하지 NO 를 통해 제어 할 수 있습니다.
주요 타사 데이터베이스 중 하나를 만들고 유지 관리 한 사람들은 거의 기능을 수행하지 못했습니다.
내가 또한 보안 전문가 나 네트워크 엔지니어가 아니라고 언급 했습니까?
나에게 질문은 다음과 같이된다 : 3 개월마다 SQL Server를 더 자주 재시작해야 하는가?
추가 성능을 약속하기 위해 다시 시작하는 것은 비가 오는 춤과 같습니다.
어쩌면 오지 않을지 모르지만 비가 오게 된 원인을 확실히 알지 못할 것입니다.
나는 당신이 말하는 것과하지 마십시오 문제를 해결하거나 장애 조치를 확인하기 위해 다시 시작이 필요하지 않습니다,하지만 난 할 무작위로 발생하는 알 수없는 성능 문제를 유지하기 위해 일정을 재시작에 문제가 있습니다.
만 당신이 매주을 재부팅하거나 두가 작동 유지하는 유일한 방법이 될 것으로 보인다 불량 타사 데이터베이스를 관리하고이 수정에 허용되지 않습니다 또는 만지지 경우 이에 대한 예외입니다.
그럼에도 불구하고 수정 사항을 찾아서 소유자와 공유하고 해결 될 때까지 지옥을 제기해야합니다.