Книжник
Зарегистрирован: 15 November 2007
Сообщения: 165
Примеры кода: 0
|
RE: Подскажите наиболее оптимальный вариант работы с данными |
04 August 2008 13:24 |
|
|
|
|
Приветствую всех читающих.
У меня возник такой вопрос:
Я работаю с компонентом ASPxGridView, работа происходит с различными таблицами из оракловской БД. Вывод таблицы происходит по ее названию введенному в TextBox'е.
Для доступа к данным пока используется SqlDataSource у которого для каждого пользователя генерится своя SelectCommand.
При выводе таблиц небольшого размера проблем собственно никаких.
Но если в таблице како-нить немеренное кол-во записей, то при выводе оракловский сервак нах умирает, это же происходит при одновременном коннекте туевой тучи пользователей, т.к. на каждого содается по сессии доступа к БД.
Хотелось бы услышать советы по решению данной проблемы (пока в голову приходит только прегон данных из БД в DataSet'ы для хранения на серве с сайтом, и сделать для них возможность обновления по требованию)
Заранее спасибо за помощь.
Я думаю, что через SqlDataSource это дело не решить, он для каждой сессии создаёт свой коннект.
Можно, вообще-то, отказаться от SqlDataSource и для баундных контролов напрямую использовать проперть DataSource, а не DataSourceId (который ссылается на SqlDataSource). В этот DataSource можно присваивать DataTable, DataView, и вообще любой IEnumerable. В таком случае можно попробовать вместо отдельных коннектов для каждого пользователя заблямцать при стартапе один, запихать его куда-нибудь в Application["MyConnect"], и потом добывать оттуда. Селекты, соответственно, надо будет задавать руками в DataAdapter.
По идее, на соединениях с сервером основной затык и идёт, если сессий много - попытка многих коннектов - ...
Правда, в этом случае на больших запросах отдельные пользователи могут быть заторможены. Я не помню, как там в одном коннекте устроена конкуренция, и есть ли она вообще. Отец, конечно, сам может. Но у быка лучше получается.
|
|