Один совет по производительности, который я вижу вне очереди, использует UNION ALL
вместо UNION
, если вы намеренно не хотите отличных записей. Простое UNION
удалит дубликаты, что занимает много времени. UNION ALL
не делает этого.
Вы можете переписать его с помощью динамического SQL и цикла, но я думаю, что результат будет хуже. Если дублирующего кода достаточно, чтобы оправдать динамический SQL-подход, то я думаю, что он может быть оправдан.
В качестве альтернативы, вы рассматривали возможность перемещения логики из хранимой процедуры во что-то вроде LINQ? Для многих это не вариант, поэтому я просто спрашиваю.
Последнее замечание: не поддавайтесь желанию починить то, что не сломано, только чтобы оно выглядело чище. Если очистка поможет в техническом обслуживании, проверке и т. Д., То сделайте это.