我有一个winforms应用程序正在执行以下操作:
每个查询:
因为我们试图避免必须保持数据库连接打开。这会受到性能的影响,因为我们每次都必须连接/断开连接。
这里理想化的模型是什么,具有最快的性能,但没有开放连接太长时间。这里有最好的做法吗?
答案 0 :(得分:4)
最有效的方法是连接池,ADO.NET does this automatically for you只要您确保关闭连接即可。只需将SqlConnection
个对象包装到using
语句中,您就不必担心了。
答案 1 :(得分:1)
连接/断开连接池时,非常开销很小。您的瓶颈绝对是数据库查询本身,因此打开全局连接并没有帮助。
如果您的查询太慢,请尝试优化它们。如果这不起作用,您将看到缓存,异步提取或非规范化。我确实没有一个通用的用例来保持数据库连接。
答案 2 :(得分:0)
也许尝试考虑缓存数据?我自己的粗略测试表明,查询内存数据的速度比查询数据库中的相同数据快20倍。虽然这种方法可能不适合您的架构或数据需求,但如果可以的话,总是值得在某处查看经常访问的数据。