Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Тормозит вложенный XML-запрос  [new]
Сергей1979
Member

Откуда:
Сообщений: 34
Почему запрос в таком виде тормозит
SELECT _YEAR AS '@CAPTION', _YEAR AS '@ID' , SUM(COST) AS '@COST',
	(SELECT _MONTH AS '@CAPTION', _MONTH AS '@ID' , SUM(COST) AS '@COST'
			,(SELECT TYPECARD AS '@CAPTION', TYPECARD AS '@ID' , SUM(COST) AS '@COST'
				,(SELECT FIO AS '@CAPTION', _LOGIN AS '@ID' , SUM(COST) AS '@COST', dbo.GET_MONTH_LIMIT_BY_EMPLOYEE(t1._year,t2._month,t4._login) AS '@LIMIT'
					,(SELECT TELEPHONE AS '@CAPTION', TELEPHONE AS '@ID', SSTATUS as '@SSTATUS' , SUM(COST) AS '@COST' 
					FROM DBO.V_CALLS_BY_EMPLOYEE t5 	
					WHERE t5._YEAR=t1._YEAR AND t5._MONTH=t2._MONTH and t5.TYPECARD=t3.TYPECARD and t5._LOGIN=t4._LOGIN AND t5._login='IvanovII' and  t5.COST>0
					GROUP BY TELEPHONE,SSTATUS
					ORDER BY '@CAPTION'
					FOR XML PATH('TELEPHONE'), TYPE)
				FROM DBO.V_CALLS_BY_EMPLOYEE t4 
				WHERE t4._year=t1._year and t4._MONTH=t2._MONTH AND t4.TYPECARD=t3.TYPECARD AND t4.TYPECARD=1 AND t4.COST>0
				GROUP BY FIO,_LOGIN
				ORDER BY FIO
				FOR XML PATH('ABONENT'), TYPE)
			FROM DBO.V_CALLS_BY_EMPLOYEE t3 
			WHERE t3._year=t1._year and t3._MONTH=t2._MONTH  AND t3._MONTH=3 AND t3.COST>0
			GROUP BY TYPECARD
			FOR XML PATH('TYPECARD'), TYPE)
	FROM dbo.V_CALLS_BY_EMPLOYEE t2 
	WHERE t2._year = 2012 and t2._YEAR=t1._YEAR AND t2.COST>0
	GROUP BY t2._YEAR, t2._MONTH 
	ORDER BY t2._MONTH DESC
	FOR XML PATH('MONTH'), TYPE)
FROM dbo.V_CALLS_BY_EMPLOYEE t1 
WHERE t1.COST>0
GROUP BY t1._YEAR  
ORDER BY t1._YEAR DESC 
FOR XML PATH('YEAR'), ROOT('YEARS') 


Время выполнения SQL Server:
 Время ЦП = 0 мс, истекшее время = 0 мс.

(строк обработано: 1)
Таблица "Worktable". Число просмотров 103, логических чтений 528, физических чтений 0, упреждающих чтений 0, lob логических чтений 0, lob физических чтений 0, lob упреждающих чтений 0.
Таблица "calls". Число просмотров 717, логических чтений 8315, физических чтений 0, упреждающих чтений 0, lob логических чтений 0, lob физических чтений 0, lob упреждающих чтений 0.
Таблица "detail_calls". Число просмотров 57, логических чтений 140, физических чтений 0, упреждающих чтений 0, lob логических чтений 0, lob физических чтений 0, lob упреждающих чтений 0.
Таблица "cards_abonents". Число просмотров 56, логических чтений 1092, физических чтений 0, упреждающих чтений 0, lob логических чтений 0, lob физических чтений 0, lob упреждающих чтений 0.
Таблица "ITILUsers". Число просмотров 3, логических чтений 12, физических чтений 0, упреждающих чтений 0, lob логических чтений 0, lob физических чтений 0, lob упреждающих чтений 0.

(строк обработано: 1)

Время выполнения SQL Server:
 Время ЦП = 1656 мс, истекшее время = 1752 мс.





А этот же самый запрос без вложенности уже не тормозит



