인덱싱의 수행 여부와 해당 유형의 수행 여부에 대한 정보가 포함 된 선택된 데이터베이스의 테이블 목록을 얻을 수있는 쿼리가 있습니까? 클러스터 된 비 클러스터형인덱싱 및 해당 형식을 확인하는 쿼리
미리 감사드립니다 !!
인덱싱의 수행 여부와 해당 유형의 수행 여부에 대한 정보가 포함 된 선택된 데이터베이스의 테이블 목록을 얻을 수있는 쿼리가 있습니까? 클러스터 된 비 클러스터형인덱싱 및 해당 형식을 확인하는 쿼리
미리 감사드립니다 !!
어떻게
SELECT
i.name as IndexName,
o.name as TableName,
i.type_desc
FROM sys.indexes i
join sys.objects o on i.object_id = o.object_id
where i.[type] = 2
and i.is_unique = 0
and i.is_primary_key = 0
and o.[type] = 'U'
같은 대해 아래의 쿼리는 목록의 사용자 테이블은 인덱스없이 테이블을 나열합니다. 인덱스가없는 테이블은 index_name
열에 NULL
이됩니다.
SELECT
sys.objects.name table_name,
sys.indexes.name index_name,
sys.indexes.type_desc index_type
FROM sys.objects LEFT JOIN
sys.indexes
ON sys.objects.object_id = sys.indexes.object_id
where sys.objects.type_desc = 'USER_TABLE'
나는'sys.objects'의 타입을 정의하는 대신'sys.tables'에 참여할 것입니다 ... –
C#에서 사용할 수 SMO :
Server server = new Server(@".\SQLEXPRESS");
Database db = server.Databases["DBName"];
foreach(Table table in db.Tables)
{
foreach (Index index in table.Indexes)
{
}
}
내가 대신`sys.objects`의 유형을 정의 할 필요없이 sys.tables``에 가입 할
....... –