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


sp_statistics (Transact-SQL)

Применимо: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure azure Synapse Analytics Analytics Platform System (PDW)

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

Соглашения о синтаксисе Transact-SQL

Синтаксис

sp_statistics
    [ @table_name = ] N'table_name'
    [ , [ @table_owner = ] N'table_owner' ]
    [ , [ @table_qualifier = ] N'table_qualifier' ]
    [ , [ @index_name = ] N'index_name' ]
    [ , [ @is_unique = ] 'is_unique' ]
    [ , [ @accuracy = ] 'accuracy' ]
[ ; ]

Примечание.

Этот синтаксис не поддерживается бессерверным пулом SQL в Azure Synapse Analytics.

Аргументы

[ @table_name = ] N'table_name'

Указывает таблицу, используемую для возврата сведений о каталоге. @table_name — sysname без значения по умолчанию. Сопоставление шаблонов подстановочных знаков не поддерживается.

[ @table_owner = ] N'table_owner'

Имя владельца таблицы, используемой для возврата сведений о каталоге. @table_owner — sysname с значением по умолчаниюNULL. Сопоставление шаблонов подстановочных знаков не поддерживается. Если owner это не указано, применяются правила видимости таблицы по умолчанию базовой системы управления базами данных (СУБД).

В SQL Server, если текущий пользователь владеет таблицей с указанным именем, возвращаются индексы этой таблицы. Если owner не указано, а текущий пользователь не владеет таблицей с указанной name, эта процедура ищет таблицу с указанным name владельцем базы данных. Если владелец существует, возвращаются индексы этой таблицы.

[ @table_qualifier = ] N'table_qualifier'

Имя квалификатора таблицы. @table_qualifier имеет имя sysname с значением по умолчаниюNULL. Различные продукты СУБД поддерживают трехкомпонентное именование таблиц (<qualifier>.<owner>.<name>). В SQL Server этот параметр представляет имя базы данных. В некоторых СУБД он представляет имя сервера в среде базы данных, где находится таблица.

[ @index_name = ] N'index_name'

Имя индекса. @index_name — sysname с значением по умолчанию%. Поиск совпадений по шаблону поддерживается.

[ @is_unique = ] 'is_unique'

Следует ли возвращать только уникальные индексы (если Y). @is_unique — char(1) с пустой строкой по умолчанию.

[ = ] @accuracy 'точность'

Уровень кратности и точности страниц для статистики. @accuracy — char(1) с значением по умолчаниюQ. Укажите E , чтобы убедиться, что статистика обновляется таким образом, чтобы кратность и страницы были точными.

  • E (SQL_ENSURE) просит водителя безоговорочно получить статистику.

  • Q (SQL_QUICK) запрашивает драйвер получить кратность и страницы, только если они легко доступны с сервера. В этом случае драйвер не гарантирует, что значения являются текущими. Приложения, записываемые в стандарт Open Group, всегда получают SQL_QUICK поведение от драйверов, совместимых с ODBC 3.x.

Результирующий набор

Имя столбца Тип данных Description
TABLE_QUALIFIER sysname Имя квалификатора таблицы. Этот столбец может быть NULL.
TABLE_OWNER sysname Имя владельца таблицы. Этот столбец всегда возвращает значение .
TABLE_NAME sysname Имя таблицы. Этот столбец всегда возвращает значение .
NON_UNIQUE smallint Не допускает значения 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, и INDEX_NAMETYPESEQ_IN_INDEX.

Кластеризованный индекс — это индекс, при котором физический порядок хранения данных таблицы соответствует последовательности индекса. Это значение соответствует кластеризованным индексам SQL Server.

Хэшированные индексы принимают точное совпадение или поиск по диапазону, но поиски сопоставления шаблонов не используют индекс.

Системная sp_statistics хранимая процедура эквивалентна SQLStatistics ODBC. Возвращаемые результаты упорядочены по NON_UNIQUE, TYPE, INDEX_QUALIFIERи INDEX_NAMESEQ_IN_INDEX. Дополнительные сведения см. в справочнике по ODBC.

Разрешения

Требуется SELECT разрешение на схему.

Пример: Azure Synapse Analytics и система платформы аналитики (PDW)

В следующем примере возвращаются сведения о DimEmployee таблице из AdventureWorks образца базы данных.

EXEC sp_statistics DimEmployee;