0

SQL Server와 같은 DBMS에서 실행되는 쿼리의 성능 (응답 시간)은 서버가 실행되는 시스템에서 어떤 일이 일어나고 있더라도 영향을받을 수 있습니까? 좀 더 구체적으로 말하면, 컴퓨터를 지속적으로 점검하고 청소하고 네트워크에서 수신 한 데이터를 처리하는 몇 가지 Windows 프로세스를 실행할 때 응답 시간이 증가 할 것으로 예상됩니까?SQL 서버 쿼리 응답 시간은 "외부"프로세스의 영향을 받습니까?

감사합니다.

답변

0

모든 프로그램의 네 가지 주요 리소스는 메모리, 프로세서, 디스크 공간 및 디스크 사용률입니다.

이들 각각을 차례로 살펴 보겠습니다. 사용 가능한 메모리는 SQL Server에서 잘 관리됩니다 (here 참조). 기본 동작은 일련의 메모리로 시작한 다음 필요에 따라 늘리는 것입니다. 쿼리로드가 변경되지 않으면 SQL Server가 최대 메모리 양을 초과하고 확장을 중지해야합니다. 쿼리로드가 시간이 지남에 따라 일관된 것처럼 들리므로 메모리가 큰 문제는 아닙니다. 또한 SQL 서버의 많은 구성은 다른 프로세서와의 간섭을 피하기 위해 메모리 크기를 수정합니다.

프로세싱 파워. 이것은 큰 것이 될 수 있습니다. SQL Server에는 처리 능력이 필요합니다. 프로세서는 다른 Windows 프로세스에서 사용할 수 있습니다. 이렇게하면 쿼리가 느려지므로 특히 I/O와 달리 처리되는 쿼리가 제한됩니다. 그러나 이는 다중 프로세서 시스템에서 완화 될 수 있습니다. 주어진 SQL Server 인스턴스에 특정 개수의 프로세서가 할당 될 수 있습니다. 나머지는 Windows 용으로 사용할 수 있습니다.

디스크 공간. 이것은 거의 영향을 미치지 않습니다. 일반적으로 필요한 디스크가 사용 가능하거나 그렇지 않은 경우 (그리고 실패 할 필요가있는 쿼리가 실패한 경우). 한 가지 예외는 임시 디스크 공간이며이 디스크 공간은 쿼리 실행 계획에 영향을 줄 수 있습니다. 임시 공간은 다른 프로세스와 불필요한 충돌을 피하기 위해 자체 드라이브에 배치되는 경우가 많습니다.

I/O 대역폭. SQL Server는 파일 시스템을 통해 디스크에 통신해야합니다. 이는 실제 성능 드래그 일 수 있으며 여러 수준에서 발생할 수 있습니다. 운영 체제 자체가 I/O 호출로 포화되어 데이터베이스 속도가 느려질 수 있습니다. CPU와 디스크 간의 네트워크가 포화되어 읽기 및 쓰기 속도가 느려질 수 있습니다. 디스크 시스템 자체는 다른 서버에서도 여러 동시 작업으로 인해 느려질 수 있습니다. 그리고 이것은 가상 환경에서 더욱 복잡해질 수 있습니다.

대답은 "예"입니다. Windows 프로세스는 SQL 쿼리의 성능에 영향을 미칠 수 있습니다. 내 생각에 그 영향은 프로세서를 먹거나 디스크 대역폭을 사용한다는 측면에서의 영향입니다.

+0

실제로 제어 할 수있는 유일한 리소스 인 메모리 사용량을 닦아냅니다. – Guffa

0

예, 데이터베이스 서버는 컴퓨터에서 실행되는 다른 것과 리소스를 공유하므로 리소스를 많이 사용하는 프로세스가 데이터베이스 성능에 눈에 띄게 영향을 줄 수 있습니다.

하나의 중요한 리소스는 메모리입니다. SQL Server는 사용 가능한 모든 사용 가능한 메모리를 기본적으로 사용합니다. 서버에서 다른 프로세스를 실행하는 경우 SQL Server의 메모리 사용을 제한하여 다른 프로세스의 공간을 허용하고 메모리 스와핑을 줄이기 위해 조금만 할당하도록해야합니다.