2013-06-04 2 views
0

Как я читал здесь, использование сеанса плохо для хранения больших объемов данных.Что использовать вместо сеанса?

У меня есть метод в C# в контроллере, который я вызываю из файла javascript (с вызовом ajax). Этот метод называется много раз, 500 или около того. В этом методе у меня есть цикл for, который петли 10 раз.

В первый раз, когда я его вызываю, я создаю новый сеанс и устанавливаю его в null. После этого, все время, которое я называю, для каждого цикла, я добавляю данные в сеанс.

Для небольших данных он отлично работает. На самом деле он работает даже для больших данных. Но проблема в том, что чем больше число звонков, тем медленнее он становится. В 500 раз требуется 5 часов.

Я читаю здесь: Storing large amounts of data in the Asp.net session Этот сеанс не подходит для хранения больших объемов данных.

Что я должен использовать в качестве альтернативы?

Я думал о сохранении его в db, но каждый раз, когда я вызываю метод, мне нужно иметь два запроса к db: один для получения данных и два для его сохранения.

Что делать, чтобы заставить его работать быстрее?

+1

База данных будет обычным ответом. Возможно, вы могли бы предоставить более подробную информацию, чтобы мы могли точно понять, почему база данных не будет работать в этой ситуации. Можете ли вы показать код? – mbeckish

+0

Я согласен с mbeckish. Если вы не используете базу данных, вам следует. –

ответ

0

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

Смежные вопросы