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

Часовой пояс: 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 часа


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

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

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