在Classic asp中,我可以在Session对象中存储数据库连接吗?

在Classic asp中,我可以在Session对象中存储数据库连接吗?

问题描述:

我可以在Session对象中存储数据库连接吗?在Classic asp中,我可以在Session对象中存储数据库连接吗?

从这个链接http://support.microsoft.com/default.aspx/kb/243543

在会议你不应该存储数据库的连接。

从我的理解,如果你这样做,然后对同一用户的后续ASP请求必须使用相同的线程。

因此,如果你有一个繁忙的网站,它可能'你的'线程已被其他人使用,所以你将不得不等待它可用。

乘以更多的用户,你会让每个人都在等待每个人的线程和一个不太敏感的网站。

+0

http://support.microsoft.com/default.aspx/kb/243543已损坏 – 2016-05-04 05:00:55

一般不建议这样做,应用程序变量中的连接字符串,以及一个漂亮的帮助函数/类是一个非常优选的方法。 这里 是一些参考。 (死链接删除,因为它现在导致一个phishy网站)

我似乎记得这样做会有单线程的效果,这将是一件坏事。

通常,我不会在应用程序变量中存储任何对象(当然不会在会话变量中)。

当谈到数据库连接时,这是一个明确的禁忌;此外,绝对没有必要。

如果您使用ADO与数据库进行通讯,如果使用相同的连接字符串(是的,通过各种手段,存储在应用程序中的变量),为您所有的数据库连接,“连接池”将在幕后实施。这意味着,当你释放一个连接时,它不会被实际销毁 - 对于想要相同连接的下一个家伙来说,它被放置在一边。因此,下一次请求相同的连接时,它会被拉下来,而不必被明确地创建和实例化 - 这是一个相当不错的效率提升。

正如CJM所说,不需要在Session对象中存储连接:连接池更好。