连接到SQL Server的winforms的理想设计。

时间:2008-11-23 17:50:50

标签: c# sql-server winforms

我有一个winforms应用程序正在执行以下操作:

每个查询

  1. Db connect
  2. Db查询
  3. Db disconnect
  4. 因为我们试图避免必须保持数据库连接打开。这会受到性能的影响,因为我们每次都必须连接/断开连接。

    这里理想化的模型是什么,具有最快的性能,但没有开放连接太长时间。这里有最好的做法吗?

3 个答案:

答案 0 :(得分:4)

最有效的方法是连接池,ADO.NET does this automatically for you只要您确保关闭连接即可。只需将SqlConnection个对象包装到using语句中,您就不必担心了。

答案 1 :(得分:1)

连接/断开连接池时,非常开销很小。您的瓶颈绝对是数据库查询本身,因此打开全局连接并没有帮助。

如果您的查询太慢,请尝试优化它们。如果这不起作用,您将看到缓存,异步提取或非规范化。我确实没有一个通用的用例来保持数据库连接。

答案 2 :(得分:0)

也许尝试考虑缓存数据?我自己的粗略测试表明,查询内存数据的速度比查询数据库中的相同数据快20倍。虽然这种方法可能不适合您的架构或数据需求,但如果可以的话,总是值得在某处查看经常访问的数据。