sp_statistics (Transact-SQL)
Возвращает список всех индексов и статистику для указанной таблицы или индексированного представления.
Синтаксические обозначения в Transact-SQL
Синтаксис
sp_statistics [ @table_name = ] 'table_name'
[ , [ @table_owner = ] 'owner' ]
[ , [ @table_qualifier = ] 'qualifier' ]
[ , [ @index_name = ] 'index_name' ]
[ , [ @is_unique = ] 'is_unique' ]
[ , [ @accuracy = ] 'accuracy' ]
Аргументы
[ @table_name= ] 'table_name'
Указывает таблицу, используемую для возврата сведений о каталоге. Аргумент table_name имеет тип sysname и не имеет значения по умолчанию. Сопоставление по шаблону не поддерживается.[ @table_owner= ] 'owner'
Имя владельца таблицы, используемой для возврата сведений о каталоге. Аргумент table_owner имеет тип sysname и значение по умолчанию NULL. Сопоставление по шаблону не поддерживается. Если аргумент owner не задан, то применяются правила видимости таблиц по умолчанию базовой СУБД.В SQL Server, если текущий пользователь является владельцем таблицы с указанным именем, возвращаются индексы таблицы. Если аргумент owner не указан, а текущий пользователь не является владельцем таблицы с указанным name, эта процедура ищет таблицу с указанным name, владельцем которой является владелец базы данных. Если владелец существует, возвращаются индексы этой таблицы.
[ @table_qualifier= ] 'qualifier'
Имя квалификатора таблицы. Аргумент qualifier имеет тип sysname и значение по умолчанию NULL. Различные продукты СУБД поддерживают трехкомпонентные имена таблиц (qualifier**.owner.**name). В SQL Server этот аргумент представляет имя базы данных. В некоторых продуктах он представляет имя сервера среды базы данных таблицы.[ @index_name= ] 'index_name'
Имя индекса. Аргумент index_name имеет тип sysname и значение по умолчанию %. Поиск совпадений по шаблону поддерживается.[ @is_unique= ] 'is_unique'
Определяет, должны ли возвращаться только уникальные индексы (да, если установлено значение Y). Аргумент is_unique имеет тип char(1) и значение по умолчанию N.[ @accuracy= ] 'accuracy'
Уровень количества элементов и точность на страницах для статистики. Аргумент accuracy имеет тип char(1) и значение по умолчанию Q. Выберите E, чтобы обеспечить обновление статистики. Это гарантирует точность информации о количестве элементов и страницах.Значение E (SQL_ENSURE) — это указание драйверу безусловно запрашивать статистическую информацию.
Значение Q (SQL_QUICK) — это указание драйверу получать информацию о количестве элементов и страницах только в случае, если эта информация уже доступна на сервере. В этом случае драйвер не гарантирует актуальность значений. Приложения, написанные в соответствии со стандартом Open Group, всегда получают значение SQL_QUICK из драйверов, совместимых с ODBC 3.x.
Результирующие наборы
Имя столбца |
Тип данных |
Описание |
---|---|---|
TABLE_QUALIFIER |
sysname |
Имя квалификатора таблицы. Этот столбец может принимать значение NULL. |
TABLE_OWNER |
sysname |
Имя владельца таблицы. Этот столбец всегда возвращает значение. |
TABLE_NAME |
sysname |
Имя таблицы. Этот столбец всегда возвращает значение. |
NON_UNIQUE |
smallint |
NOT NULL 0 = уникальное 1 = неуникальное |
INDEX_QUALIFIER |
sysname |
Имя владельца индекса. В некоторых СУБД пользователям, не являющимся владельцами таблицы, разрешено создавать индексы. В SQL Server этот столбец всегда совпадает с TABLE_NAME. |
INDEX_NAME |
sysname |
Имя индекса. Этот столбец всегда возвращает значение. |
TYPE |
smallint |
Этот столбец всегда возвращает значение: 0 = статистика по таблице 1 = кластеризованный; 2 = хэшированный; 3 = некластеризованный. |
SEQ_IN_INDEX |
smallint |
Позиция столбца в индексе. |
COLUMN_NAME |
sysname |
Возвращается имя столбца для каждого столбца таблицы TABLE_NAME. Этот столбец всегда возвращает значение. |
COLLATION |
char(1) |
Порядок сортировки. Может быть: A = по возрастанию; D = по убыванию; NULL = неприменимо. |
CARDINALITY |
int |
Число строк в таблице или уникальных значений в индексе. |
PAGES |
int |
Число страниц для хранения индекса или таблицы. |
FILTER_CONDITION |
varchar(128) |
SQL Server не возвращает значение. |
Значения кодов возврата
Отсутствует
Замечания
Индексы в результирующем наборе появляются в порядке возрастания столбцов NON_UNIQUE, TYPE, INDEX_NAME и SEQ_IN_INDEX.
Кластеризованный индекс — это индекс, при котором физический порядок хранения данных таблицы соответствует последовательности индекса. Это соответствует кластеризованным индексам SQL Server.
Хешированный индекс обеспечивает поиск по полному совпадению или диапазону. Для поиска по шаблону он не используется.
Процедура sp_statistics эквивалентна функции SQLStatistics в ODBC. Возвращенные результаты сортируются по столбцам NON_UNIQUE, TYPE, INDEX_QUALIFIER, INDEX_NAME и SEQ_IN_INDEX. Дополнительные сведения см. в описании API-интерфейса ODBC.
Разрешения
Необходимо разрешение SELECT на схему.