2

현재 MSSQL 2005에서 저장 프로 시저로 실행중인 장기 실행 일치 작업의 속도를 높이고 확장하는 방법을 연구 중입니다. 일치하는 부분에는 여러 가지 잘못된 사례가 포함 된 여러 필드가 포함됩니다. 데이터베이스 외부의 대규모 데이터 세트까지 궁극적으로 확장하고 싶지만 몇 가지 단기 솔루션을 고려해야합니다.저장 프로 시저를 병렬 처리하면 클러스터의 성능이 향상됩니까?

어떻게 실행되는지 내부 구현에 대해 많이 알지 못한다면 마스터 프로 시저로 데이터 세트를 나눠서 프로세스를 병렬 프로 시저로 분할 할 수 있는지 궁금합니다. 작은 데이터 세트에서 작동하는 서브 프로 세스를 제거하십시오.

이렇게하면 클러스터 된 데이터베이스의 성능이 향상됩니까? MSSQL이 서브 노드를 클러스터 노드에 자동으로 그리고 현명하게 배포합니까?

java에서 master 프로세스를 사용하고 jdbc를 통해 작업자 프로 시저를 호출하는 것이 아마도 클러스터로드 밸런싱을 효과적으로 사용하는 것이 좋습니다. 유지 보수 가능성에 대한 논쟁을 제외하고 이것은 더 빠를 수 있습니까?

답변

2

SQL Server에 대한 클러스터링의 의미에 대한 근본적인 오해가 있습니다. 클러스터링은 SQL Server의 단일 인스턴스가 여러 상자의 리소스를 공유하는 것을 허용하지 않습니다. 클러스터링은 고 가용성 솔루션으로, 장애 발생시 한 상자의 기능을 다른 대기 상자로 전환 할 수 있습니다.

+0

무엇을 원하십니까? 오 와우, SQL Server 2005가로드 밸런싱을 수행했다고 생각했습니다. 그것은 내가 가정을하도록 가르쳐 줄 것입니다! – barrymac

+0

잘 클러스터링하면 프로세스가 병렬 처리되어 16 코어 상자의 성능이 향상됩니까? – barrymac

+0

아니요. 마스터 proc에서 서브 프로그램에 대한 개별 호출은 모두 동기식입니다. 다음 서브 프로 시저가 실행되기 전에 하나의 서브 프로 시저가 완료되기를 기다리는 중입니다. 발생할 것으로 예상되는 병렬화를 달성하지 못합니다. 쿼리를 작성하고 벤치 마크하고 적절하게 조정하지만 SQL 최적화 도구를 과소 평가하거나 능가하지 마십시오. –

관련 문제