Могу ли я сохранить соединение с базой данных в объекте Session в Classic asp? - PullRequest
3 голосов
/ 18 сентября 2008

Можно ли сохранить соединение с базой данных в объекте Session?

Ответы [ 5 ]

5 голосов
/ 18 сентября 2008

Как правило, это не рекомендуется, так как строка соединения в переменной Application с хорошей вспомогательной функцией / классом является наиболее предпочтительным методом. Здесь является некоторой ссылкой. (мертвая ссылка удалена, поскольку теперь она ведет на фишинговый сайт)

2 голосов
/ 23 сентября 2008

В общем случае я не буду хранить объекты в переменных приложения (и, конечно, не в переменных сеанса).

Когда дело доходит до соединений с базой данных, это определенно нет-нет; кроме того, в этом нет абсолютно никакой необходимости.

Если вы используете ADO для связи с базой данных, если вы используете одну и ту же строку подключения (да, конечно, сохраните этот в переменной приложения) для всех ваших соединения с базой данных, «пул соединений» будет реализован за кулисами. Это означает, что когда вы освобождаете соединение, оно на самом деле не разрушается - оно помещается в одну сторону для следующих парней, которые хотят такое же соединение. Поэтому в следующий раз, когда вы запрашиваете то же соединение, оно устанавливается «с полки», а не должно быть явно создано и создано - это довольно приятное повышение эффективности.

2 голосов
/ 18 сентября 2008

Я помню, что это приведет к однопоточности вашего приложения, что было бы плохо.

1 голос
/ 26 сентября 2008

По этой ссылке http://support.microsoft.com/default.aspx/kb/243543

Не следует хранить соединение с базой данных в сеансе.

Из того, что я понимаю, если вы делаете, то последующие запросы ASP для того же пользователя должны использовать тот же поток.

Поэтому, если у вас есть занятый сайт, вполне вероятно, что «ваш» поток уже будет использоваться кем-то другим, поэтому вам придется подождать, пока он станет доступным.

Умножьте это на гораздо большее количество пользователей, и вы заставите всех ждать, пока у каждого не будет темы, и не очень отзывчивого сайта.

0 голосов
/ 23 сентября 2008

Как говорит CJM, нет необходимости хранить соединение в объекте Session: пул соединений гораздо лучше.

...