Текущее время: Пт, июл 18 2025, 20:21

Часовой пояс: UTC + 3 часа


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 9 ] 
Автор Сообщение
 Заголовок сообщения: Ускорение SELECTа
СообщениеДобавлено: Вт, июн 17 2008, 06:39 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Пт, фев 15 2008, 12:14
Сообщения: 146
Есть такой вот select
SELECT *
FROM bsik
WHERE bukrs = rbukrs AND zfbdt <= raugdt AND shkzg = 'H'
AND xpypr = '' AND lifnr IN rlifnr AND
AND
( EXISTS ( SELECT * FROM bsis WHERE belnr = bsik~belnr AND
bukrs = bsik~bukrs AND gjahr <= bsik~gjahr AND
fipos IN rfipos AND fistl = rfistl ) OR
EXISTS ( SELECT * FROM bsas WHERE belnr = bsik~belnr AND
bukrs = bsik~bukrs AND gjahr <= bsik~gjahr AND
fipos IN rfipos AND fistl = rfistl ) ) .

Это селект ведет себя странно. Если переменная rfipos (типа range)
имеет такое содержимое
SIGN OPTION LOW HIGH
I |EQ |12410101 |
то селект работает невыносимо долго.
Если же rfipos имеет такое содержимое
SIGN OPTION LOW HIGH
I |BT |12410101 |12410101
что по сути одно и тоже, то селект выстреливает мгновенно.
В чем дело?


Последний раз редактировалось dashkun Вт, июн 17 2008, 07:27, всего редактировалось 1 раз.

Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, июн 17 2008, 07:26 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Пн, ноя 01 2004, 12:17
Сообщения: 298
Пол: Мужской
Наверное стоит посмотреть план запросов. В частности условие WHERE для каждого случая.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, июн 17 2008, 07:33 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Пт, фев 15 2008, 12:14
Сообщения: 146
RA написал:
Наверное стоит посмотреть план запросов. В частности условие WHERE для каждого случая.

Что за план запросов и где его смотреть. А условие where смыслу одинаково для обоих случаев.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, июн 17 2008, 07:57 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Пн, ноя 01 2004, 12:17
Сообщения: 298
Пол: Мужской
Попробуйте посмотреть какой SELECT формируется при обращении к БД для каждого случая, примерно так:

[url]http://www.sap-easy.net.ru/trc.htm
[/url]

и сравните условие в них условие WHERE.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, июн 17 2008, 08:22 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Пт, фев 15 2008, 12:14
Сообщения: 146
Похоже сервор глючил, щас все нормально выстреливает.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, июн 17 2008, 12:02 
Старший специалист
Старший специалист

Зарегистрирован:
Вт, авг 17 2004, 08:49
Сообщения: 319
Откуда: Мариуполь
Еще возможно, что это из-за индексов. Тогда администраторам необходимо провести их реорганизацию.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: ку
СообщениеДобавлено: Вт, июн 17 2008, 16:59 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пт, сен 23 2005, 11:11
Сообщения: 963
ваш запрос бесчеловечен..


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: ку
СообщениеДобавлено: Вт, июн 17 2008, 18:13 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, окт 06 2005, 16:44
Сообщения: 3080
Откуда: Москва
trop написал(а):
ваш запрос бесчеловечен..

+1

Вначале нужно определить, почему нельзя использовать фин.позиции и ПФМ на кредиторских позициях документа.
Если они должны отличаются и их нельзя проставить, то лучше разделить запрос на 2 части:
а)выборка по BSIK с inner join BSIS
б)выборка по BSIK с inner join BSAS

Ну и количество выбираемых полей из BSIK лучше ограничить ;)

_________________
С уважением,
Удав.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, июн 18 2008, 05:50 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Пт, фев 15 2008, 12:14
Сообщения: 146
Удав написал(а):
trop написал(а):
ваш запрос бесчеловечен..


Иначе ни как. В том плане что фин позиции из кредиторских позиций не катит. Сама была от этого в сильном расстройстве. Насчет разделить посмотрю, сравню. В принципе и сейчас более менее быстро работает.


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 9 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot], Yandex [Bot]


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB