2010-05-26 3 views
2

SQL Server에는 쿼리 힌트를 사용할 수있는 옵션이 있습니다. 예를 들어인덱스가 힌트로 사용되었는지 확인

SELECT c.ContactID 
FROM Person.Contact c 
WITH (INDEX(AK_Contact_rowguid)) 

내가 사용하지 않는 인덱스를 제거하기의 과정에서, 그리고 난 인덱스가 쿼리 힌트로 사용 된 경우 확인하는 방법에 대한 갈 수 있는지 궁금 해서요. 아무도 내가 이것을 할 수있는 방법에 대한 제안을 가지고 있습니까?

건배, 좋은 질문, 그리고 내가 당신에게 쉽게 대답을 줄 수 있다고 생각하지 않습니다 조

+0

인덱스가 힌트 (ad-hoc SQL 문 포함)에서 사용되었는지 아니면 뷰/proc에서 사용되는지 여부를 묻는 중입니까? – JohnFx

+0

인덱스가 뷰/proc에서 사용되었는지 알고 싶습니다. 내 관심사는 뷰/proc에서 힌트로 사용되는 인덱스를 제거하면 DB app에 의해 호출 될 때 뷰/proc가 실패 할 것이고 결국 궁극적으로 최종 사용자가 예기치 않은 오류를 갖게된다는 것을 의미합니다. –

답변

0

. 그것이 나 였다면 Management Studio에서 전체 데이터베이스를 스크립팅하고 인덱스 이름에 대한 텍스트 검색을 수행했습니다. 필자는 모든 보고서와 소스 코드에서도 그렇게 할 것입니다.

나는 힌트가 procs 함수에 대한 sys.dependencies로가는 길을 찾지 못한다고 생각하지만, 그렇다고해도 잠재적으로 처리 할 수있는 임시 SQL을 가지고 있기 때문에 텍스트 검색 경로.

+0

전체 DB를 스크립팅하는 방법은 무엇입니까? SSMS에는 DB를 스크립팅하는 옵션이 있지만 이것은 DB 객체가 아닌 DB를위한 스크립트 만 생성합니다. –

+0

"스크립트 개체 ..."또는 "모든 개체 스크립트 ..."라고 생각합니다. –

+0

이 프로젝트를 보류했지만 여기 관심있는 사람은 SQL Server 2008 DB 스크립팅 링크입니다. http://www.kodyaz.com/articles/sql-server-script-database-by-sql-2008-script-wizard.aspx 나는 그것을 시도하지 않았지만 그것이 일. –

1

클라이언트 SQL에 대해서만 프로파일 러를 실행하거나 그렇지 않으면 sys.sql_modules을 검색 할 수 있습니다.

사용하지 않는 색인을 찾으려면 일반적으로 something based on dmvs을 사용하십시오. 이렇게하면 사용중인 인덱스가 유지되어야합니다.

관련 문제