我有一個SQL Server數據庫,其中包含大量的時間序列記錄 - 目前約有500萬。每條記錄都有一個日期時間和一個雙數據值,它們組成時間序列,還有兩個其他日期時間值。我正在尋找方法來提高查詢的性能,而不必關閉數據倉庫路徑。使用HierachyID來存儲時間序列數據
而不是將數據和時間存儲爲DateTime我正在查看SQL Server 2008中的新HierachyID,並想知道是否可以使用它來存儲日期和時間。我會想象層次會是年,月,日,小時,分鐘。
這會提供任何性能提升,索引工作如何?
我有一個SQL Server數據庫,其中包含大量的時間序列記錄 - 目前約有500萬。每條記錄都有一個日期時間和一個雙數據值,它們組成時間序列,還有兩個其他日期時間值。我正在尋找方法來提高查詢的性能,而不必關閉數據倉庫路徑。使用HierachyID來存儲時間序列數據
而不是將數據和時間存儲爲DateTime我正在查看SQL Server 2008中的新HierachyID,並想知道是否可以使用它來存儲日期和時間。我會想象層次會是年,月,日,小時,分鐘。
這會提供任何性能提升,索引工作如何?
我對此表示懷疑。另外它會使編程更加複雜。日期時間列上的聚集索引是什麼?什麼樣的查詢性能不佳?此外,由於您似乎不需要次分鐘的精度,因此如果您移至SMALLDATETIME,則可以將索引頁的大小減少爲每行4字節。較低的I/O =更好的性能。
謝謝。我在主日期時間列上有一個固定的索引,可以提供良好的性能。我應該提到我有兩個其他日期時間值,這些值是我當前索引的,並且在問這個問題時也考慮了這些值。 – Stewy 2009-11-23 08:33:21
考慮到這一點,維護一個HierachyID列將是一個真正的痛苦。它需要觸發器來更新遞歸激發的層級中的父記錄。 簡單的數據倉庫解決方案可能會更好。 – Stewy 2009-11-23 08:35:46