Session 在经典asp中,我可以在会话对象中存储数据库连接吗?

Session 在经典asp中,我可以在会话对象中存储数据库连接吗?,session,asp-classic,database-connection,Session,Asp Classic,Database Connection,我可以在会话对象中存储数据库连接吗?通常不建议这样做,应用程序变量中的连接字符串和一个很好的助手函数/类是首选方法。这里有一些参考资料。(死链接已删除,因为它现在会导致钓鱼网站)我似乎记得这样做会对应用程序产生单线程的效果,这将是一件坏事 一般来说,我不会将任何对象存储在应用程序变量中(当然也不会存储在会话变量中) 当涉及到数据库连接时,这是一个明确的否定;此外,绝对没有必要 如果您使用ADO与数据库通信,如果您对所有数据库连接使用相同的连接字符串(是的,请务必将其存储在应用程序变量中),则“连

我可以在会话对象中存储数据库连接吗?

通常不建议这样做,应用程序变量中的连接字符串和一个很好的助手函数/类是首选方法。这里有一些参考资料。(死链接已删除,因为它现在会导致钓鱼网站)

我似乎记得这样做会对应用程序产生单线程的效果,这将是一件坏事

一般来说,我不会将任何对象存储在应用程序变量中(当然也不会存储在会话变量中)

当涉及到数据库连接时,这是一个明确的否定;此外,绝对没有必要


如果您使用ADO与数据库通信,如果您对所有数据库连接使用相同的连接字符串(是的,请务必将其存储在应用程序变量中),则“连接池”将在后台实现。这意味着,当你释放一个连接时,它实际上并没有被破坏——它被放在一边,供下一个想要相同连接的人使用。因此,下次您请求相同的连接时,它将被“从架子上”拉下来,而不必显式地创建和实例化——这是一个非常好的效率改进。

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

来自此链接

您不应在会话中存储数据库连接

据我所知,如果您这样做,那么针对同一用户的后续ASP请求必须使用相同的线程

因此,如果您有一个繁忙的站点,那么“您的”线程可能已经被其他人使用,因此您必须等待它变得可用

再加上更多的用户,你会让每个人都在等待其他人的线程和一个不太响应的站点