FULLTEXTCATALOGPROPERTY (Transact-SQL)
傳回 SQL Server 2012 中全文檢索目錄屬性的相關資訊。
語法
FULLTEXTCATALOGPROPERTY ('catalog_name' ,'property')
引數
[!附註]
後續版本的 SQL Server 將移除下列屬性:LogSize 及 PopulateStatus。請避免在新的開發工作中使用這些屬性,並規劃修改目前使用任何這些屬性的應用程式。
catalog_name
這是一個包含全文檢索目錄名稱的運算式。property
這是一個包含全文檢索目錄屬性名稱的運算式。下表列出各個屬性,並提供傳回資訊的描述。屬性
描述
AccentSensitivity
區分腔調字設定。
0 = 不區分腔調字
1 = 區分腔調字
IndexSize
顯示全文檢索目錄的邏輯大小,以 MB 為單位。包括語意關鍵片語和文件相似度索引的大小。
如需詳細資訊,請參閱此主題稍後的「備註」。
ItemCount
索引項目的數目,包括目錄中的所有全文檢索、關鍵片語和文件相似度索引
LogSize
支援這個項目的目的,只是為了與舊版相容。一律傳回 0。
Microsoft 搜尋服務全文檢索目錄的相關錯誤記錄組合集大小 (以位元組為單位)。
MergeStatus
主要合併是否正在進行中。
0 = 主要合併不在進行中
1 = 主要合併在進行中
PopulateCompletionAge
前次全文檢索索引擴展完成和 01/01/1990 00:00:00 之間的時差 (以秒為單位)。
只更新完整和累加搜耙的這個項目。如果未進行擴展,便傳回 0。
PopulateStatus
0 = 閒置
1 = 完整擴展進行中
2 = 已暫停
3 = 調整執行速度
4 = 復原中
5 = 關閉
6 = 累加擴展進行中
7 = 正在建立索引
8 = 磁碟已滿,已暫停。
9 = 變更追蹤
UniqueKeyCount
全文檢索目錄中唯一索引鍵的數目。
ImportStatus
是否正在匯入全文檢索目錄。
0 = 沒有正在匯入全文檢索目錄。
1 = 正在匯入全文檢索目錄。
傳回類型
int
例外狀況
當發生錯誤,或呼叫者沒有檢視物件的權限時,便會傳回 NULL。
在 SQL Server 2012 中,使用者只能檢視使用者擁有或被授與某些權限之安全性實體的中繼資料。這表示發出中繼資料的內建函數 (例如,FULLTEXTCATALOGPROPERTY) 會在使用者不具有該物件任何權限時傳回 NULL。如需詳細資訊,請參閱<sp_help_fulltext_catalogs (Transact-SQL)>。
備註
FULLTEXTCATALOGPROPERTY ('catalog_name' ,'IndexSize') 只會尋找具有狀態 4 或 6 的片段,如 sys.fulltext_index_fragments 中所示。這些片段是邏輯索引的一部分。因此,IndexSize 屬性只會傳回邏輯索引大小。不過,在索引合併期間,實際的索引大小可能會是其邏輯大小的兩倍。若要找出全文檢索索引在合併期間所使用的實際大小,請使用 sp_spaceused 系統預存程序。該程序會查看所有與全文檢索索引相關聯的片段。如果您限制全文檢索目錄檔案的成長,而且未提供足夠的空間給合併處理使用,則全文檢索母體擴展可能會失敗。在此情況下,FULLTEXTCATALOGPROPERTY ('catalog_name' ,'IndexSize') 會傳回 0,而且下列錯誤會寫入全文檢索記錄中:
Error: 30059, Severity: 16, State: 1. A fatal error occurred during a full-text population and caused the population to be cancelled. Population type is: FULL; database name is FTS_Test (id: 13); catalog name is t1_cat (id: 5); table name t1 (id: 2105058535). Fix the errors that are logged in the full-text crawl log. Then, resume the population. The basic Transact-SQL syntax for this is: ALTER FULLTEXT INDEX ON table_name RESUME POPULATION.
應用程式不會在緊湊的迴圈中等待檢查 PopulateStatus 屬性是否成為閒置 (表示擴展已完成),因為這會使 CPU 循環離開資料庫和全文檢索搜尋處理序,而造成逾時。另外,在資料表層級上檢查對應的 PopulateStatus 屬性 (OBJECTPROPERTYEX 系統函數中的 TableFullTextPopulateStatus) 通常是比較好的選擇。OBJECTPROPERTYEX 中的這個屬性及其他新的全文檢索屬性,可提供更精細的全文檢索索引資料表相關資訊。如需詳細資訊,請參閱<OBJECTPROPERTYEX (Transact-SQL)>。
範例
下列範例會傳回名稱為 Cat_Desc 的全文檢索目錄中之全文檢索索引項目數。
USE AdventureWorks2012;
GO
SELECT fulltextcatalogproperty('Cat_Desc', 'ItemCount');
GO