Partilhar via


sp_statistics (Transact-SQL)

Aplica-se a: SQL Server Banco de Dados SQL do Azure Instância Gerenciada de SQL do Azure PDW (Sistema de Plataforma de Análise) do Azure Synapse Analytics

Retorna uma lista de todos os índices e estatísticas em uma tabela especificada ou exibição indexada.

Convenções de sintaxe de Transact-SQL

Sintaxe

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' ]
[ ; ]

Observação

Não há suporte a essa sintaxe para o pool de SQL sem servidor no Azure Synapse Analytics.

Argumentos

[ @table_name = ] N'table_name'

Especifica a tabela usada para retornar informações do catálogo. @table_name é sysname, sem padrão. Não há suporte para a correspondência de padrões curinga.

@table_owner [ = ] N'table_owner'

O nome do proprietário da tabela usada para retornar informações de catálogo. @table_owner é sysname, com um padrão de NULL. Não há suporte para a correspondência de padrões curinga. Se owner não for especificado, as regras de visibilidade de tabela padrão do DBMS (sistema de gerenciamento de banco de dados) subjacente serão aplicadas.

No SQL Server, se o usuário atual possuir uma tabela com o nome especificado, os índices dessa tabela serão retornados. Se owner não for especificado e o usuário atual não possuir uma tabela com o especificado name, este procedimento procurará uma tabela com o especificado name pertencente ao proprietário do banco de dados. Caso exista, os índices da tabela serão retornados.

@table_qualifier [ = ] N'table_qualifier'

O nome do qualificador de tabela. @table_qualifier é sysname, com um padrão de NULL. Vários produtos DBMS suportam nomenclatura de três partes para tabelas (<qualifier>.<owner>.<name>). No SQL Server, esse parâmetro representa o nome do banco de dados. Em alguns produtos, ele representa o nome do servidor do ambiente de banco de dados da tabela.

@index_name [ = ] N'index_name'

O nome do índice. @index_name é sysname, com um padrão de %. Há suporte para a correspondência do padrão curinga.

@is_unique [ = ] 'is_unique'

Se apenas índices exclusivos (if Y) devem ser retornados. @is_unique é char(1), com um padrão de string vazia.

@accuracy [ = ] 'precisão'

O nível de cardinalidade e precisão da página para estatísticas. @accuracy é char(1), com um padrão de Q. Especifique E para garantir que as estatísticas sejam atualizadas para que a cardinalidade e as páginas sejam precisas.

  • E (SQL_ENSURE) solicita que o driver recupere incondicionalmente as estatísticas.

  • Q (SQL_QUICK) solicita que o driver recupere a cardinalidade e as páginas, somente se elas estiverem prontamente disponíveis no servidor. Nesse caso, o driver não garante que os valores sejam atuais. Os aplicativos gravados no padrão Open Group sempre obtêm SQL_QUICK comportamento de drivers compatíveis com ODBC 3.x.

Conjunto de resultados

Nome da coluna Tipo de dados Descrição
TABLE_QUALIFIER sysname Nome do qualificador de tabela. Essa coluna pode ser NULL.
TABLE_OWNER sysname O nome do proprietário da tabela. Esta coluna sempre retorna um valor.
TABLE_NAME sysname Nome da tabela. Esta coluna sempre retorna um valor.
NON_UNIQUE smallint Não permite valor nulo.

0 = Único
1 = Não exclusivo
INDEX_QUALIFIER sysname Nome do proprietário do índice. Alguns produtos DBMS permitem que outros usuários, que não o proprietário da tabela, criam índices. No SQL Server, essa coluna é sempre igual ao TABLE_NAME.
INDEX_NAME sysname O nome do índice. Esta coluna sempre retorna um valor.
TYPE smallint Esta coluna sempre retorna um valor:

0 = Estatísticas de uma tabela
1 = Agrupado
2 = Com hash
3 = Não agrupado
SEQ_IN_INDEX smallint Posição da coluna dentro do índice.
COLUMN_NAME sysname Nome da coluna para cada coluna do TABLE_NAME retornado. Esta coluna sempre retorna um valor.
COLLATION char(1) Ordem usada na ordenação. Pode ser:

A = Ascendente
D = Descendente
NULL = Não aplicável
CARDINALITY int Número de linhas na tabela ou valores exclusivos no índice.
PAGES int Número de páginas para armazenar o índice ou a tabela.
FILTER_CONDITION varchar(128) SQL Server não retorna um valor.

Valores do código de retorno

Nenhum.

Comentários

Os índices no conjunto de resultados aparecem em ordem crescente pelas colunas NON_UNIQUE, TYPE, INDEX_NAME, e SEQ_IN_INDEX.

O tipo de índice clusterizado se refere a um índice no qual são armazenados dados de tabela na ordem do índice. Esse valor corresponde aos índices clusterizados do SQL Server.

O tipo de índice Hashed aceita pesquisas de correspondência exata ou intervalo, mas as pesquisas de correspondência de padrões não usam o índice.

O sp_statistics procedimento armazenado do sistema é equivalente ao SQLStatistics ODBC. Os resultados retornados são ordenados por NON_UNIQUE, , , INDEX_QUALIFIERINDEX_NAME, e SEQ_IN_INDEXTYPE. Para obter mais informações, consulte a Referência ODBC.

Permissões

Requer a permissão SELECT no esquema.

Exemplo: Azure Synapse Analytics e PDW (Analytics Platform System)

O exemplo a seguir retorna informações sobre a DimEmployee tabela do AdventureWorks banco de dados de exemplo.

EXEC sp_statistics DimEmployee;