select null,


(SELECT _YEAR AS '@CAPTION', _YEAR AS '@ID' , SUM(COST) AS '@COST'
FROM dbo.V_CALLS_BY_EMPLOYEE t1 
WHERE t1.COST>0
GROUP BY t1._YEAR  
ORDER BY t1._YEAR DESC 
FOR XML PATH('YEAR'), TYPE)

,(SELECT _MONTH AS '@CAPTION', _MONTH AS '@ID' , SUM(COST) AS '@COST'
FROM dbo.V_CALLS_BY_EMPLOYEE t2 
WHERE t2._year = 2012 AND t2.COST>0
GROUP BY t2._YEAR, t2._MONTH 
ORDER BY t2._MONTH DESC
FOR XML PATH('MONTH'), TYPE)

,(SELECT TYPECARD AS '@CAPTION', TYPECARD AS '@ID' , SUM(COST) AS '@COST'
FROM DBO.V_CALLS_BY_EMPLOYEE t3 
WHERE t3._year=2012 and t3._MONTH=3 AND t3.COST>0
GROUP BY TYPECARD
FOR XML PATH('TYPECARD'), TYPE)

,(SELECT FIO AS '@CAPTION', _LOGIN AS '@ID' , SUM(COST) AS '@COST', dbo.GET_MONTH_LIMIT_BY_EMPLOYEE(2012,3,'IvanovII') AS '@LIMIT'
FROM DBO.V_CALLS_BY_EMPLOYEE t4 
WHERE t4._year=2012 and t4._MONTH=3 AND t4.TYPECARD=1 AND t4.COST>0
GROUP BY FIO,_LOGIN
ORDER BY FIO
FOR XML PATH('ABONENT'), TYPE)

,(SELECT TELEPHONE AS '@CAPTION', TELEPHONE AS '@ID', SSTATUS as '@SSTATUS' , SUM(COST) AS '@COST' 
FROM DBO.V_CALLS_BY_EMPLOYEE t5 	
WHERE t5._YEAR=2012 AND t5._MONTH=3 and t5.TYPECARD=1 and t5._login='IvanovII' and  t5.COST>0
GROUP BY TELEPHONE,SSTATUS
ORDER BY '@CAPTION'
FOR XML PATH('TELEPHONE'), TYPE)

for xml PATH('YEARS')



Время выполнения SQL Server:
 Время ЦП = 0 мс, истекшее время = 0 мс.

(строк обработано: 1)
Таблица "calls". Число просмотров 89, логических чтений 967, физических чтений 0, упреждающих чтений 0, lob логических чтений 0, lob физических чтений 0, lob упреждающих чтений 0.
Таблица "detail_calls". Число просмотров 5, логических чтений 10, физических чтений 0, упреждающих чтений 0, lob логических чтений 0, lob физических чтений 0, lob упреждающих чтений 0.
Таблица "Worktable". Число просмотров 0, логических чтений 0, физических чтений 0, упреждающих чтений 0, lob логических чтений 0, lob физических чтений 0, lob упреждающих чтений 0.
Таблица "cards_abonents". Число просмотров 3, логических чтений 31, физических чтений 0, упреждающих чтений 0, lob логических чтений 0, lob физических чтений 0, lob упреждающих чтений 0.
Таблица "ITILUsers". Число просмотров 1, логических чтений 6, физических чтений 0, упреждающих чтений 0, lob логических чтений 0, lob физических чтений 0, lob упреждающих чтений 0.

(строк обработано: 1)

Время выполнения SQL Server:
 Время ЦП = 219 мс, истекшее время = 275 мс.
16 апр 12, 07:51    [12420706]     Ответить | Цитировать Сообщить модератору
 Re: Тормозит вложенный XML-запрос  [new]
Glory
Member

Откуда:
Сообщений: 104751
Сергей1979
А этот же самый запрос без вложенности уже не тормозит

Потому что это разные запросы
16 апр 12, 10:02    [12420993]     Ответить | Цитировать Сообщить модератору
 Re: Тормозит вложенный XML-запрос  [new]
Сергей1979
Member

Откуда:
Сообщений: 34
Ну тогда этот же запрос в старом синтаксисе работает на ура

SELECT 
	1 AS TAG 
	,0 AS PARENT
	,_YEAR AS 'YEAR!1!CAPTION'
	,_YEAR AS 'YEAR!1!ID'
	,NULL AS 'MONTH!2!CAPTION' 
	,NULL AS 'MONTH!2!ID' 
	,NULL AS 'TYPECARD!3!CAPTION'
	,NULL AS 'TYPECARD!3!ID'
	,NULL AS 'ABONENT!4!CAPTION'
	,NULL AS 'ABONENT!4!ID'
	,NULL AS 'TELEPHONE!5!CAPTION'
	,NULL AS 'TELEPHONE!5!ID'
	
	,SUM(COST) AS 'YEAR!1!COST'
	,NULL AS 'MONTH!2!COST'
	,NULL AS 'TYPECARD!3!COST'
	,NULL AS 'ABONENT!4!COST'
	,NULL AS 'TELEPHONE!5!COST'
	
FROM V_CALLS_BY_EMPLOYEE 
where cost>0
GROUP BY _YEAR



	UNION ALL 

	SELECT 2 AS TAG ,1 AS PARENT ,_YEAR ,_YEAR ,_MONTH ,_MONTH ,NULL ,NULL ,NULL ,NULL ,NULL ,NULL  ,NULL ,SUM(COST) ,NULL ,NULL ,NULL 		
	FROM V_CALLS_BY_EMPLOYEE 
	where cost>0 and _year=2012
	GROUP BY _YEAR,_MONTH

	

		UNION ALL 
		SELECT 3 AS TAG ,2 AS PARENT ,_YEAR ,_YEAR ,_MONTH ,_MONTH ,TYPECARD ,TYPECARD ,NULL ,NULL ,NULL ,NULL  ,NULL ,NULL ,SUM(COST) ,NULL ,NULL
		FROM V_CALLS_BY_EMPLOYEE 
		where cost>0 and _year=2012 and _month=3
		GROUP BY _YEAR,_MONTH,TYPECARD

		
			UNION ALL 
			SELECT 4 AS TAG ,3 AS PARENT ,_YEAR ,_YEAR ,_MONTH ,_MONTH ,TYPECARD ,TYPECARD ,FIO ,_LOGIN ,NULL ,NULL  ,NULL ,NULL ,NULL ,SUM(COST) ,NULL
			FROM V_CALLS_BY_EMPLOYEE 
			where cost>0 and _year=2012 and _month=3 and typecard=1
			GROUP BY _YEAR,_MONTH,TYPECARD,FIO,_LOGIN

			
				UNION ALL 
				SELECT 5 AS TAG ,4 AS PARENT ,_YEAR ,_YEAR ,_MONTH ,_MONTH ,TYPECARD ,TYPECARD ,FIO ,_LOGIN ,TELEPHONE ,TELEPHONE  ,NULL ,NULL ,NULL ,NULL ,SUM(COST)
				FROM V_CALLS_BY_EMPLOYEE 
				where cost>0 and _year=2012 and _month=3 and typecard=1 and _login='LedenevSV'
				GROUP BY _YEAR,_MONTH,TYPECARD,FIO,_LOGIN,TELEPHONE
				
ORDER BY 'YEAR!1!CAPTION' DESC,'MONTH!2!CAPTION','TYPECARD!3!CAPTION','ABONENT!4!CAPTION','TELEPHONE!5!CAPTION' 

FOR XML EXPLICIT 



Время выполнения SQL Server:
 Время ЦП = 0 мс, истекшее время = 0 мс.

(строк обработано: 59)
Таблица "ITILUsers". Число просмотров 1, логических чтений 162, физических чтений 0, упреждающих чтений 0, lob логических чтений 0, lob физических чтений 0, lob упреждающих чтений 0.
Таблица "Worktable". Число просмотров 0, логических чтений 0, физических чтений 0, упреждающих чтений 0, lob логических чтений 0, lob физических чтений 0, lob упреждающих чтений 0.
Таблица "calls". Число просмотров 89, логических чтений 967, физических чтений 0, упреждающих чтений 0, lob логических чтений 0, lob физических чтений 0, lob упреждающих чтений 0.
Таблица "detail_calls". Число просмотров 5, логических чтений 10, физических чтений 0, упреждающих чтений 0, lob логических чтений 0, lob физических чтений 0, lob упреждающих чтений 0.
Таблица "cards_abonents". Число просмотров 3, логических чтений 31, физических чтений 0, упреждающих чтений 0, lob логических чтений 0, lob физических чтений 0, lob упреждающих чтений 0.

(строк обработано: 1)

Время выполнения SQL Server:
 Время ЦП = 141 мс, истекшее время = 277 мс.
16 апр 12, 10:05    [12421005]     Ответить | Цитировать Сообщить модератору
 Re: Тормозит вложенный XML-запрос  [new]
Glory
Member

Откуда:
Сообщений: 104751
Сергей1979
Ну тогда этот же запрос в старом синтаксисе работает на ура

О чем ваш вопрос ?
Почему разные запросы выполняются за разное время ?
Ну так потому, что они разные.
Или вы считаете, что все запросы должны выполняться за одинаковое время ?
16 апр 12, 10:07    [12421016]     Ответить | Цитировать Сообщить модератору
 Re: Тормозит вложенный XML-запрос  [new]
Сергей1979
Member

Откуда:
Сообщений: 34
Вопрос в том, почему запросы возвращающие одно и тоже, работают разное время

синтаксис

SELECT CustomerID as "@CustomerID",
           (SELECT OrderID as "@OrderID"
            FROM Orders
            WHERE Orders.CustomerID = Customers.CustomerID
            FOR XML PATH('Order'), TYPE),
          (SELECT DISTINCT LastName as "@LastName"
           FROM Employees
           JOIN Orders ON Orders.EmployeeID = Employees.EmployeeID
           WHERE Customers.CustomerID = Orders.CustomerID
           FOR XML PATH('Employee'), TYPE)
FROM Customers
FOR XML PATH('Customer')


аналогичен запросам с использованием UNION ([url=]http://msdn.microsoft.com/en-us/library/ms345137(v=SQL.90).aspx#forxml2k5_topic4[/url])

Так почему разное время то ?
16 апр 12, 12:43    [12421974]     Ответить | Цитировать Сообщить модератору
 Re: Тормозит вложенный XML-запрос  [new]
iljy
Member

Откуда:
Сообщений: 8711
Сергей1979,

сосредоточтесь, отвечаем. Потому что запросы разные. Более подробные ответы в плане выполнения.
16 апр 12, 12:49    [12422018]     Ответить | Цитировать Сообщить модератору
 Re: Тормозит вложенный XML-запрос  [new]
Glory
Member

Откуда:
Сообщений: 104751
Сергей1979
Вопрос в том, почему запросы возвращающие одно и тоже, работают разное время

Два вычисления
1+1 = 2
498*2 - 248,5*4 = 2
тоже дают одинаковый результат
По-вашему, они должны выполняться за одинаковое время ?
16 апр 12, 12:49    [12422026]     Ответить | Цитировать Сообщить модератору
 Re: Тормозит вложенный XML-запрос  [new]
Сергей1979
Member

Откуда:
Сообщений: 34
Что то я особой разницы между запросом 1-ым и последним с использованием (union) не вижу, хоть убейте и по документации судя эти запросы аналогичны
16 апр 12, 12:53    [12422059]     Ответить | Цитировать Сообщить модератору
 Re: Тормозит вложенный XML-запрос  [new]
Glory
Member

Откуда:
Сообщений: 104751
Сергей1979
то то я особой разницы между запросом 1-ым и последним с использованием (union) не вижу, хоть убейте

Т.е. добавление вообще любой команды в запрос не должно его менять ?

Сергей1979
и по документации судя эти запросы аналогичны

И ссылку/цитату тоже приведете ?

Сообщение было отредактировано: 16 апр 12, 12:56
16 апр 12, 12:56    [12422074]     Ответить | Цитировать Сообщить модератору
 Re: Тормозит вложенный XML-запрос  [new]
invm
Member

Откуда: Москва
Сообщений: 9844
Сергей1979, запросы аналогичны, если у них совпадает план выполнения. У ваших запросов план совпадает?
16 апр 12, 12:56    [12422075]     Ответить | Цитировать Сообщить модератору
 Re: Тормозит вложенный XML-запрос  [new]
Сергей1979
Member

Откуда:
Сообщений: 34
Да, планы действительно разные.

Т.е. можн сделать вывод о том, что новый синтаксис и спользованием вложенных SELECTов и оператора PATH, не соотвествует запросу с ипользованием UNION. ХМ..
16 апр 12, 13:59    [12422447]     Ответить | Цитировать Сообщить модератору
 Re: Тормозит вложенный XML-запрос  [new]
Сергей1979
Member

Откуда:
Сообщений: 34
Привожу

[url=]http://msdn.microsoft.com/ru-ru/library/ms189885.aspx[/url]
автор
Режим PATH является также простым способом создания дополнительных вложенных объектов для отражения сложных свойств. Для построения таких XML-документов из набора строк можно использовать запросы FOR XML в режиме EXPLICIT, но режим PATH является более простой альтернативой зачастую громоздким запросам в режиме EXPLICIT. Режим PATH не просто позволяет писать вложенные запросы FOR XML с директивой TYPE для возврата экземпляров типа xml, он позволяет делать это гораздо проще.



Glory
Сергей1979
то то я особой разницы между запросом 1-ым и последним с использованием (union) не вижу, хоть убейте

Т.е. добавление вообще любой команды в запрос не должно его менять ?

Сергей1979
и по документации судя эти запросы аналогичны

И ссылку/цитату тоже приведете ?
16 апр 12, 14:07    [12422508]     Ответить | Цитировать Сообщить модератору
 Re: Тормозит вложенный XML-запрос  [new]
Glory
Member

Откуда:
Сообщений: 104751
Сергей1979
Привожу

[url=]http://msdn.microsoft.com/ru-ru/library/ms189885.aspx[/url]
автор
Режим PATH является также простым способом создания дополнительных вложенных объектов для отражения сложных свойств. Для построения таких XML-документов из набора строк можно использовать запросы FOR XML в режиме EXPLICIT, но режим PATH является более простой альтернативой зачастую громоздким запросам в режиме EXPLICIT. Режим PATH не просто позволяет писать вложенные запросы FOR XML с директивой TYPE для возврата экземпляров типа xml, он позволяет делать это гораздо проще.

Что то я не вижу здесь утверждения того, что запрос с UNION _должен_ работать также
И не вижу утверждения того, что замена и перенос подзапросов никак не влияют на то, каким способом будет выполняться общий запрос
16 апр 12, 14:15    [12422591]     Ответить | Цитировать Сообщить модератору
 Re: Тормозит вложенный XML-запрос  [new]
iljy
Member

Откуда:
Сообщений: 8711
Сергей1979
Да, планы действительно разные.

Т.е. можн сделать вывод о том, что новый синтаксис и спользованием вложенных SELECTов и оператора PATH, не соотвествует запросу с ипользованием UNION. ХМ..

Обычно делают вывод, что новый синтаксис может также давать новую семантику. И она вовсе не обязана даже полностью покрывать старую. Ну пользоваться синтаксисом конечно надо уметь, а то у вас в общем случае даже разные хмл получатся, так что рассуждения вообще ни о чем.
16 апр 12, 14:20    [12422624]     Ответить | Цитировать Сообщить модератору
 Re: Тормозит вложенный XML-запрос  [new]
Сергей1979
Member

Откуда:
Сообщений: 34
Упростил запросы, чтобы было понятней.

1 запрос
Использование вложенного Select и оператора PATH

SELECT FIO AS '@CAPTION', SUM(COST) AS '@COST'

	,(SELECT TELEPHONE AS '@CAPTION', SUM(COST) AS '@COST' 
	FROM DBO.V_CALLS_BY_EMPLOYEE t2 	
	WHERE t2._YEAR=2012 AND t2._MONTH=3 and t2.TYPECARD=1 and t2._LOGIN=t1._LOGIN AND t2.COST>0
	GROUP BY TELEPHONE,SSTATUS
	FOR XML PATH('TELEPHONE'), TYPE)

FROM DBO.V_CALLS_BY_EMPLOYEE t1 
WHERE t1._year=2012 and t1._MONTH=3 AND t1.TYPECARD=1 and t1.COST>0
GROUP BY FIO,_LOGIN
FOR XML PATH('ABONENT')

(строк обработано: 51)
Таблица "ITILUsers". Число просмотров 9, логических чтений 13, физических чтений 0, упреждающих чтений 0, lob логических чтений 0, lob физических чтений 0, lob упреждающих чтений 0.
Таблица "cards_abonents". Число просмотров 60, логических чтений 589, физических чтений 0, упреждающих чтений 0, lob логических чтений 0, lob физических чтений 0, lob упреждающих чтений 0.
Таблица "detail_calls". Число просмотров 52, логических чтений 104, физических чтений 0, упреждающих чтений 0, lob логических чтений 0, lob физических чтений 0, lob упреждающих чтений 0.
Таблица "calls". Число просмотров 676, логических чтений 7540, физических чтений 0, упреждающих чтений 0, lob логических чтений 0, lob физических чтений 0, lob упреждающих чтений 0.
Таблица "Worktable". Число просмотров 102, логических чтений 384, физических чтений 0, упреждающих чтений 0, lob логических чтений 0, lob физических чтений 0, lob упреждающих чтений 0.
Таблица "Worktable". Число просмотров 0, логических чтений 0, физических чтений 0, упреждающих чтений 0, lob логических чтений 0, lob физических чтений 0, lob упреждающих чтений 0.

Время выполнения SQL Server:
 Время ЦП = 1218 мс, истекшее время = 266 мс.



2 запрос

С использованием UNION


SELECT 
	1 AS TAG 
	,0 AS PARENT
	,FIO AS 'ABONENT!1!CAPTION'
	,NULL AS 'ABONENT!1!COST'
	,NULL AS 'TELEPHONE!2!CAPTION'
	,NULL AS 'TELEPHONE!2!COST'
	
FROM V_CALLS_BY_EMPLOYEE 
where cost>0
GROUP BY FIO
	
UNION ALL 

SELECT 
	2 AS TAG 
	,1 AS PARENT
	,FIO
	,NULL
	,TELEPHONE
	,SUM(COST)
	
FROM V_CALLS_BY_EMPLOYEE 
where _year=2012 and _month=3 and typecard=1 and cost>0
GROUP BY FIO,TELEPHONE
	
ORDER BY 'ABONENT!1!CAPTION','TELEPHONE!2!CAPTION' 

FOR XML EXPLICIT


(строк обработано: 134)
Таблица "Worktable". Число просмотров 0, логических чтений 0, физических чтений 0, упреждающих чтений 0, lob логических чтений 0, lob физических чтений 0, lob упреждающих чтений 0.
Таблица "calls". Число просмотров 14, логических чтений 344, физических чтений 0, упреждающих чтений 0, lob логических чтений 0, lob физических чтений 0, lob упреждающих чтений 0.
Таблица "detail_calls". Число просмотров 2, логических чтений 4, физических чтений 0, упреждающих чтений 0, lob логических чтений 0, lob физических чтений 0, lob упреждающих чтений 0.
Таблица "cards_abonents". Число просмотров 2, логических чтений 17, физических чтений 0, упреждающих чтений 0, lob логических чтений 0, lob физических чтений 0, lob упреждающих чтений 0.
Таблица "ITILUsers". Число просмотров 2, логических чтений 12, физических чтений 0, упреждающих чтений 0, lob логических чтений 0, lob физических чтений 0, lob упреждающих чтений 0.

(строк обработано: 1)

Время выполнения SQL Server:
 Время ЦП = 94 мс, истекшее время = 110 мс.



На мой взгляд запросы отличаются только синтаксисом. Возвращают одно и тоже. Но выполняются с разными планами в т.ч. и кол-во логических чтений гораздо больше (логических чтений 7540).

почему ?
16 апр 12, 14:51    [12422842]     Ответить | Цитировать Сообщить модератору
 Re: Тормозит вложенный XML-запрос  [new]
Сергей1979
Member

Откуда:
Сообщений: 34
Прошу прощения

на GROUP BY не обращайте внимание, там лишние поля. Но суть дела не меняет.
16 апр 12, 14:55    [12422871]     Ответить | Цитировать Сообщить модератору
 Re: Тормозит вложенный XML-запрос  [new]
Glory
Member

Откуда:
Сообщений: 104751
Сергей1979
На мой взгляд запросы отличаются только синтаксисом. Возвращают одно и тоже. Но выполняются с разными планами в т.ч. и кол-во логических чтений гораздо больше (логических чтений 7540).

почему ?

Вы издеваетесь что ли ?
Сколько раз надо еще сказать, что разные запросы могоу выполняться по разному ?
16 апр 12, 14:55    [12422873]     Ответить | Цитировать Сообщить модератору
 Re: Тормозит вложенный XML-запрос  [new]
Glory
Member

Откуда:
Сообщений: 104751
Сергей1979
на GROUP BY не обращайте внимание, там лишние поля. Но суть дела не меняет.

Это то, что в одном запросе 2 SELECT-а, а в другом - 1, тоже ничего не меняет ?
16 апр 12, 14:56    [12422879]     Ответить | Цитировать Сообщить модератору
 Re: Тормозит вложенный XML-запрос  [new]
iljy
Member

Откуда:
Сообщений: 8711
Сергей1979,

вы действительно не понимаете, чем кореллированный подзапрос отличается от объединения через UNION?
16 апр 12, 14:57    [12422884]     Ответить | Цитировать Сообщить модератору
 Re: Тормозит вложенный XML-запрос  [new]
Сергей1979
Member

Откуда:
Сообщений: 34
Нет не понимаю
16 апр 12, 15:10    [12422946]     Ответить | Цитировать Сообщить модератору
 Re: Тормозит вложенный XML-запрос  [new]
Glory
Member

Откуда:
Сообщений: 104751
Сергей1979
Нет не понимаю

в 1ом запросе подзапрос всегда возвращает _одно_ значение
во 2ом запросе два запроса возвращают _наборы данных_
16 апр 12, 15:12    [12422959]     Ответить | Цитировать Сообщить модератору
 Re: Тормозит вложенный XML-запрос  [new]
Сергей1979
Member

Откуда:
Сообщений: 34
Glory,

Просто ошибся, забыл убрать лишнее из GROUP BY. Если нужно могу поправленный вариант выслать. Но лучше просто не обращайте на него внимание. Оставлял только нужные поля, ничего не изменилось.
16 апр 12, 15:14    [12422968]     Ответить | Цитировать Сообщить модератору
 Re: Тормозит вложенный XML-запрос  [new]
Glory
Member

Откуда:
Сообщений: 104751
Сергей1979
Просто ошибся, забыл убрать лишнее из GROUP BY.

Причем тут GROUP BY ?
16 апр 12, 15:15    [12422974]     Ответить | Цитировать Сообщить модератору
 Re: Тормозит вложенный XML-запрос  [new]
Сергей1979
Member

Откуда:
Сообщений: 34
Glory,

Другими словами запрос с использованием UNION является более производительным ? Я правильно Вас понимаю ?
16 апр 12, 15:15    [12422978]     Ответить | Цитировать Сообщить модератору
 Re: Тормозит вложенный XML-запрос  [new]
Glory
Member

Откуда:
Сообщений: 104751
Сергей1979
Другими словами запрос с использованием UNION является более производительным ? Я правильно Вас понимаю ?

Учить вам надо теорию.
А то вы не понимаете разницу между красным и соленым
16 апр 12, 15:17    [12422987]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить