Запрос для проверки индексации и ее типов - PullRequest
0 голосов
/ 07 декабря 2010

Существует ли какой-либо запрос, с помощью которого мы можем получить список таблиц в выбранной базе данных с информацией о том, выполняется ли индексация в том или ином случае, а затем, если это сделано, какого типа: кластеризовано, не кластеризовано

Спасибозаранее !!

Ответы [ 3 ]

1 голос
/ 07 декабря 2010

Как насчет чего-то вроде

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' 
0 голосов
/ 07 декабря 2010

В C # можно использовать SMO :

Server server = new Server(@".\SQLEXPRESS");
Database db = server.Databases["DBName"];
foreach(Table table in db.Tables)
{
     foreach (Index index in table.Indexes)
     {
     }
}
0 голосов
/ 07 декабря 2010

В приведенном ниже запросе будут перечислены только пользовательские таблицы, а также таблицы без индексов. Таблицы без индексов будут иметь NULL в столбце index_name.

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'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...