Sql-Server

可以從 MS Access 遷移到 SQL Server 或 … 使數據庫更快嗎?

  • January 5, 2014

一家公司要求我將他們的數據庫從 MS Access 遷移到 SQL Server 或 MySQL,因為他們認為在這些引擎上他們的數據庫會執行得更快。但我想知道他們的問題是否不是因為他們的數據庫設計而不是 MS Access。

我認為他們的數據庫小於 1GB,並且始終小於 10GB。讓我悲觀100GB!恐怕遷移不會加快他們的查詢執行時間,他們會仍然不滿意。我想知道他們的緩慢互動是否可能是因為 Access 或者我應該聯繫諮詢他們以繼續使用 Access 並更改設計、優化網路和程序?

在哪種情況下我應該考慮遷移到像 MongoDB 這樣的非關係數據庫?

Access 和 SQL Server 在根本上有所不同。在 Access 中,所有數據處理都由客戶端完成,而在 SQL Server 中,所有處理(在傳遞查詢結果之前)都由中央伺服器程序完成。

這有幾個性能影響。在 Access 中,客戶端必須通過網路傳輸生成查詢結果所需的所有數據。此外,您沒有對網路驅動器上數據文件的獨占訪問權限,這限制了客戶端上的記憶體選項(它不能輕易知道數據是否同時被修改)。

SQL Server 對其(本地或半本地)數據文件進行獨占訪問,因此可以記憶體讀取和(部分)寫入,它可以通過刪除盡可能多的隨機訪問來優化文件訪問,並且只需要傳輸查詢結果通過網路傳輸到客戶端,這通常比生成它所需的數據小得多,尤其是在使用像SUMCOUNT.

另一方面,雖然 SQL Server 可以並且確實進行了有效優化,但它已經在伺服器處理器和記憶體的物理限制內完成了多使用者訪問的所有繁重工作,而 Access 只需要同步物理數據訪問所有計算工作並將其解除安裝到客戶端電腦上。

因此,正如其他人在此處所寫的那樣,您是否會看到性能提升取決於訪問 Acess-DB-File(s) 的作業系統和網路協議、您將放置的 SQL Server 的統計資訊、數量和活動使用者和他們執行的查詢的性質。也許您有足夠的資訊可以根據這些資訊做出有根據的猜測。

引用自:https://dba.stackexchange.com/questions/56105