我目前正在使用ASP.NET创建一个Webportal,它在很大程度上依赖于数据库的使用.基本上,来自任何用户的每个(几乎每个:P)GET查询都将导致从Web服务器查询数据库.
现在,我对此非常陌生,而且我非常关注性能.由于我在这方面缺乏经验,我真的不知道会发生什么.
我的问题是,使用ADO.NET,只是将静态连接从Web服务器打开到数据库,然后在每次查询数据库之前检查此连接服务器端的完整性,这是一个更明智的选择吗? - 或者,我最好在每次查询之前打开连接然后关闭它?
在我的脑海中,第一个选项会更好,因为您在每个查询之前节省了时间握手等,并且您在数据库和服务器端都节省了内存,因为您只有一个连接,但这种方法是否有任何缺陷?2个查询是否可以同时发送可能会破坏彼此的完整性或混合返回的数据集?
我已经尝试在这里和网上搜索,找到一些关于此的最佳实践,但没有运气.我得到的最近的是:保持数据库连接打开很长时间是安全的,但这似乎更适合于你有多个数据库用户的分布式系统,而我只有我的网络服务器..
你很早就担心表现了.
无论如何,框架汇集了连接.您应该打开它们,使用它们,并尽快处理它们.
就像是...
public object Load() { using (SqlConnection cn = new SqlConnection(connectionString)) using (SqlCommand cm = new SqlCommand(commandString, cn)) { cn.Open(); return cm.ExecuteScalar(); } }