Поделиться через


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