SAP HANA 行儲存和列儲存表


SAP HANA 模型檢視只能在基於列的表之上建立。將資料儲存在列表中並不是什麼新鮮事。以前人們認為,將資料儲存在基於列的結構中會佔用更多記憶體,並且效能未經最佳化。

隨著 SAP HANA 的發展,HANA 在資訊檢視中使用了基於列的資料儲存,並展示了列表相對於基於行的表的真正優勢。

列儲存

在列儲存表中,資料垂直儲存。因此,類似的資料型別會像上面示例中所示那樣組合在一起。它藉助記憶體計算引擎提供更快的記憶體讀寫操作。

在傳統的資料庫中,資料以基於行的結構(即水平方式)儲存。SAP HANA 以基於行和基於列的結構儲存資料。這在 HANA 資料庫中提供了效能最佳化、靈活性和資料壓縮。

在基於列的表中儲存資料具有以下優點:

  • 資料壓縮
  • 與傳統的基於行的儲存相比,對錶的讀寫訪問速度更快
  • 靈活性和並行處理
  • 以更高的速度執行聚合和計算

功能差異 - 行儲存與列儲存


如果 SQL 語句必須執行聚合函式和計算,則始終建議使用基於列的儲存。在執行 Sum、Count、Max、Min 等聚合函式時,基於列的表始終表現更好。

如果輸出必須返回完整的行,則首選基於行的儲存。以下示例可以更容易地理解這一點。

在使用 Where 子句對 sales 列執行聚合函式 (Sum) 時,它只使用 Date 和 Sales 列執行 SQL 查詢,因此,如果它是基於列的儲存表,則由於只需要來自兩列的資料,所以它將是效能最佳化的,速度更快。

在執行簡單的 Select 查詢時,必須在輸出中列印完整的行,因此在這種情況下,建議將表儲存為基於行的表。


更新於:2020年6月18日

2K+ 次檢視

開啟您的職業生涯

完成課程獲得認證

開始學習
廣告