共用方式為


結構描述最佳化最佳做法

資料表架構會定義資料表中所有資料行的名稱和 資料類型 。 資料表架構可以在資料表建立期間設定,或藉由修改適用的擷取對應,作為資料擷取程式的一部分。 定義資料表架構的方式可能會大幅影響查詢效能。 資料的理想架構取決於許多因素,包括使用案例、資料存取模式,以及您打算儲存的特定資料。 本文說明透過設計有效率的架構來優化效能的最佳做法。

資料類型

如需資料類型的一般資訊,請參閱 純量資料類型

  • 常用的欄位應該是具類型的資料行,而不是 動態 類型。

  • 動態資料行中經常搜尋或匯總的 JSON 屬性,應該轉換成資料表中具有更特定類型的一般資料行,例如字串longreal

  • 不常用於篩選和匯總的疏鬆資料行,應該使用DropMappedFields對應轉換,收集為動態資料行中的屬性包。

  • 日期時間資料行應該輸入為 datetime,而不是 long 或其他資料類型。

    • 使用 Unix 轉換對應的 DateTime,例如 DateTimeFromUnixMilliseconds。 .
  • 型別提供精確的精確度,使其最適合需要精確精確度的財務和其他應用程式。 不過,其速度比 實際 類型慢得多。 只有在需要時才使用十進位類型。

  • 所有識別碼 (識別) 資料行都應該輸入為 字串,而不是數值。 此類型會使索引更有效率,而且可以大幅改善搜尋時間。 它也會啟用 資料分割,因為資料分割只能在字串資料行上定義。 如果此資料列上使用的查詢篩選只是相等,例如,如果資料行有 guid,您可以使用編碼設定檔 Identifier。 如需詳細資訊,請參閱編碼原則

資料表

  • 針對使用數百個資料行的寬型資料表進行優化,比寬資料表更慣用。
  • 若要避免在查詢期間耗費大量聯結,請在擷取期間擴充維度資料,以反正規化維度資料。 如果更新用於擴充的維度資料表,而且案例需要最新的值,請使用 具體化檢視 來保留最新的值。
  • 如果有 20 個以上的資料行疏鬆,表示許多值都是 Null,而且這些資料行很少用於搜尋或匯總,請使用轉換對應,將資料行分組為動態DropMappedFields資料行中的 JSON 屬性包。

編製索引

從未搜尋的欄位可以停用索引編製。 搭配配置檔BigObject使用編碼原則,以停用字串或動態類型資料行的索引編製。