В SQL Server у меня есть табличная функция, основанная на интеграции CLR, GetArchiveImages. Я называю это примерно так:
SELECT ...
FROM Items
CROSS APPLY GetArchiveImages(Items.ID) AS archiveimages
WHERE ...
Проблема в том, что для каждого отдельного вызова функции возникают накладные расходы.
Если бы его можно было объединить со всей таблицей сразу, накладные расходы были бы весьма незначительными, но, поскольку он вызывается один раз для каждой строки, эти накладные расходы масштабируются с количеством строк.
Я не использую хранимую процедуру, потому что таблица, возвращаемая хранимой процедурой, не может быть соединена ни с чем (насколько мне известно).
Существует ли эффективный способ группового объединения таблиц с результатами хранимой процедуры или функции, а не построчно?
WITH
подойдет вам. Он создает временную таблицу на основе оператора выбора, к которому вы сможете присоединиться при выборе. Некоторая информация. Будет ли это то, что вы ищете? - person Tikkes   schedule 15.01.2013