我知道使用LocalDb
非常好并且易于开发,我想知道在IIS服务器上托管网站时,在生产中使用它是否是个好主意?
我问,因为我想知道它是否在生产中没有任何速度问题。
这是我想在制作中使用的连接字符串
Server=(LocalDB)\\v11.0;Integrated Security=SSPI;MultipleActiveResultSets=true;
AttachDBFilename=|DataDirectory|ProjectDB.mdf;
答案 0 :(得分:42)
生产中绝对支持LocalDB。从性能的角度来看,它与SQL Server Express完全相同,因为它们共享相同的数据库引擎。
现在,对于在完整IIS中运行的站点,我建议使用基于服务的SQL Server Express实例。由于IIS作为服务运行,因此最好也有一个服务托管数据库。这意味着您应该不在您的连接字符串中使用User Instance=true
或AttachDbFileName=...
。
如果您想了解更多信息,我建议您使用此post on using LocalDB from full IIS, part 1和its 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实例。