sp_statistics (Transact-SQL)

適用於:SQL ServerAzure SQL DatabaseAzure SQL 受控執行個體Azure Synapse AnalyticsAnalytics Platform System (PDW)

傳回指定之數據表或索引檢視表上所有索引和統計數據的清單。

Transact-SQL 語法慣例

Syntax

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

注意

Azure Synapse Analytics 的無伺服器 SQL 集區不支援此語法。

引數

[ @table_name = ] N'table_name'

指定用來傳回目錄信息的數據表。 @table_name為 sysname,沒有預設值。 不支援通配符模式比對。

[ @table_owner = ] N'table_owner'

用來傳回目錄信息的數據表擁有者名稱。 @table_owner為 sysname 預設值為 NULL。 不支援通配符模式比對。 如果未 owner 指定,則會套用基礎資料庫管理系統 (DBMS) 的預設數據表可見性規則。

在 SQL Server 中,如果目前用戶擁有具有指定名稱的數據表,則會傳回該數據表的索引。 如果未 owner 指定,且目前用戶沒有具有指定 name之數據表,則此程式會尋找具有資料庫擁有者所擁有之指定 name 之數據表。 如果存在,則會傳回該數據表的索引。

[ @table_qualifier = ] N'table_qualifier'

數據表限定符的名稱。 @table_qualifier為 sysname,預設值為 NULL。 各種 DBMS 產品支援數據表的三部分命名(<qualifier>.<owner>.<name>)。 在 SQL Server 中,此參數代表資料庫名稱。 在某些產品中,它代表數據表資料庫環境的伺服器名稱。

[ @index_name = ] N'index_name'

索引名稱。 @index_name為 sysname,預設值為 %。 支援通配符模式比對。

[ @is_unique = ] 'is_unique'

是否只傳回唯一索引 (如果 Y) 。 @is_unique為 char(1),預設值為空字串。

[ @accuracy = ] 'accuracy'

統計數據的基數和頁面精確度層級。 @accuracy為 char(1),預設值為 Q。 指定 E 以確保統計數據已更新,讓基數和頁面正確無誤。

  • ESQL_ENSURE) 要求司機無條件地擷取統計數據。

  • QSQL_QUICK) 要求驅動程式擷取基數和頁面,前提是這些基數和頁面已可從伺服器取得。 在此情況下,驅動程式不會確保這些值是目前的。 寫入 Open Group 標準的應用程式一律會從 ODBC 3.x 相容驅動程式取得 SQL_QUICK 行為。

結果集

資料行名稱 資料類型 描述
TABLE_QUALIFIER sysname 數據表限定符名稱。 這個資料列可以是 NULL
TABLE_OWNER sysname 數據表擁有者名稱。 這個資料行一律會傳回值。
TABLE_NAME sysname 資料表名稱。 這個資料行一律會傳回值。
NON_UNIQUE smallint 不可為 Null。

0 = 唯一
1 = 不是唯一的
INDEX_QUALIFIER sysname 索引擁有者名稱。 某些 DBMS 產品可讓數據表擁有者以外的使用者建立索引。 在 SQL Server 中,此數據行一律與 TABLE_NAME相同。
INDEX_NAME sysname 索引的名稱。 這個資料行一律會傳回值。
TYPE smallint 此資料列一律會傳回值:

0 = 資料表的統計數據
1 = Clustered
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數據行、 TYPEINDEX_NAMESEQ_IN_INDEX以遞增順序顯示。

叢集索引類型是指以索引順序儲存數據表數據的索引。 此值對應於 SQL Server 叢集索引。

索引類型 Hashed 接受完全相符或範圍搜尋,但模式比對搜尋不會使用索引。

系統 sp_statistics 預存程式相當於 SQLStatistics ODBC 中的 。 傳回的結果會依 NON_UNIQUE、、 TYPEINDEX_QUALIFIERINDEX_NAMESEQ_IN_INDEX排序。 如需詳細資訊,請參閱 ODBC 參考

權限

SELECT需要架構的許可權。

範例:Azure Synapse Analytics 和分析平台系統 (PDW)

下列範例會從AdventureWorks範例資料庫傳回數據表的相關信息DimEmployee

EXEC sp_statistics DimEmployee;