SAPфорум.RU https://www.sapboard.ru/forum/ |
|
STVARV vs Z-таблица https://www.sapboard.ru/forum/viewtopic.php?f=13&t=96062 |
Страница 2 из 2 |
Автор: | Kengur [ Пн, фев 26 2018, 13:49 ] |
Заголовок сообщения: | Re: STVARV vs Z-таблица |
Rizor написал(а): В open SQL судя по документации для UP TO n ROWS и практическому опыту, всё работает нормально: давайте план запроса смотреть |
Автор: | Kuranov.Dmitry [ Пн, фев 26 2018, 14:13 ] |
Заголовок сообщения: | Re: STVARV vs Z-таблица |
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 |
Автор: | Kuranov.Dmitry [ Пн, фев 26 2018, 14:22 ] |
Заголовок сообщения: | Re: STVARV vs Z-таблица |
если ордер бай выполняется после 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 , то оракл мне по ключу сортирует |
Автор: | Kengur [ Пн, фев 26 2018, 17:23 ] |
Заголовок сообщения: | Re: STVARV vs Z-таблица |
Kuranov.Dmitry написал(а): то как объяснить такое: implementation dependent (c) смотри план запроса в оракл, читаем спеку по ораклу. на сколько я знаю abap на уровне abap доп обработкой самих данных не занимается (просто трансляция синтаксиса и приведение типов). реально большая ошибка думать что что то работает, просто просемплировав конкретный массив данных (особенно маленький). ориентироваться надо на саповские реализации, потому что они тестировали годами на тысячах систем и разных вариантах данных. если где то есть такая реализация в стандарте, то готов принять как аргумент. |
Автор: | Kuranov.Dmitry [ Пн, фев 26 2018, 17:30 ] |
Заголовок сообщения: | Re: STVARV vs Z-таблица |
Вот что в хелпе сказано: 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. т.е. он обрежет результат уже на стороне сервера приложений похоже перед тем как вернуть в рабочую область |
Автор: | Kengur [ Пн, фев 26 2018, 17:57 ] |
Заголовок сообщения: | Re: STVARV vs Z-таблица |
Это вроде как читать хелп от руля, не прочитав мануал как работает рулевая рейка. Дальше не будем развивать эту тему. |
Автор: | Yozhhhhh [ Пн, фев 26 2018, 23:20 ] |
Заголовок сообщения: | Re: STVARV vs Z-таблица |
Kengur, расстраиваешь ты меня. Kuranov.Dmitry привел нормальный аргумент. И выдержка от Rizor была до этого тоже абсолютно в тему. И эмпирическим путем результаты получаются различные, пусть даже на маленьком массиве данных, что говорит о том, что конструкция реально работает по-разному. Не может одинаковый программный код долбить в одно и то же место и выдавать рандомно разные записи каждый раз. По-моему, это практически очевидный факт, что применить order в селекте таким способом можно. Зачем эта игра метафорами каждый раз? Да и автор слился уже из темы, похоже. Наверняка, уже сделал по-своему. |
Автор: | Kengur [ Вт, фев 27 2018, 09:56 ] |
Заголовок сообщения: | Re: STVARV vs Z-таблица |
Yozhhhhh написал: Kengur, расстраиваешь ты меня. Я вобще тут что б жевать жевачку и всех расстраивать. и жевачка у меня давно закончилась |
Страница 2 из 2 | Часовой пояс: UTC + 3 часа |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |