Если таблица достаточно мала, то несколько запросов не повредят.
Даже если она достаточно велика по сравнению с тем, где предложение WHERE
запроса работает эффективно из-за индексов, вы можете быть в порядке.
Вы можете объединить запросы - если предложения WHERE
совпадают, то вы можете объединить их.
IMO, чем проще код для чтения, тем проще для негоподдерживать.Если вы не получаете значительного прироста производительности, то консолидация на самом деле не имеет смысла.
Эффективность запроса измеряется количеством потребляемых ресурсов, а не тем, насколько хорошо он консолидирован или насколько сложным он выглядит.Возможно, вам лучше посмотреть планы выполнения и выяснить любые структурные изменения или индексы, которые вам нужны на столе.
Самое большое, что бросается в глаза, это то, что вы попробовали CURSOR
и теперь изменили его наWHILE
петля.
Вы обнаружите, что операции на основе множеств намного более удобны для работы с базой данных, чем курсоры.
РЕДАКТИРОВАНИЕ на основе комментария OP
Поскольку таблицаОжидается, что заполнится довольно быстро, вы должны сделать нагрузочный тест.Загрузите таблицу с кучей тестовых данных (скажем, за один год) и посмотрите, как выполняются ваши запросы.