Оптимизация 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
Определение какая база данных создает нагрузку на CPU
Медленный sql. Как найти, что вызывает замедление в хранимой процедуре MS SQL
Анализ статистики по индексам в базе данных SQL Server
Способы оптимизации SQL запросов с примерами
Как найти медленные проблемные запросы SQL Server. Оптимизация быстродействия SQL Server
SQL Server. Работа с индексами через запросы SQL
Где ставить индексы SQL Server
Оптимизация SQL запросов, план запроса в SQL Server
Решение проблем с большим кешем запросов SQL Server
Инструмент для анализа производительности запросов SQL Server Query Store
SQL Server Как найти запросы с проблемами (warning) в плане выполнения запроса (SQL Plan)
Ищем партнеров-разработчиков на T-SQL и PL/pgSQL
- Шаг 1. Создать концепт проекта
- Шаг 2. Получить оценку бюджета (КП)
- Шаг 3. Заключить договор
- Шаг 4. Создать совместно техническое задание
- Шаг 5. Поэтапная реализация проекта