繁体   English   中英

C#-我应该使用静态数据库连接

[英]C# - Should I use static database connection

在用于连接到Orace数据库的应用程序中,我总是创建一个新连接,将其打开,执行OracleCommands,最后再将其关闭。 最近,我认为实现静态连接将是一个更好的主意。 说我有一个静态连接,可以从任何地方访问。 每次需要连接数据库时,我都可以检查静态连接的状态,如果尚未打开,请打开它,然后再关闭它。 您认为这将是有益的还是存在更多的不利条件?

我假设您在这里使用ODBC,因为您没有确切说明并且通常使用它。

不,您每次都应使用一个新的连接,这是Microsoft建议的标准做法。 如果您使用的是ODBC等,则Windows将管理这些连接,将它们缓存以供重用,这样可以更轻松地管理事物的生命周期。

如果您使用静态连接,则可能过早处置它或在不知情的情况下将其关闭。 总的来说,这只是比较尴尬和过早的优化。

要部署高性能应用程序,您通常必须使用连接池。 但是,当您使用用于ODBC的.NET Framework数据提供程序时,不必启用连接池,因为该提供程序会自动进行管理。

有关更多信息,请参见OdbcConnection

通常,不,您不应该使用单个连接-所有.NET ADO.NET提供程序都支持连接池,正常的模式是根据需要打开/关闭连接(在usingtry/finally块中)以确保在发生异常时关闭连接)。

在单线程客户端应用程序中,您可以使用共享的静态连接,但是它不太可能给您带来任何可衡量的性能收益-因此不要这样做。

在任何其他应用程序中,您绝对不应使用共享静态连接,因为它不是线程安全的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM