我接管了重新開發Web界面所使用的科學數據庫的任務,原始作者採用了「每個數據集表」方法,這種方法的擴展性不好,現在相當困難管理超過200個已創建的表。我花了相當多的時間試圖弄清楚如何討論這個問題,但是數據集包含不同的值,所以將它們組合成一個具有列定義模式的表是不合理的。在SQL Server中組合多個異構數據表的數據庫模型重構?
我已經探討了EAV,XML列的可能性,並且最終嘗試使用包含許多稀疏列的表格,因爲數據庫在SQL Server 2008上運行。數據庫管理員遇到了一些與我最近創建的稀疏列導致一些破壞他們的備份腳本,所以我再次懷疑是否沒有更好的方法來做到這一點。我知道EAV不會帶來體面的表現,而且我對XML數據類型的實驗也表現出糟糕的表現,這可能要歸功於某些表中的大量記錄。
這裏的總結:
- 約200臺,其中大部分都含有浮標和小弦
- 一些表有多達15000條記錄
- 表模式是不相一致的幾列,因爲列取決於原始實驗數據中的樣本數量。
- SQL Server 2008中
我會處理大多數這類數據在新的版本我開發的遺產,但我仍然需要能夠顯示它和查詢IT和我會而不必通過在我的存儲過程中動態指定表名,就像使用當前的多表方法一樣。有什麼建議麼?
如果這主要是科學數據,是否大多數列是數字?另外,每個數據集的典型列數是多少?數據集中列的最大數量是多少? –
dba遇到什麼問題?稀疏列不應影響備份,除非他們正在執行表副本或其他事情。 – SqlACID
大多數列是浮動的,但也有一些短的字符串在這裏和那裏。每個表的列數從1到23不等。它們的備份失敗,因爲稀疏列上的索引不可壓縮。他們認爲他們處理了這個問題,現在由於某種其他原因他們認爲服務包可以修復,但這是其他方面的生產服務器,所以避免停機時間會很好。 –