Developer29 Ответов: 0

Функция Stuff в SQL занимает больше времени


Я объединяю строковые значения с помощью функции Stuff. Но для этого требуется больше времени.Когда я гуглил, я узнал два способа: 1.индексирование и 2. перекрестное применение обоих методов, которые я реализовал в своем запросе. Но все равно это занимает больше времени. Как я могу оптимизировать функцию stuff? Есть ли какое - либо другое решение?

Что я уже пробовал:

SELECT p1.Data,
		STUFF((SELECT '-'+ Res 
               FROM View1 p2
               WHERE p2.Id = p1.Id 
			   Order by __seq__ID
               FOR XML PATH(''))
            ,1,1,'') AS 'Newcolumn'
		
FROM View1 p1

David_Wimbley

Не уверен, что это применимо, учитывая, что я не знаю, какие данные вы пытаетесь ввести, используя материал, и я ничего не знаю о вашей схеме, но пробовали ли вы использовать функции подстроки и замены вместо материала?

Developer29

можете ли вы привести какой-нибудь пример

David_Wimbley

Учитывая, что я ничего не знаю о вашей схеме/данных и не имею к ним доступа, вам лучше использовать функции google SUBSTRING и REPLACE, чтобы посмотреть, соответствуют ли они вашим потребностям.

ZurdoDev

Вы можете попробовать КОАЛЕСЦИРОВАТЬ.

Объявить @string NVARCHAR (MAX);
Выберите строку @ = КОАЛЕСЦИРУЮТ(@строка+ '-', ") + Рес
Откуда бы то ни было

Richard Deeming

Объединение значений строк в Transact-SQL[^]

Различные альтернативные методы в этой статье. Но у нас нет доступа к вашей базе данных, поэтому мы не можем сказать вам, какой из них будет самым быстрым, или как заставить их работать быстрее.

Если имя View1 означает, что вы выбираете из представления, то вам, вероятно, нужно оптимизировать представление, а также функцию.

0 Ответов