Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / XML очень медленный поиск элементов с индексом >1 / 6 сообщений из 6, страница 1 из 1
06.10.2019, 11:40
    #39872156
unno
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XML очень медленный поиск элементов с индексом >1
Есть некий XML с повторяющимися тегами
Скрипт на 1000 записей отрабатывает мгновенно в случае обращения только к первому индексу
При попытке выборки элементов с индексом 2 скрипт выполняется с 100 раз дольше
Как это можно побороть?
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
declare @xml XML,@str varchar(max)
select			@str    = '<DATA>'
select top 1000 @str=@str+'<FLIGHT ID="1"><ROUTE NAPR="a"/><ROUTE NAPR="b"/></FLIGHT>' from sysobjects
set				@str=@str+'</DATA>'
set @xml=@str

SELECT
	ID =					nullif(c.value('@ID', 'INT' ),''),  
	ROUTE1 =				nullif(c.value('(ROUTE[1]/@NAPR)', 'varchar(50)' ),'')
	--,ROUTE2 =				nullif(c.value('(ROUTE[2]/@NAPR)', 'varchar(50)' ),'') 			
FROM @xml.nodes('/DATA/FLIGHT') t(c)
...
Рейтинг: 0 / 0
06.10.2019, 11:58
    #39872160
invm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XML очень медленный поиск элементов с индексом >1
Код: sql
1.
2.
3.
4.
5.
6.
7.
SELECT
	ID =					nullif(t.c.value('@ID', 'INT' ),''),  
	ROUTE1 =				nullif(a.n.value('@NAPR', 'varchar(50)' ),'')
	,ROUTE2 =				nullif(b.n.value('@NAPR', 'varchar(50)' ),'') 			
FROM @xml.nodes('/DATA/FLIGHT') t(c) cross apply
t.c.nodes('ROUTE[1]') a(n) cross apply
t.c.nodes('ROUTE[2]') b(n);
...
Рейтинг: 0 / 0
06.10.2019, 12:18
    #39872163
unno
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XML очень медленный поиск элементов с индексом >1
спасибо, работает
cross заменил на outer, теги не всегда заданы
А чем вызвано такое резкое замедление при прямом обращении в XPATH?
...
Рейтинг: 0 / 0
06.10.2019, 12:33
    #39872166
invm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XML очень медленный поиск элементов с индексом >1
unnoА чем вызвано такое резкое замедление при прямом обращении в XPATH?Особенности реализации.
На 2017-ом замедлений нет.
...
Рейтинг: 0 / 0
07.10.2019, 10:36
    #39872436
uaggster
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XML очень медленный поиск элементов с индексом >1
А Option (optimize for UNKNOWN) без переписывания запроса - не прокатит?
Была какая-то долгоиграющая бага, подобным образом лечилась.
...
Рейтинг: 0 / 0
07.10.2019, 22:11
    #39873042
unno
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XML очень медленный поиск элементов с индексом >1
это опция помогает только с неправильным кешем плана
тут она не играет
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / XML очень медленный поиск элементов с индексом >1 / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]