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

Откуда:
Сообщений: 65
SELECT @@VERSION

Microsoft SQL Server 2008 R2 (RTM) - 10.50.1600.1 (Intel X86) 
	Apr  2 2010 15:53:02 
	Copyright (c) Microsoft Corporation
	Developer Edition on Windows NT 5.2 <X86> (Build 3790: Service Pack 2)

DECLARE @data xml

SET @data = 
(
	SELECT TOP 3000 name AS n1, name AS n2, name AS n2, name AS n4
	FROM sys.objects o
	FOR XML PATH('RECORD'), ROOT('TABLE')
)

DECLARE @t TABLE 
(
	n1 varchar(100),
	n2 varchar(100),
	n3 varchar(100),
	n4 varchar(100)
)
INSERT INTO @t ( n1, n2, n3, n4 )  -- comment this
SELECT 
	r.value( 'n1[1]', 'varchar(100)' ),
	r.value( 'n2[1]', 'varchar(100)' ),
	r.value( 'n3[1]', 'varchar(100)' ),
	r.value( 'n4[1]', 'varchar(100)' )
FROM @data.nodes('/TABLE[1]/RECORD') AS t(r)

SELECT * FROM @t

Выполняется около 3 минут, если закомментировать строку с insert, то время работы менее секунды. На 2005 работает со вставкой и без - менее секунды. В чем проблема? Есть ли решение?
26 май 11, 18:14    [10715492]     Ответить | Цитировать Сообщить модератору
 Re: Тормозит вставка из xml на 2008 R2  [new]
daw
Member

Откуда: Муром -> Москва
Сообщений: 7381
dbcc traceon(4130)

http://support.microsoft.com/kb/957205

у меня на

Microsoft SQL Server 2008 R2 (RTM) - 10.50.1600.1 (Intel X86) Apr 2 2010 15:53:02 Copyright (c) Microsoft Corporation Express Edition with Advanced Services on Windows NT 5.1 <X86> (Build 2600: Service Pack 3)

сработало, по крайней мере.
выполнять перед батчем с запросом (один раз для каждого соединения), или прописать в startup parameters сервера.
26 май 11, 18:57    [10715683]     Ответить | Цитировать Сообщить модератору
 Re: Тормозит вставка из xml на 2008 R2  [new]
a_shar
Member

Откуда:
Сообщений: 65
Спасибо, сработало.
26 май 11, 19:16    [10715759]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить