2010-06-30 4 views
0

내 개발 컴퓨터에서 실행하는 데 오랜 시간이 걸리는 데이터 변환 쿼리가 있습니다 (Core i7 920은 3.9GHz에서 실행되고 Windows Server 2003 x86에서는 12GB의 RAM 및 2 개의 Velociraptors 300GB iN RAID0 포함).SQL Server가 더 많은 CPU를 사용하도록하려면 어떻게해야합니까?

작업 관리자를 보면 CPU가 약 26 %, 세 번째 (4 개) 코어가 가장 활성 상태입니다.

프로덕션 환경이 아니기 때문에 더 많은 CPU를 사용하여 문제가 없다고 SQL Server 2008에 알리는 방법이 있습니까? 아니면 내 쿼리를 어떤 이유로 병렬 처리 할 수 ​​없기 때문입니까? SQL Server가 쿼리를 더 작은 조각으로 잘라 내고 여러 스레드에서 실행하여 각 코어에서 가져올 수 있으면 안됩니까?

감사합니다.

+0

쿼리 세부 정보와 쿼리하는 테이블에 대한 일부 데이터를 게시 할 수 있습니까? 테이블 크기, 정의 된 인덱스 등의 항목 ... – Oded

+0

http://stackoverflow.com/questions/3038067/get-non-overlapping-dates-ranges-for-prices-history-data/3038275#3038275 <더 많거나 내가 사용하는 쿼리가 적습니다. 소스 테이블은 약 150 000 행입니다. –

답변

2

쿼리를 최적화하십시오. 문제는 SQL Server가 아닌 문제와 관련이 있습니다.

+0

불행히도 이전 질문에 기반하여 최적화 된 것은 아닙니다. –

+0

@Kharlos Dominguez - 모든 테이블이 제대로 인덱싱됩니까? 그리고 SQL을 사용하여 장기 실행 작업을 수행하지 않고 있습니까? – Oded

+0

@Kharlos Dominguez 여러 스레드로 분할되도록 쿼리를 최적화해야합니다. 실제로는이를 최적화하지 않을 수도 있습니다. 질의와 실행 계획을 보지 않고 더 말할 수는 없습니다. –

0

구성이나 MAXDOP 매개 변수 설정을 통해 특정 수의 CPU 만 사용하도록 특별히 제한하지 않는 한 이미 괜찮다는 것을 이미 알고 있습니다.

하드 드라이브 나 메모리에 제약을받는 것처럼 들릴 수 있습니다.

Windows의 x86 버전 (및 확장 SQL 서버)을 실행 중이므로 RAM이 약 3GB로 제한 될 수 있습니다. PAE (실제 주소 확장) 기능이 켜져 있어도 x64 OS와 SQL Server를 처음 사용하는 경우보다 느린 세상이 될 것입니다.

다른 말로하면 x64의 장점을 모두 활용하기 위해 처음부터 다시 설치하는 것이 좋습니다.

+0

감사합니다. 그러나, 나는 많은 HDD 활동을 보지 않을 것이고 그 밖의 모든 것은 빨리 달린다 ... 나의 RAID 어레이는 200MB/s를 제공하고 나는 거의 정상적인 속도로 문제없이 다른 것들에 대해 작업 할 수있다. –

+0

그렇다면 SQL Server는 쿼리가 병렬 처리 가능한 방식에 따라 여러 프로세서 만 사용한다는 것도 알아야합니다. 쿼리가 2 또는 3 프로세서로만 분리 될 수 있다면 SQL Server가 사용할 것입니다. – NotMe

관련 문제