저는보고를 위해 사용 된 약 75 개의 저장 프로 시저 (다른 누군가가 작성한)의 성능을 향상시켜야하는 상황에 처해 있습니다. 내 솔루션의 첫 번째 부분은 대량의보고에 사용될 약 6 개의 비정규 화 테이블을 작성하는 것이 었습니다. 이제 테이블을 만들었으므로 저장된 procs의 성능을 최대로 향상시키기 위해 Indexes를 결정해야하는 다소 어려운 작업이 있습니다.어떤 색인을 작성해야하는지 식별하기위한 제안 사항은 무엇입니까?
인덱스에 어떤 열을 포함시키는 것이 바람직한 지 알고 싶다면 궁금한 점이 있습니까? 프로필러/DTA를 사용하거나 인기있는 열을 알아 내기 위해 아래와 같은 쿼리를 사용하는 것을 고려했습니다.
SELECT name, Count(so.name) as hits, so.xtype
from syscomments as sc
INNER JOIN sysobjects so ON sc.id=so.id
WHERE sc.text like '%ColumnNamme%'
AND xtype = 'P'
Group by name,so.xtype
ORDER BY hits desc
이 75 개의 procs을 수동으로 조사 할 필요가없는 아이디어가 있으면 알려주십시오.
또한 삽입은이 DB에서만 하루에 한 번 수행되므로 삽입 성능은 큰 문제가되지 않습니다.
그래, 내가 생각하고있는 옵션 중 하나이다. 나는 많은 사람들로부터이 방법으로 인덱스를 생성해서는 안된다는 말을 들었다. –
나는 꽤 많은 양의 튜닝을했는데 이것은 큰 성공을 거두었 다. 프로파일 러에서 모든 종류의 유용한 정보, 특히 CPU 및 디스크 IO 용도를 얻을 수 있습니다. 그러면 어떤 SP가 가장 느린 지 (또는 적어도 튜닝에서 가장 많은 이점을 얻을 수있는 SP) 표시됩니다. 그런 다음 열어 놓은 쿼리를 열어보고 쿼리 계획을 살펴볼 수 있습니다. 그러나 SQL 쿼리 계획을 실제로 이해하는 사람이 있습니까? – MrTelly
대부분의 사람들은 profiler/dta를 사용하여 내가 필요한 색인을 얻는 것이 좋다고 생각하는 것 같습니다. 몇 시간 동안 프로덕션 서버에서 프로파일 러를 실행하면 어떤 문제가 발생할 수 있습니까? –