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

Sta*_*tan 29 c# sql-server asp.net iis localdb

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

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

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

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

Krz*_*zyk 42

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

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

如果您想了解更多,我建议这个使用的LocalDB从完整的IIS,第1部分职位和其跟进,第2部分.他们会详细介绍.

  • 我不明白这是一个声明,即LocalDB"绝对不支持生产".它的创建是为了让开发人员的生活更轻松,其中包括嵌入式数据库场景(但不包括在进程中).在IIS中使用它是一个延伸,我在答案中已经指出了这一点. (5认同)
  • LocalDB 是 SqlLite 的 .net 替代方案(不需要权限),所以我认为相同的语句适用于 LocalDB:http://stackoverflow.com/questions/913067/sqlite-as-a-production-database-for-a - 考虑到用例的低流量站点。你可以在生产中使用它,但只考虑低流量的东西 (3认同)
  • @amir110,默认情况下,LocalDB 实例在 5 分钟无活动后关闭。该实例将在*由其所有者/创建者*下次连接到其数据库之一时自动再次启动。相反,如果连接的用户不是所有者/创建者(在共享实例的情况下),它将“不会”自动启动。如果此评论不能帮助您解决问题,请发布更详细的新问题,并包括此处评论中包含新问题的链接,以便我们收到通知。 (2认同)

Ric*_* II 12

"正常" - 很难说,这是一个相对的术语.

允许 - 是的. 以下是 引入LocalDB的Microsoft SQL Server Express博客的引用:

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


Hos*_*ost 6

我不这么认为,

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

我建议你安装自己的SQLEXPRESS实例.