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

时间:2020-03-06 14:20:00  来源:igfitidea点击:

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

解决方案

通常不建议这样做,因为Application变量中的连接字符串带有良好的辅助函数/类是一种更可取的方法。这是一些参考。 (死链接已删除,因为它现在可以链接到网站)

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

通常,我不会在Application变量中存储任何对象(当然也不会在会话变量中存储)。

说到数据库连接,这是绝对不可以的。此外,绝对没有必要。

如果我们使用ADO与数据库通信,并且对所有数据库连接使用相同的连接字符串(是的,一定要将它存储在Application变量中),则将在后台实现"连接池"。这意味着,当我们释放连接时,它实际上并没有被破坏,而是将其放置在下一个想要相同连接的人的一边。因此,下次我们请求相同的连接时,它会被"立即下架",而不必显式创建和实例化,这是一个相当不错的效率改进。

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

通过此链接http://support.microsoft.com/default.aspx/kb/243543

我们不应该在会话中存储数据库连接。

据我了解,如果我们这样做,那么对同一用户的后续ASP请求必须使用同一线程。

因此,如果站点繁忙,则""线程可能已被其他人使用,因此我们必须等待它变为可用。

将其乘以更多的用户,我们将使每个人都在等待其他人的线程和一个不太响应的站点。