Sql-Server
SQL Server 是否需要比傳統行儲存更多的 RAM 來保存列儲存索引表?
我想在一些非常大、很寬的表上實現(SQL Server 2014)聚集列儲存索引。我需要更多的記憶體來支持這個嗎?如果是這樣,我如何確定多少?
有幾個方面需要考慮:
- 列儲存對像不記憶體在緩衝池中,而是在它們自己的區域http://www.nikoport.com/2014/08/11/clustered-columnstore-indexes-part-38-memory-structures/但 SQL Server 管理為緩衝池或列儲存對像池分配空間
- 必須在將數據載入到行組時處理列儲存對象,這是記憶體密集型操作
- 由於數據是高度壓縮的,因此當數據儲存在列儲存中時,比儲存為行時可以在 RAM 中記憶體更多的數據
至於您的“我需要更多 RAM”的問題,那麼答案可能是否定的,因為引擎將在您創建索引時使用任何可用的 RAM,除非您受到嚴重限制。 http://www.nikoport.com/2014/06/21/clustered-columnstore-indexes-part-31-memory-pressure-and-row-group-sizes/