簡體   English   中英

在生產中使用 LocalDb 是否正常?

[英]Is it normal to use LocalDb in production?

我知道使用LocalDb非常好並且易​​於開發,我想知道在 IIS 服務器上托管網站時在生產中使用它是否是個好主意?

我問是因為我想知道它在生產中是否不會出現任何速度問題。

這是我想在生產中使用的連接字符串

Server=(LocalDB)\\v11.0;Integrated Security=SSPI;MultipleActiveResultSets=true;
AttachDBFilename=|DataDirectory|ProjectDB.mdf;

LocalDB 在生產中是絕對支持的。 從性能的角度來看,它與 SQL Server Express 相同,因為它們共享相同的數據庫引擎。

現在,對於在完整 IIS 中運行的站點,我建議使用基於服務的 SQL Server Express 實例。 由於 IIS 作為服務運行,因此最好也有一個服務托管數據庫。 這意味着您不應在連接字符串中使用User Instance=trueAttachDbFileName=...

如果您想了解更多信息,我推薦這篇關於從完整 IIS 中使用 LocalDB 的帖子,第 1 部分及其后續內容,第 2 部分 他們進入更多細節。

“正常” - 很難說,這是一個相對的術語。

允許 - 是的。 以下是引入 LocalDB 的 Microsoft SQL Server Express 博客的引述

“...如果 LocalDB 的簡單性(和局限性)符合目標應用程序環境的需求,開發人員可以繼續在生產中使用它,因為 LocalDB 也是一個非常好的嵌入式數據庫。


更新(2019 年 3 月)

在數十個生產站點使用 LocalDB 兩年后,我將確認它有效。 但是,如果您需要免費的多用戶(LocalDB 術語中的“共享”)數據庫,請改用 SQL Server Express LocalDB 不是一個好的多用戶解決方案。 有許多障礙需要克服。 我現在沒有時間,但是如果您想了解有關這些障礙和相應解決方法的詳細信息,請發表評論,我將在此處或其他問題中記錄它們。


更新(2021 年 4 月)

Showstopper——共享(即多用戶)實例功能在 SQL Server LocalDB 2017 和 2019 中被破壞。安裝其中一個版本甚至會阻止訪問在早期版本中創建的共享實例。 問題記錄在這里 唯一已知的“解決方法”是卸載損壞的 LocalDB 版本,並使用 LocalDB 2016 或更早版本。


更新(2021 年 9 月)

現在修復了之前更新(2021 年 4 月更新)中提到的Showstopper問題 我已經成功測試了這兩個版本的修復。 最低版本為:

我不這么認為,

盡管 LocalDb 和 SQLExpress 在性能上可能相同,但如果一段時間內沒有任何請求,LocalDb 的進程會自行關閉。 而且通常下一個請求需要很長時間才能響應(或者更糟糕的是,它會超時)。

我建議您安裝自己的 SQLEXPRESS 實例。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM