sp_statistics (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. Некоторые СУБД поддерживают имена таблиц из трех частей (квалификатор**.владелец.**имя). В 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 на схему.
См. также