База данных запросов и запрос данных - PullRequest
0 голосов
/ 13 февраля 2012

У меня есть ситуация, когда я хочу вернуть количество членов в базе данных по категориям, у меня всего 6 категорий и около 15 000 членов.

Поэтому лучше запросить базу данных 6 раз, используя что-то вроде «select count (*)», или лучше вернуть все записи, возвращая только столбец категории, а затем запросить таблицу результатов данных для каждого из 6 категорий, чтобы получить счет.

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

Второй метод запрашивает БД шесть раз, но предоставляет результат с помощью меньшего количества данных и без дальнейшей обработки.

Я думаю, что я спрашиваю в движке базы данных быстрее или .net? Я использую sqlserver 2008 с .net4

Есть ли лучшие практики или причины, по которым люди знают, почему я должен использовать один метод над другим?

Спасибо

Ответы [ 2 ]

2 голосов
/ 13 февраля 2012

Я понимаю, вам нужны только Катетори и ГрафТаким образом, вы можете сделать только один раз запрос следующим образом.

0 голосов
/ 13 февраля 2012

Кажется, не стоит отправлять запрос к БД 6 раз, пока у вас есть группа. Не говоря уже о том, нужно ли вам присоединить категорию к таблице категорий. Кроме того, у него есть недостаток, заключающийся в том, что вам придется либо жестко кодировать категории, либо запрашивать таблицы просто, чтобы получить категории (если нет отдельной таблицы категорий поиска). Если вы запросите базу данных, чтобы получить 6 категорий динамически ... как бы вы это сделали? С отборным отличным? С группой?

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

select category, count(*) CategoryCount from table
group by category
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...