2016-04-23 53 views
1

我將第二個基礎上的N個不同股票的價格實時保存到Microsoft SQL Server 2012數據庫中,其中特定日期的所有數據都放入特定數據表中那一天。SQL Server:每張表1000列的限制

由於我希望儘可能快地實時檢索數據,因此表格結構儘可能簡單:使用標記時間戳的行名和列指定股票的唯一名稱。這種設置很簡單但很有用,因爲在分析數據時同時獲取數據的同步快照很重要。

因爲SQL Server不允許我創建超過1000列的表,所以當庫存數量N超過1000時就會出現問題。

我的問題是如何在N> 1000的情況下最好地設計數據庫,以便數據檢索儘可能少地降低速度並儘可能少地向用戶轉移數據庫邏輯(例如明確保留在多表解決方案的情況下追蹤哪些股票屬於哪個表)。

任何評論都將受到歡迎

+0

好問題。我建議在dba上發帖,帶有樣本表結構以及更多幫助,以及您可以通過示例場景獲得哪些問題,您認爲 – TheGameiswar

+0

謝謝!正在查看您建議的「dba」標籤。找不到任何東西。你能幫我嗎? – user3072048

+0

問這裏:http://dba.stackexchange.com/ – TheGameiswar

回答

2

你的數據庫設計是有缺陷的,你應該設計你的表是這樣的:

RecordID 
StockID 
DateTime 
Value 

,並有每股票入賬價值一行事後整理。

+1

感謝您的評論!不過,我預計在這種情況下約有2000萬行(而不是2萬行),我不知道這是否會嚴重減緩選定的一組股票的數據檢索。不會嗎? – user3072048

+0

坦率地說,不,我認爲不會,只要你使用合適的硬件和配置運行數據庫服務器。一旦獲得了這些數據,你無疑會想要運行比較和報告,你會發現更容易和更快速地存儲這樣的信息。 – Ashigore

+0

謝謝;這是一個好消息,我會試試這個! – user3072048