Текущее время: Чт, мар 28 2024, 21:03

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 23 ]  На страницу Пред.  1, 2
Автор Сообщение
 Заголовок сообщения: Re: STVARV vs Z-таблица
СообщениеДобавлено: Пн, фев 26 2018, 13:49 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, дек 20 2007, 18:21
Сообщения: 1613
Rizor написал(а):
В open SQL судя по документации для UP TO n ROWS и практическому опыту, всё работает нормально:

давайте план запроса смотреть :D

_________________
я твой сап эфай внедрял
BAdI-позитив
Взять немножечко абопу, сунь туда кошачью *опу, RFC лапки, БТ старой бабки, на медленном базиснике переносить, тестовое окружение материть, снимать SAT пенку, биться головой о стенку, охапка тайм-шитов, отчет готов!


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STVARV vs Z-таблица
СообщениеДобавлено: Пн, фев 26 2018, 14:13 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Вт, сен 05 2017, 23:56
Сообщения: 537
Code:
SELECT
/*+
  FIRST_ROWS
*/
  *
FROM
  "ZTIMETEST"
WHERE
  "MANDT" = :A0 AND "BEGDA" <= :A1
ORDER BY
  "MANDT" DESC , "BEGDA" DESC


Execution Plan




SELECT STATEMENT ( Estimated Costs = 1 , Estimated #Rows = 1 )

        2 TABLE ACCESS BY INDEX ROWID ZTIMETEST
          ( Estim. Costs = 1 , Estim. #Rows = 1 )

            1 INDEX RANGE SCAN DESCENDING ZTIMETEST~0
              ( Estim. Costs = 2 , Estim. #Rows = 1 )
              Search Columns: 2
              Access Predicates


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: STVARV vs Z-таблица
СообщениеДобавлено: Пн, фев 26 2018, 14:22 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Вт, сен 05 2017, 23:56
Сообщения: 537
если ордер бай выполняется после UP TO 1 ROWS, то как объяснить такое:

Code:
select  *  INTO ls FROM ztimetest
  up to 1 rows
  WHERE begda <= '20180301'.
  " ORDER BY begda DESCENDING.

write ls-val.
ENDSELECT.


выдает y2017

Code:
select  *  INTO ls FROM ztimetest
  up to 1 rows
  WHERE begda <= '20180301'
   ORDER BY begda DESCENDING.

write ls-val.
ENDSELECT.


Выдает y2018.

если ограничение выборки строк идет первым, то наличие ордер бай не должно влиять на результат

если я делаю просто селект всей таблицы без сортировок, WHERE , то оракл мне по ключу сортирует


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: STVARV vs Z-таблица
СообщениеДобавлено: Пн, фев 26 2018, 17:23 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, дек 20 2007, 18:21
Сообщения: 1613
Kuranov.Dmitry написал(а):
то как объяснить такое:

implementation dependent (c)

смотри план запроса в оракл, читаем спеку по ораклу. на сколько я знаю abap на уровне abap доп обработкой самих данных не занимается (просто трансляция синтаксиса и приведение типов).

реально большая ошибка думать что что то работает, просто просемплировав конкретный массив данных (особенно маленький).

ориентироваться надо на саповские реализации, потому что они тестировали годами на тысячах систем и разных вариантах данных.

если где то есть такая реализация в стандарте, то готов принять как аргумент.

_________________
я твой сап эфай внедрял
BAdI-позитив
Взять немножечко абопу, сунь туда кошачью *опу, RFC лапки, БТ старой бабки, на медленном базиснике переносить, тестовое окружение материть, снимать SAT пенку, биться головой о стенку, охапка тайм-шитов, отчет готов!


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STVARV vs Z-таблица
СообщениеДобавлено: Пн, фев 26 2018, 17:30 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Вт, сен 05 2017, 23:56
Сообщения: 537
Вот что в хелпе сказано:

If you combine UP TO n ROWS with an ORDER-BY clause , the lines read are sorted in the order specified and the first n are displayed. The system may need to read more than n lines from the database to be able to do this.

т.е. он обрежет результат уже на стороне сервера приложений похоже перед тем как вернуть в рабочую область


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: STVARV vs Z-таблица
СообщениеДобавлено: Пн, фев 26 2018, 17:57 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, дек 20 2007, 18:21
Сообщения: 1613
Это вроде как читать хелп от руля, не прочитав мануал как работает рулевая рейка.

Дальше не будем развивать эту тему.

_________________
я твой сап эфай внедрял
BAdI-позитив
Взять немножечко абопу, сунь туда кошачью *опу, RFC лапки, БТ старой бабки, на медленном базиснике переносить, тестовое окружение материть, снимать SAT пенку, биться головой о стенку, охапка тайм-шитов, отчет готов!


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STVARV vs Z-таблица
СообщениеДобавлено: Пн, фев 26 2018, 23:20 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Ср, фев 21 2007, 08:50
Сообщения: 1570
Откуда: Пермь
Пол: Мужской
Kengur, расстраиваешь ты меня.
Kuranov.Dmitry привел нормальный аргумент. И выдержка от Rizor была до этого тоже абсолютно в тему. И эмпирическим путем результаты получаются различные, пусть даже на маленьком массиве данных, что говорит о том, что конструкция реально работает по-разному. Не может одинаковый программный код долбить в одно и то же место и выдавать рандомно разные записи каждый раз. По-моему, это практически очевидный факт, что применить order в селекте таким способом можно. Зачем эта игра метафорами каждый раз?

Да и автор слился уже из темы, похоже. Наверняка, уже сделал по-своему.

_________________
Алё, это Пакистан? Нам нужен один килограмм


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: STVARV vs Z-таблица
СообщениеДобавлено: Вт, фев 27 2018, 09:56 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, дек 20 2007, 18:21
Сообщения: 1613
Yozhhhhh написал:
Kengur, расстраиваешь ты меня.

Я вобще тут что б жевать жевачку и всех расстраивать. и жевачка у меня давно закончилась :mrgreen:

_________________
я твой сап эфай внедрял
BAdI-позитив
Взять немножечко абопу, сунь туда кошачью *опу, RFC лапки, БТ старой бабки, на медленном базиснике переносить, тестовое окружение материть, снимать SAT пенку, биться головой о стенку, охапка тайм-шитов, отчет готов!


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 23 ]  На страницу Пред.  1, 2

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


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

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


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

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