Вход на сайт
SQL
NEW 02.06.11 18:40
в ответ Murr 02.06.11 15:53
Задачка к теме. Это действительно так, или я чего то не знаю..
Есть скрипт с саб-запросами. Показался громоздко, переделал под INNER JOIN.
Как я знаю, под-запросы выполняються медленее. Но в этом случае все наоборот.
-- 0.7 сек.
SELECT Id, Name, Workability,
(SELECT Id, Name, Workability,
(SELECT Id, Name, Workability
FROM ProductItem item
WHERE (sub.Id = item.SubCategoriesId))
FROM SubCategories sub
WHERE (sub.CategoriesId = cat.Id))
FROM Categories cat
-----------------------------
-- 4 сек. иссец..
SELECT cat.Id, cat.Name,cat.Workability,
sub.Id, sub.Name, sub.Workability,
item.Id, item.Name, item.Workability
FROM Categories cat
JOIN SubCategories sub on cat.Id = sub.CategoriesId
JOIN ProductItem item on sub.Id = item.SubCategoriesId
Есть какие-нить предположения?
Есть скрипт с саб-запросами. Показался громоздко, переделал под INNER JOIN.
Как я знаю, под-запросы выполняються медленее. Но в этом случае все наоборот.
-- 0.7 сек.
SELECT Id, Name, Workability,
(SELECT Id, Name, Workability,
(SELECT Id, Name, Workability
FROM ProductItem item
WHERE (sub.Id = item.SubCategoriesId))
FROM SubCategories sub
WHERE (sub.CategoriesId = cat.Id))
FROM Categories cat
-----------------------------
-- 4 сек. иссец..
SELECT cat.Id, cat.Name,cat.Workability,
sub.Id, sub.Name, sub.Workability,
item.Id, item.Name, item.Workability
FROM Categories cat
JOIN SubCategories sub on cat.Id = sub.CategoriesId
JOIN ProductItem item on sub.Id = item.SubCategoriesId
Есть какие-нить предположения?
NEW 02.06.11 20:10
в ответ Murr 02.06.11 20:00
да, работаю с XML. Полный скрипт:
-------------------------------------------
SELECT Id, Name, Workability,
(SELECT Id, Name, Workability,
(SELECT Id, Name, Workability
FROM ProductItem item
WHERE (sub.Id = item.SubCategoriesId) FOR XML AUTO, TYPE)
FROM SubCategories sub
WHERE (sub.CategoriesId = cat.Id)FOR XML AUTO, TYPE)
FROM Categories cat
FOR XML AUTO, ROOT('block')
-------------------------------------------
MS SQL 2008
10.0.1600.22 ((SQL_PreRelease).080709-1414
4000 rows
-------------------------------------------
SELECT Id, Name, Workability,
(SELECT Id, Name, Workability,
(SELECT Id, Name, Workability
FROM ProductItem item
WHERE (sub.Id = item.SubCategoriesId) FOR XML AUTO, TYPE)
FROM SubCategories sub
WHERE (sub.CategoriesId = cat.Id)FOR XML AUTO, TYPE)
FROM Categories cat
FOR XML AUTO, ROOT('block')
-------------------------------------------
MS SQL 2008
10.0.1600.22 ((SQL_PreRelease).080709-1414
4000 rows
NEW 02.06.11 20:49
в ответ Aerzenn 02.06.11 20:10
Увы, с FOR XML разобраться все руки не доходят...
Что могу сказать - там скорее всего проблема в конвертации в XML... и последующей осечкой лишнего в текстовом варианте...
Первый вариант этого не должен делать - там принудительный мультискан с последовательным дампом...
Попробуй сделать построение отношения в виде подзапроса и уже из него сделать дамп в XML. Может получится...
Что могу сказать - там скорее всего проблема в конвертации в XML... и последующей осечкой лишнего в текстовом варианте...
Первый вариант этого не должен делать - там принудительный мультискан с последовательным дампом...
Попробуй сделать построение отношения в виде подзапроса и уже из него сделать дамп в XML. Может получится...