powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / XML и Query Analizer
1 сообщений из 1, страница 1 из 1
XML и Query Analizer
    #32033951
Hibernate
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
есть следующая SP:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
CREATE PROCEDURE sp_Test
@PropertyXML VarChar( 8000 ) = NULL
As
Create Table #Properties (PropertyID Int, EnumValueID int) 
If Not @PropertyXML Is Null
Begin  --получим в виде таблицы параметры, переданные в виде XML
 
	EXEC sp_xml_preparedocument @XMLHandler OUTPUT, @PropertyXML, @PropertyXML
	insert into #Properties (PropertyID, EnumValueID) 
		SELECT I_D, Val 
		FROM OpenXML(@XMLHandler, '/xml/rs:data/rs:insert/z:row',  0 ) 
		WITH (I_D Int, Val int) 
	EXEC sp_xml_removedocument @XMLHandler
End

Select Count(tbl_GoodsNames.I_D)
From tbl_GoodsNames
Where ((tbl_GoodsNames.I_D In 
	(Select GoodsNameID 
	From tbl_3_GoodsNAmesPropEnum 
	Inner Join #Properties 
	On tbl_3_GoodsNAmesPropEnum.PropertyID = Properties.PropertyID 
	Where #Properties.EnumValueID = tbl_3_GoodsNAmesPropEnum.EnumValueID))
Or (@PropertyXML Is NULL))


Эта процедура отрабатывает примерно 2 мин.
Но самое интересное, что этот код, скопированный в QA отрабатывает за 1-2 с (!).

В XML передается 1-2 строки, если эти значения проинсертить в #Properties вручную, без XML, то все отрабатывает за 1 с. Если убрать select и оставить только IF, то тоже работает 1 с. как только вместе - сразу 2 миуты... Я уже не знаю что делать.
...
Рейтинг: 0 / 0
1 сообщений из 1, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / XML и Query Analizer
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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