Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема Можно ли оптимизировать запрос (число прочтений - 1312 )
Bagirius
Full Member
***
Отсутствует



Сообщений: 135
Зарегистрирован: 19. Февраля 2008
Пол: Мужской
Можно ли оптимизировать запрос
30. Января 2009 :: 08:27
Печать  
Хочу ускорить выполнение запроса, возможно ли?

Код
Выбрать все
SELECT
 Номенклатура.ID [Товар $Справочник.Номенклатура]
, $Номенклатура.СортНаимАрт
, $Номенклатура.СортАртНаим
, Номенклатура.CODE

, ПартииТоваровОстатки.ОстатокТовараОстаток
FROM
$Справочник.Номенклатура AS Номенклатура
FULL OUTER JOIN $РегистрОстатки.ПартииТоваров(,,(Фирма = :ВыбФирма) AND (Склад = :ВыбСклад),
	Товар,
	ОстатокТовара) AS ПартииТоваровОстатки
	ON Номенклатура.ID = ПартииТоваровОстатки.Товар
WHERE (($Номенклатура.Фирма = :ВыбФирма) OR ($Номенклатура.Фирма = $ПустойИд)) AND (Номенклатура.ISFOLDER = 2) AND (($Номенклатура.Скрыто = 0) OR (ПартииТоваровОстатки.ОстатокТовараОстаток <> 0))
ORDER BY $Номенклатура.СортНаимАрт 

  
Наверх
ICQ  
IP записан
 
mov68
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 180
Зарегистрирован: 21. Декабря 2007
Re: Можно ли оптимизировать запрос
Ответ #1 - 30. Января 2009 :: 09:22
Печать  
Что-то типа
SELECT Номенклатура.DESCR Наименование
     , Номенклатура.CODE Код
     , $Номенклатура.ПолнНаименование ПолнНаименование
FROM $РегистрОстатки.ПартииТоваров(,
           INNER JOIN $Справочник.Номенклатура AS Номенклатура ON Товар = Номенклатура.ID,,
           Товар,) AS ПартииТоваровОстатки
     INNER JOIN $Справочник.Номенклатура AS Номенклатура ON ПартииТоваровОстатки.Товар = Номенклатура.ID

главное сначала выборка по остаткам, должно быть быстрее: у нас справочник разросся, а остатков в 10 раз меньше
  
Наверх
 
IP записан
 
leshik
1c++ donor
Отсутствует



Сообщений: 820
Местоположение: Пятигорск
Зарегистрирован: 22. Апреля 2007
Пол: Мужской
Re: Можно ли оптимизировать запрос
Ответ #2 - 30. Января 2009 :: 18:28
Печать  
Автор, сформулируй четко задачу выполняемую запросом на словах?
А то не понятно - должна ли выводиться номенклатура с остатком = 0
  
Наверх
IP записан
 
Вадимко
God Member
*****
Отсутствует


Нам бы чего про ОдноЦэ...

Сообщений: 1048
Местоположение: Минск
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: Можно ли оптимизировать запрос
Ответ #3 - 30. Января 2009 :: 23:35
Печать  
Действительно... чего нужно?
Надо условия применимые к номенклатуре поместить в ВТ
ПартииТоваровОстатки.ОстатокТовараОстаток <> 0 - не имеет смысла, т.к. в ВТ и так будет having
Если нужны извраты - бери из RG
  

Кампутер, кофе и сигареты - это очень плохо для моего здоровья...
Наверх
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать