Оптимизация SQL - медленная конвертация таблицы в строку

Самый простой способ трансформации из таблицу в строку: 

declare @s  nvarchar(max) = ''
select @s=  @s + Value 
from t1

Однако при большом количестве строк / данных этот способ работает медленно.

Гораздо быстрее работает связка временной таблицы и STUFF.

DROP TABLE IF EXISTS #t
CREATE TABLE #t (st nvarCHAR(max))

insert into #t (st)
select value from table1 
	
declare @s nvarchar(max) = STUFF((	
                    SELECT st FROM  #t                                            	
                    FOR XML PATH(''), TYPE).value('.','nvarchar(max)') ,1,0, '')
drop table #t

Вместо select value from table1 может быть сколь угодно сложный запрос со своей генерацией текста (например, html разметка). 

 

 

 

 

Насколько полезной была статья?

Что еще посмотреть по SQL Server

Оптимизация запросов SQL. MS SQL Server Медленно работают запросы SELECT

SQL Server сильно грузит процессор. Проблемы CPU у процесса SQLServer. Оптимизация запросов SQL по CPU

Как найти медленные проблемные запросы SQL Server. Оптимизация быстродействия SQL Server

SQL Server. Работа с индексами через запросы SQL

Где ставить индексы SQL Server

SQL Server. Оптимизация SQL запросов, план запроса в SQL Server. Советы по оптимизация запросов SQL

Решение проблем с большим кешем запросов SQL Server

Инструмент для анализа производительности запросов SQL Server Query Store

SQL Server Как найти запросы с проблемами (warning) в плане выполнения запроса (SQL Plan)

Анализ статистики по индексам в базе данных SQL Server

Определение какая база данных создает нагрузку на CPU

Разработчик SQL, нужны клиенты и заказы?

Прямые заказы от клиентов. Нужно знать только SQL и HTML
Работа на MS SQL Server

Выгода от использования Falcon Space

В 2-3 раза экономнее и быстрее, чем заказная разработка
Более гибкая, чем коробочные решения и облачные сервисы
Используйте готовые решения и изменяйте под свои потребности
Нужна бесплатная консультация?
Планируете делать веб-проект?
Сайт использует Cookie. Правила конфиденциальности OK