Манипулировать данными SQL в памяти? - PullRequest
0 голосов
/ 24 августа 2009

У меня есть таблицы и множество процедур, которые работают с базой данных SQL.
В демонстрационных целях я хочу загрузить данные в память (возможно, набор данных, который я затем смогу сохранить в сеансе - демонстрация ограничена, поэтому ограничение памяти сервера не будет проблемой?) Из моих таблиц sql и управлять ими с помощью моих хранимых процедур.

Возможно ли это? Или мне нужно переписать все мои хранимые процедуры или даже заменить их кодом, который работает с набором данных?

Ответы [ 5 ]

1 голос
/ 17 апреля 2012

Хранимые процедуры хранятся в базе данных . Невозможно заставить один из них, полностью на сервере БД, работать с некоторой структурой в памяти обратно на веб-сервере - совершенно в другом месте!

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

Если вам нужно поменять пиццу, как только она появится у вас дома, вы должны либо заказать новую, либо изменить ее самостоятельно, используя свои собственные инструменты.

0 голосов
/ 15 сентября 2012

Фактически, вы можете сделать это. Это глупо, но возможно.

  1. Вы загружаете все таблицы с сервера SQL в приложение.
  2. Создание XML-документа, содержащего данные.
  3. Отправка хранимой процедуры XML в SQL (необходимо создать новые) и обработка ее

Говоря о пицце, это похоже на заказ всех возможных ингредиентов для отправки из Domino в ваш дом, вы открываете все коробки, переупорядочиваете их, а затем отправляете evrithing обратно в Domino, чтобы приготовить вам пиццу.

Удачи: D

0 голосов
/ 24 августа 2009

Теоретически вы можете загрузить всю свою базу данных в память и даже сохранить копию базы данных для каждого сеанса. Является ли это разумной вещью, это другое обсуждение. Все успешные ASP-приложения, о которых я слышал, не имеют состояния.

Совершенно невозможно заставить SQL Server манипулировать вашей памятью процесса, в которой находятся наборы данных ADO.Net, с помощью процедур Transact-SQL или любой другой технологии. Вам придется переписать все ваши процедуры как методы CLR в вашем приложении ASP.Net для работы с наборами данных ADO.Net.

0 голосов
/ 24 августа 2009

Рассматривали ли вы БД в памяти как SQLite? Проверьте мой ответ в этой теме. Есть и другие альтернативы.

0 голосов
/ 24 августа 2009

Если вы хотите, чтобы SQL Server управлял вашей таблицей в памяти, не существует гарантированного способа.

Вы можете создать переменную таблицы и заполнить ее набором данных, и он, вероятно, будет сохранен в памяти.

Проверьте этот ответ для получения дополнительной информации:

Поддерживает ли MS-SQL таблицы в памяти?

Кроме того, при некоторых настройках сервера вы можете поместить свою временную базу данных в виртуальный диск, что даст вам возможность работать не только с табличными переменными и надеждой, но вы можете хранить свой набор данных во временной таблице и быть уверенным это будет в оперативной памяти. Проверьте эту статью Microsoft:

http://support.microsoft.com/?scid=kb;en-us;917047&x=17&y=9

РЕДАКТИРОВАТЬ: Я ожидаю, что если набор данных помещается в память сервера (и их настроено на ограничение процесса), он будет храниться в памяти сервера. Но это только обоснованное предположение, поскольку я не знаком с архитектурой ASP.NET

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...