簡體   English   中英

如何創建包含大量數據的表以支持倉庫中的快速查詢?

[英]How to create a table with large amount of data that supports fast queries in a warehouse?

我有大約5M的大量數據,這些數據存儲在一個非常平坦的表中,該表具有12列。 該表包含匯總數據,並且與其他表沒有任何關系。 我想對此數據運行動態查詢以用於報告目的。 該表包含諸如DistrictCityYearCategorySubCategory CategorySaleAmount等字段

  1. 我想查看2010年至2013年之間的銷售報告。

  2. 比較每種產品在不同年份的銷售額。

  3. 特定銷售人員在一年內的銷售額。

  4. 按類別,子類別等進行的銷售

我使用的是SQL Server 2008,但我不是DBA,因此我不知道應該創建哪種類型的索引? 我應該索引哪些列以使查詢正常工作。

如果數據量很小,我不會為所有這些問題而煩惱,而是繼續進行,但是在這種情況下,知道要索引的列和要創建的索引類型至關重要。

請讓我知道確保快速執行查詢的最佳方法。

如果我在所有列上創建聚集索引,是否可以工作? 否則會傷害我。

請記住,此表可能不會每月頻繁更新。

鑒於您的要求非常明確和具體,我建議您為每個字段創建一個非聚集索引,並將其留給優化程序作為第一步。 (即創建12個索引)在每個索引中僅放置一個字段。 不要索引(或至少要謹慎使用)任何長文本類型字段。 也不要索引只有2個值和50/50分割的字段,例如M / F。 我假設您在每個字段上都有謂詞,但不要為任何從未用於選擇目的的字段建立索引。

如果在此之后仍然有問題,請在sql server中找到查詢分析器,並使用它來指導如何處理查詢。

多分段索引有時會更好,但是如果您的查詢主要限於表的一小部分,則單字段索引會很好。

對於使用“ order by”的查詢,您可能會有一些性能問題,但是在此階段,請不要猶豫。

我的推理是基於

  1. 您只有12列,因此我們不會超載任何內容
  2. 只有500萬行。 這對於s​​ql / server來說很容易處理
  3. 數據的增長很小,因此索引更新不應該成為太大的問題。
  4. 優化器會喜歡將這些查詢與索引結合在一起。
  5. 我們沒有典型的查詢示例來指定多段索引,這個問題似乎暗示着高度可變的查詢。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM