none
MS SQL Cluster Index가 없는 테이블 RRS feed

답변

  • 안녕하십니까? 김도남 님

    Microsoft TechNet Forum 사이트를 방문해 주셔서 감사합니다.

     

    문의 하신 “MS SQL Cluster Index가 없는 테이블에 대한 답변을 드리겠습니다.

     

    Step 1 : Cluster Index가 없는 테이블 찾기

     

    Index의 정보를 저장하는 테이블 sys.indexes와 각 객체의 정보를 저장하는 sys.objects에서 Cluister Index가 설정되어 있지 않은 테이블의 정보를 쿼리합니다.

     

    Select Top 1000 o.name, i.type_desc, o.type_desc, o.create_date from sys.indexes i

           Inner Join sys.objects o ON i.object_id = o.object_id

           Where o.type_desc = 'USER_TABLE' and i.type_desc = 'HEAP' ORder by o.name

     

    Step 2 : DB 마다 Cluster Index가 없는 테이블 찾기

     

    Sp_MSforeeachDB 저장 프로시저를 이용해서 각 Database에 쿼리문을 실행할 수 있습니다. 이 쿼리를 이용해서 현재 Cluster Index를 사용하지 않는 모든 테이블의 정보를 제공할 수 있씁니다.

     

    Exec sp_MSforeachdb 'USE [?] Select ''?'' AS DatabaseName, Count(o.name) As Count From sys.indexes i

           Inner Join sys.objects o On i.object_id = o.object_id

           Where o.type_desc = ''USER_Table'' And i.type_desc = ''HEAP'''



    참고 자료

     

    TOP(Transact-SQL)

    http://technet.microsoft.com/ko-kr/library/ms189463.aspx

     

    Transact-SQL Joins

    http://msdn.microsoft.com/en-us/library/aa196318(v=sql.80).aspx

     

    sys.sysindexes (Transact-SQL)

    http://msdn.microsoft.com/en-us/library/ms190283.aspx

     

    sys.sysobjects (Transact-SQL)

    http://msdn.microsoft.com/en-us/library/aa196318(v=sql.80).aspx

     

    제가 문제에 대해 더 알아야 할 것이 있다면 응답 주시면 감사하겠습니다.

    제시해 드린 답변이 도움이 되었기를 바랍니다.

    • 답변으로 표시됨 김도남 2011년 11월 8일 화요일 오전 6:44
    2011년 11월 7일 월요일 오전 9:27
    중재자