Выбор одинаково эффективен (с точки зрения скорости), если Вы используете * или столбцы.
различие о памяти, не скорости. То, когда Вы выбираете несколько столбцов SQL Server, должно выделить пространство памяти для обслуживания Вас запрос, включая все данные для всех столбцов, которые Вы запросили, даже если Вы только используете одного из них.
то, Что действительно имеет значение с точки зрения производительности, является планом выполнения, который в свою очередь зависит в большой степени от Вашего оператора Where и количества СОЕДИНЕНИЯ, ВНЕШНЕГО ОБЪЕДИНЕНИЯ, и т.д.
Для Вашего вопроса просто используют ВЫБОР *. При необходимости во всех столбцах нет никакого различия в производительности.
Если вы можете себе это позволить, я бы порекомендовал продукт Aspose.Words. Очень быстро, и Word не нужно устанавливать.
Кроме того, его гораздо проще использовать, чем офисное взаимодействие.
Ваш макро-подход - это именно то, как мы ускорили медленное взаимодействие с Excel (я думаю, используя версию 2003).
Мы обнаружили (по крайней мере, с Excel), что большая часть медлительности была вызвана повторением индивидуальные вызовы через взаимодействие. Мы начали группировать команды (то есть форматировать большие диапазоны, а затем изменять определенные ячейки по мере необходимости, а не формировать каждую ячейку по отдельности) и логически перешли к макросам.
Я думаю, что подход «макрос + шаблон» с радостью воплотится в жизнь.