Sql-Server

SQL Server 是否需要比傳統行儲存更多的 RAM 來保存列儲存索引表?

  • January 24, 2017

我想在一些非常大、很寬的表上實現(SQL Server 2014)聚集列儲存索引。我需要更多的記憶體來支持這個嗎?如果是這樣,我如何確定多少?

有幾個方面需要考慮:

  1. 列儲存對像不記憶體在緩衝池中,而是在它們自己的區域http://www.nikoport.com/2014/08/11/clustered-columnstore-indexes-part-38-memory-structures/但 SQL Server 管理為緩衝池或列儲存對像池分配空間
  2. 必須在將數據載入到行組時處理列儲存對象,這是記憶體密集型操作
  3. 由於數據是高度壓縮的,因此當數據儲存在列儲存中時,比儲存為行時可以在 RAM 中記憶體更多的數據

至於您的“我需要更多 RAM”的問題,那麼答案可能是否定的,因為引擎將在您創建索引時使用任何可用的 RAM,除非您受到嚴重限制。 http://www.nikoport.com/2014/06/21/clustered-columnstore-indexes-part-31-memory-pressure-and-row-group-sizes/

引用自:https://dba.stackexchange.com/questions/153519