新增或移除索引欄位
索引欄位用來最佳化搜尋資料庫。它們定義為資料庫表格中相關欄上的條件約束。支援單一與複合索引。
新增索引欄位
欲將索引欄位新增至現有資料庫表格:
1. 建立從 PTC 建構區塊延伸而來的新建構區塊,其中包含與資料庫表格相關之實體的管理員。這些管理員都在 PTC.Base.Manager「組態」DefaultGlobalManagerConfiguration 表格中指定。例如,欲將索引鍵新增至工作單,導覽至 PTC.JobOrderImpl.Manager 物件。
若需進一步資訊,可參閱 建立新的建構區塊
2. 導覽至新建構區塊的管理員物件。
3. 「服務」下,尋找並覆寫要新增索引欄位之實體的 GetDBInfo 服務。例如,欲將索引欄位新增至工作訂單的資料庫表格,請尋找並覆寫 GetJobOrderDBInfo 服務。
4. 在指令集編輯器中,向下捲動至要新增索引欄位之資料形式的項目。
5. 為資料形式新增 indexedFields 陣列,使其包含下列屬性:
unique - 指定欄是否必須有具唯一性的值。
fieldnames - 包含欄名稱的陣列。如果僅指定了一欄,則會建立單一索引。如果指定了多個欄,則會建立複合索引。
* 
透過為 name 指定單一值 (欄名稱),而不是為 fieldnames 指定單一值,可以建立單一索引。如果同時指定 namefieldnames,則會略過 name,且會使用 fieldnames 值建立索引。
identifier - 資料庫中實體的名稱。如果未指定,則系統會以 <table_name>_<column_name1>_<column_name2>_<column_nameN>_idx 格式自動產生值。如果已指定,則該值必須具唯一性,無論對於指定值還是任何自動產生的值。值的最大長度是資料庫所允許的識別元最大長度。
6. 按一下「儲存」,儲存服務組態的變更。
7. 請導覽至 PTC.DBConnection.Manager 物件。
8. 同步處理資料庫資訊與資料庫結構描述。若需進一步資訊,可參閱 同步處理資料庫資訊與資料庫結構描述
移除索引欄位
欲移除索引欄位:
* 
請勿移除任何現成定義的索引欄位。僅移除先前已新增的索引欄位,例如透過將自訂內容新增至資料模型實體將自訂實體新增至資料模型
1. 建立從 PTC 建構區塊延伸而來的新建構區塊,其中包含與資料庫表格相關之實體的管理員。這些管理員都在 PTC.Base.Manager「組態」DefaultGlobalManagerConfiguration 表格中指定。例如,欲從工作單中移除索引欄位,導覽至 PTC.JobOrderImpl.Manager 物件。
若需進一步資訊,可參閱 建立新的建構區塊
2. 導覽至針對您的系統配置的資料庫物件,例如,PTC.DBConnection.MSSQLDatabase
3. 「服務」下方,以下列輸入執行 RemoveIndex 服務︰
dataShapeName - 您要從中移除索引欄位條件約束之資料庫表格的資料形式。必填。
fieldName - 您要從中移除索引欄位條件約束之資料形式的欄位。只有在移除單一索引欄位時才需要此輸入。
dbInfo - 要移除之索引欄位條件約束的 JSON 描述。必須提供在定義索引欄位的 GetDBInfo 服務中指定的相同 identifier (若有) 與 name 資訊。只有在移除複合索引欄位時才需要此輸入。
4. 按一下「執行」
5. 導覽至定義索引欄位的 GetDBInfo 服務,並從服務中移除索引欄位定義。如果未移除,則在下次執行同步處理服務時,會將索引欄位新增回資料庫。
例如,要從 MyObject 資料形式上名為 WorkDefinitionUID 的欄位中移除指定 identifier 的索引欄位條件約束,請針對輸入參數指定下列內容:
dataShapeNameMyObject
fieldNameWorkDefinitionUID
dbInfo
{
"identifier":"myobject_workdefinitionuid_idx"
"name":"WorkDefinitionUID",
}
這是否有幫助?