如果沒有 DBA/其他專業人員,SQL Server 可以處理多少數據?
我們部署的集群使用 Cassandra、Elasticsearch 和類似的 NoSQL 技術來索引和處理數據。我們竭盡全力確保我們可以快速消費和處理記錄。
我們的一位客戶要求我們導出他們的數據,以便他們可以在 SQL Server 中交叉引用它。自從我憤怒地使用 SQL 伺服器(2008 年)以來已經有一段時間了,所以我現在對可能的藝術有點脫節。
雖然客戶擁有數據中心和一系列技術人員(DBA、開發人員等),但我們正在處理的部門只獲得了一台執行 SQL Server 2014 的伺服器,並且技術知識有限。這是一個具有嚴格監管要求的大型組織,通常需要數月的文書工作、流程和簽字才能分配資源。
他們要求我們將大約 7.3 億條記錄轉儲到他們的數據庫中,然後設置一個流程以在新數據到達時推送新數據。從我們的角度來看,這相當簡單,但我非常擔心他們是否能夠實際使用這些數據。
記錄長度各不相同,但對於他們想要的資訊,大約為 4k。
為了讓事情變得更有趣,似乎沒有人真正知道伺服器有什麼規格。繼續他們使用的其他設備,我希望在 64GB RAM、RAID 旋轉磁碟和 6-12 個核心中有所作為。
我曾多次提到這可能是一個問題,並且只能模糊地保證 SQL Server 可以處理這麼多數據。
現在……我知道 SQL Server 可以在分區、配置正確並且擁有熟練的 DBA 來調整事物時處理這麼多數據,但是在沒有知道他們在做什麼的人監督的情況下載入到 SQL 實例中的合理數據量是多少過程?
由於分配新設備/員工將是一個耗時的過程,而且他們的項目有緊迫的期限,我不想等到它出現可怕的錯誤。
我知道沒有人可以用如此模糊的資訊給我一個硬性規定,但我應該在什麼時候擔心?10M / 100M / 500M / 1B?
我不認為我可以給你一個神奇的“在這裡擔心”數字,在這個數字之下的任何東西都是“好的”,而任何超過這個數字的東西都是“壞的”。
也就是說,至少在我看來,您的問題中有許多危險信號:
- “似乎沒有人真正知道伺服器有什麼規格。”
- “他們要求我們將大約 7.3 億條記錄轉儲到他們的數據庫中,然後設置一個流程以在新數據到達時推送新數據。”
- “我們正在處理的部門獲得了一台執行 SQL Server 2014 的伺服器,並且技術知識有限。”
- “這是一個具有嚴格監管要求的大型組織,通常需要數月的文書工作、流程和簽字才能分配資源。”
- “記錄長度不同”
好的,SQL Server 絕對可以處理這麼多數據。我個人在四台伺服器上擁有超過 20TB 的容量。
但是,SQL Server 與其他一些 Microsoft 產品很相似,因為如果您有幾個僅很少使用的小型數據庫,您可以將它推到角落裡,通常對它很刻薄,它會立即振作起來而不是咬你(至少,不是馬上),但向外擴展需要更多的思考和努力。
我特別擔心他們是否計劃對伺服器進行適當的維護。在沒有事務日誌備份的情況下定期“將約 7.3 億條記錄轉儲到他們的數據庫中”將很快消耗他們的磁碟。
我也不放心:
他們正試圖從包括我們在內的三個獨立系統中獲取輸出。記錄與其網路上的欄位相關,因此具有在所有三個數據集中(大部分)相同的 URI。他們想要三個表,每個提供者一個,然後將它們連接在一起以回答問題。他們計劃在 SSMS 中與幾名具備 SQL Server/數據庫知識的員工一起完成這一切
如果他們決定對它執行糟糕的查詢,我不確定這個伺服器是否會高興。在我看來,數據可能沒有被規範化和/或可能不包含一個好的連接鍵。
最後但並非最不重要的一點是,我有過非常不愉快的經歷,“我們決定通過以下方式省錢
$$ letting the user administer his/her own server $$/$$ letting the nice kid in the mail room do it $$/$$ telling them we won’t support it but they can do whatever they want $$.” 修復起來總是既昂貴又耗時。