옵티마이 저가 실행 시간을 최소화하고 기여하지 않아야하는 모든 시간을 할애 할 수 없다는 점을 감안할 때 때때로 실행 가능한 모든 실행 계획을 탐색하십시오.
필요한 모든 시간 (또는 특정 밀리 초)에 최적화 프로그램을 제공 할 수 있도록 이것이 재정의 될 수 있는지 궁금합니다 .
나는 이것을 필요로하지 않지만 (atm) 복잡한 쿼리가 단단한 루프에서 실행되고 최적의 계획을 세우고 미리 캐시하려는 시나리오를 상상할 수 있습니다.
물론 그것은 당신이 단단한 루프를 가지고 있기 때문에 쿼리를 다시 작성해야합니다.
이것은 호기심에서 더 많은 질문이며 때로는 단락 최적화와 전체 최적화 사이에 차이가 있는지 확인하는 것입니다.
추적 플래그 2301을 사용하여 옵티 마이저에 더 많은 시간을 제공 할 수있는 것으로 나타났습니다. 정확하게 요구 한 것은 아니지만 가깝습니다.
내가 찾은 최고의 정보는 Ian Jose의 SQL Server 2005 SP1의 쿼리 프로세서 모델링 확장에 있습니다.
이 추적 플래그를주의해서 사용하십시오! 그러나 더 나은 계획을 세울 때 유용 할 수 있습니다. 또한보십시오:
- Grant Fritchey의 "최적화 수준" 으로 태그가 지정된 기사 .
- Brent Ozar 가 SQL Server 2008로 업그레이드하기 전에…
- Microsoft 지원팀이 고성능 워크로드에서 실행할 때 SQL Server에 대한 튜닝 옵션 .
조인 순서에 대한 솔루션 공간이 기하 급수적으로 폭발하는 조인이 많은 쿼리에 대해 생각하고있었습니다. SQL Server가 사용하는 휴리스틱은 꽤 좋지만 더 많은 시간 (초 또는 분)이있는 경우 최적화 프로그램이 다른 순서를 제안하는지 궁금합니다.