Уменьшить запрос SQL путем сохранения в переменную? - PullRequest
1 голос
/ 08 апреля 2011

Это может быть глупый вопрос?но можете ли вы выполнить SQL-запрос к базе данных, чтобы получить все записи для X, сохранить его в локальной переменной «myRecords» и затем отфильтровать результаты, содержащиеся в переменной «myRecords»?(Экономит ваше время на выполнение нескольких раундов / запросов к базе данных).

Это даже хорошая идея?или плохая идея?

Ответы [ 3 ]

3 голосов
/ 08 апреля 2011

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

2 голосов
/ 08 апреля 2011

Определенно !!Это называется кешированием ... но так много разных способов сделать это ... посмотрите эту замечательную статью http://wiki.asp.net/page.aspx/655/caching-in-aspnet/

0 голосов
/ 08 апреля 2011

Я согласен с К Ивановым. Просто хотел добавить несколько вещей.

Это может привести к значительному повышению производительности или к полной катастрофе. Редко это в середине двух.

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

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

Если вы кешируете данные на веб-сервере, возможно, вы радикально увеличиваете объем памяти вашего приложения. Кроме того, в зависимости от стратегии кэширования и характера ваших данных они могут быстро устареть, что приведет к плохим результатам.

Суть в том, что прежде чем пытаться пойти другим путем, убедитесь, что вы полностью понимаете проблему, которая у вас есть. Это может быть так просто, как подстройка индексов и / или добавление ОЗУ на ваш сервер БД. Их относительно легко реализовать, в то время как надежный механизм кэширования может быть благом или привести к еще большим проблемам.

...