Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 стоит ли использовать OPENXML вместо динамического SQL  [new]
waszkiewicz
Member

Откуда:
Сообщений: 1087
Задача такая - удалить пачку записей. Список формируется на клиенте d формате xml.
Если выбирать между
declare @id int
exec sp_xml_preparedocument @id output,@xml
;with cte
as
(
select * from openxml(@id,'root/pack',1)
with(id int)
)
delete from dbo.proc_packs
from dbo.proc_packs pp 
inner join cte
on pp.id=cte.id
exec sp_xml_removedocument @id


и динамическим SQL навроде where id in('+@idlist+')'

что оптимальнее?

Microsoft SQL Server 2008 R2 (RTM) - 10.50.1617.0 (Intel X86) Apr 22 2011 11:57:00 Copyright (c) Microsoft Corporation Developer Edition on Windows NT 5.1 <X86> (Build 2600: Service Pack 3)
6 мар 13, 13:23    [14019219]     Ответить | Цитировать Сообщить модератору
 Re: стоит ли использовать OPENXML вместо динамического SQL  [new]
Паганель
Member

Откуда: Винница
Сообщений: 22552
waszkiewicz
и динамическим SQL навроде where id in('+@idlist+')'
если мне не изменяет склероз, оптимизатор это превратит в кучу OR-ов
6 мар 13, 13:26    [14019236]     Ответить | Цитировать Сообщить модератору
 Re: стоит ли использовать OPENXML вместо динамического SQL  [new]
waszkiewicz
Member

Откуда:
Сообщений: 1087
id еще и кластерный индекс
6 мар 13, 13:30    [14019289]     Ответить | Цитировать Сообщить модератору
 Re: стоит ли использовать OPENXML вместо динамического SQL  [new]
WarAnt
Member

Откуда: Питер
Сообщений: 2421
waszkiewicz,

если список небольшой, то безразницы если большой то join будет работать быстрее, особенно если выгрузить xml в таблицу
6 мар 13, 13:44    [14019405]     Ответить | Цитировать Сообщить модератору
 Re: стоит ли использовать OPENXML вместо динамического SQL  [new]
waszkiewicz
Member

Откуда:
Сообщений: 1087
WarAnt
waszkiewicz,

особенно если выгрузить xml в таблицу


так я вроде так и делаю
6 мар 13, 14:01    [14019539]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить