在生产中使用LocalDb是正常的吗?

时间:2012-11-26 19:01:04

标签: c# asp.net sql-server iis localdb

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

我问,因为我想知道它是否在生产中没有任何速度问题。

这是我想在制作中使用的连接字符串

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

3 个答案:

答案 0 :(得分:42)

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

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

如果您想了解更多信息,我建议您使用此post on using LocalDB from full IIS, part 1its follow up, part 2。他们会详细介绍。

答案 1 :(得分:11)

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

允许 - 是的。来自引入LocalDB的Microsoft SQL Server Express博客的Here is a quote

“...如果LocalDB的简单性(和限制)符合目标应用程序环境的需求,开发人员可以继续在生产中使用它,因为LocalDB也是一个非常好的嵌入式数据库。< /强>“

更新(2019年3月)

现在在几十个生产站点中使用LocalDB两年后,我将确认它是有效的。但是,如果您需要免费的多用户(LocalDB术语中的“共享”)数据库,请改用SQL Server Express 。 LocalDB不是一个好的多用户解决方案。要克服许多障碍。我现在没有时间,但如果您想了解有关这些障碍和各自解决方法的详细信息,请发表评论,我会在此处或其他问题中记录这些内容。

答案 2 :(得分:6)

我不这么认为,

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

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