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


sp_statistics (Transact-SQL)

Возвращает список всех индексов и статистику для указанной таблицы или индексированного представления.

Применимо для следующих объектов: SQL Server (SQL Server 2008 по текущую версию), База данных SQL Windows Azure (С первоначального выпуска по текущий выпуск).

Значок ссылки на раздел Cинтаксические обозначения в 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 на схему.

См. также

Справочник

Хранимые процедуры каталога (Transact-SQL)

Системные хранимые процедуры (Transact-SQL)