Sql-Server

使用聚集列儲存索引之前有多大的表

  • September 28, 2018

我們應該考慮在多大的表上應用列儲存索引?是否有 SQL Server 儲存或設計指南?

我們的數據倉庫總計 5TB。此外,我們還有組成數據庫的 100GB 到 1TB 的表。只是好奇 SQL Server 是否有關於在應用列儲存索引之前表應該有多大的指導?

對於事實表:例如,我們是否應該在 300MB、1GB、1TB 的表上有列儲存索引。或者我們應該在所有桌子上都有,而且大小無關緊要?

對於維度表:此外,我們是否應該在查找表上有列儲存索引?這些很小,通常為 2-50 MB

這篇文章從來沒有說

https://docs.microsoft.com/en-us/sql/relational-databases/indexes/columnstore-indexes-design-guidance?view=sql-server-2017

您連結到的文章提供了以下指導:

在以下情況下考慮使用聚集列儲存索引:

每個分區至少有一百萬行。列儲存索引在每個分區內都有行組。如果表太小而無法填充每個分區內的行組,您將無法獲得列儲存壓縮和查詢性能的好處。

列儲存的“最小大小”實際上並不是磁碟上的任何大小,而是行數。在考慮將其用於列儲存之前,每個表(或分區,如果表是分區的)應該至少有 100 萬行。

一個非常狹窄的數百萬行表可能只有幾兆字節,但仍然是列儲存的絕佳候選者。具有較少行的較寬表可能會佔用更多磁碟空間,並且不是一個好的列儲存候選者。

我建議重新訪問該文章中標題為“在…時考慮使用聚集列儲存索引”和“在…時不要使用聚集列儲存索引”的部分

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