37

我知道使用LocalDb非常好并且易​​于开发,我想知道在 IIS 服务器上托管网站时在生产中使用它是否是个好主意?

我问是因为我想知道它在生产中是否不会出现任何速度问题。

这是我想在生产中使用的连接字符串

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

3 回答 3

47

LocalDB 在生产中是绝对支持的。从性能的角度来看,它与 SQL Server Express 相同,因为它们共享相同的数据库引擎。

现在,对于在完整 IIS 中运行的站点,我建议使用基于服务的 SQL Server Express 实例。由于 IIS 作为服务运行,因此最好也有一个服务托管数据库。这意味着您应该在连接字符串中使用User Instance=trueAttachDbFileName=...

如果您想了解更多信息,我推荐这篇关于从完整 IIS 中使用 LocalDB 的帖子,第 1 部分及其后续内容,第 2 部分。他们进入更多细节。

于 2012-11-26T20:10:22.513 回答
17

“正常” - 很难说,这是一个相对的术语。

允许 - 是的。 以下是引入 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问题。警告:我没有亲自测试过这个修复。

于 2016-12-06T15:12:10.890 回答
7

我不这么认为,

尽管 LocalDb 和 SQLExpress 在性能上可能相同,但如果一段时间内没有任何请求,LocalDb 的进程会自行关闭。而且通常下一个请求需要很长时间才能响应(或者更糟糕的是,它会超时)。

我建议您安装自己的 SQLEXPRESS 实例。

于 2015-10-27T08:19:04.057 回答