sp_statistics (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,就會套用基礎 DBMS 的預設資料表可見性規則。在 SQL Server 中,如果目前使用者擁有一份含指定名稱的資料表,就會傳回這份資料表的索引。如果未指定 owner,且目前使用者並未擁有指定 name 的資料表,這個程序就會查看資料庫擁有者所擁有之指定 name 的資料表。如果資料表存在,就會傳回這份資料表的索引。
[ @table_qualifier= ] 'qualifier'
這是資料表限定詞的名稱。qualifier 是 sysname,預設值是 NULL。各種 DBMS 產品都支援三部分的資料表命名 (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 標準的應用程式,永遠會透過 ODBC 3.x 相容的驅動程式取得 SQL_QUICK 行為。
結果集
資料行名稱 |
資料類型 |
描述 |
---|---|---|
TABLE_QUALIFIER |
sysname |
資料表限定詞名稱。這個資料行可以是 NULL。 |
TABLE_OWNER |
sysname |
資料表擁有者名稱。這個資料行一律會傳回值。 |
TABLE_NAME |
sysname |
資料表名稱。這個資料行一律會傳回值。 |
NON_UNIQUE |
smallint |
NOT NULL。 0 = 唯一 1 = 不是唯一 |
INDEX_QUALIFIER |
sysname |
索引擁有者名稱。部分 DBMS 產品允許資料表擁有者以外的使用者建立索引。在 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 相當於 ODBC 中的 SQLStatistics。傳回的結果是依照 NON_UNIQUE、TYPE、INDEX_QUALIFIER、INDEX_NAME 和 SEQ_IN_INDEX 來排序。如需詳細資訊,請參閱<ODBC API 參考>(英文)。
權限
需要結構描述的 SELECT 權限。