sp_statistics (Transact-SQL)
適用於: SQL Server Azure SQL 資料庫 Azure SQL 受控執行個體 Azure Synapse Analytics Analytics Platform System (PDW)
傳回指定之數據表或索引檢視表上所有索引和統計數據的清單。
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
以確保統計數據已更新,讓基數和頁面正確無誤。
E
(SQL_ENSURE
) 要求司機無條件地擷取統計數據。Q
(SQL_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 = Clustered2 = 哈希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 叢集索引。
索引類型 Hashed 接受完全相符或範圍搜尋,但模式比對搜尋不會使用索引。
系統 sp_statistics
預存程式相當於 SQLStatistics
ODBC 中的 。 傳回的結果會依 NON_UNIQUE
、、 TYPE
、 INDEX_QUALIFIER
、 INDEX_NAME
和 SEQ_IN_INDEX
排序。 如需詳細資訊,請參閱 ODBC 參考。
權限
SELECT
需要架構的許可權。
範例:Azure Synapse Analytics 和分析平台系統 (PDW)
下列範例會從AdventureWorks
範例資料庫傳回數據表的相關信息DimEmployee
。
EXEC sp_statistics DimEmployee;