Select * - плохая практика программирования. Это может привести к тому, что что-то сломается, как и спасти вещи от разрушения. Если вы запрашиваете только одну таблицу или представление, то повышения эффективности может не быть (хотя это возможно, если вы не собираетесь фактически использовать каждое поле). Если у вас есть внутреннее соединение, то у вас есть как минимум два поля, возвращающие одни и те же данные (поля соединения), и, таким образом, вы тратите впустую сетевые ресурсы для отправки избыточных данных обратно в приложение. Сначала вы этого не заметите, но по мере того, как наборы результатов будут становиться все больше и больше, у вас скоро будет сетевой конвейер, который заполнен и не нуждается в этом. Я не могу вспомнить ни одного случая, когда select * что-то выигрывает. Если добавлен новый столбец, и вам не нужно переходить к коду, чтобы что-то с ним сделать, тогда этот столбец не должен возвращаться по вашему запросу по определению. Если кто-то отбросит и заново создаст таблицу со столбцами в другом порядке, то во всех ваших запросах информация будет отображаться неправильно или будет давать неверные результаты, например, указание цены в поле номера детали в новой записи.
Кроме того, можно быстро перетаскивать имена столбцов из браузера объектов, так что это просто лень, а не эффективность в кодировании.