Это должно быть хорошо.
Для большого количества строк (особенно если они содержат длинные строковые значения) я заметил, что эти внутренние таблицы констант могут занять много времени для компиляции , но я сомневаюсь, что вы столкнетесь с этой проблемой в течение 30 строки.
Из этого быстрого теста у них есть преимущество перед табличными переменными, поскольку SQL Server, похоже, хранит некоторую статистическую информацию о них, поэтому может выбрать подходящий тип соединения.
Я только что попробовал CTE с 500 строками и 50 разными значениями, и приблизительное число строк в приведенном ниже плане было правильным. (хотя это немного стыдно, что все это было решено во время компиляции и, вероятно, сгенерирован отдельный список id
с этой целью, что SQL Server не просто подставляет это в план, вместо того, чтобы сделайте это снова во время выполнения)