Текущее время: Ср, июл 30 2025, 22:52

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 50 ]  На страницу Пред.  1, 2, 3, 4  След.
Автор Сообщение
 Заголовок сообщения:
СообщениеДобавлено: Ср, авг 23 2006, 17:11 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, авг 19 2004, 17:37
Сообщения: 1962
Откуда: Москва
Пол: Мужской
ABC написал(а):
Даже когда используется цикл SELECT ... ENDSELECT, данные сразу перекачиваются на сервер приложений.

Хм, это откуда такая инфа?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, авг 23 2006, 17:21 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Ср, сен 22 2004, 08:42
Сообщения: 1079
Откуда: Москва
Пол: Мужской
Parazit написал:
ABC написал(а):
Даже когда используется цикл SELECT ... ENDSELECT, данные сразу перекачиваются на сервер приложений.

Хм, это откуда такая инфа?

ST05 покажет fetch.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, авг 23 2006, 17:28 
Модератор
Модератор
Аватара пользователя

Зарегистрирован:
Пт, июн 16 2006, 00:43
Сообщения: 1686
Откуда: Москва <-> Красноярск
Пол: Мужской
Угу. Логи для
Code:
SELECT
...
ENDSELECT

и
Code:
SELECT INTO TABLE

идентичны...


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, авг 24 2006, 11:16 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, авг 19 2004, 17:37
Сообщения: 1962
Откуда: Москва
Пол: Мужской
Пономарев Артем написал:
Угу. Логи для... идентичны...

Точно.
Mike1 написал:
ST05 покажет fetch.

Обычно САПа делит одну выборку на несколько fetch. Так что не вся выборка хранится в памяти.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, авг 24 2006, 11:54 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Чт, мар 10 2005, 10:21
Сообщения: 198
Пол: Мужской
Пономарев Артем написал:
nyar написал(а):
складывание данных во внутреннюю таблицу может привести к большому расходу оперативной памяти, тк. при каждом запуске отчета будет использоваться отдельная область памяти под эту табличку... хотя если сервер мощный и пользователей мало :wink:

Ну а тут уже вопрос того что предпочитается нагружать: сервер БД или сервер приложений. На мой взгляд использование внутренней таблички - правомерней в данном примере. Поскольку работаем с корявостью под названием BSEG.


Посмотрите, как САПовцы сами пишут - у них все через внутренние таблицы. Абсолютно все! Причем в некоторых транзакциях они умудряются загонять во внутренние таблицы имеющиеся таблицы почти целиком.

_________________
Если программа заработала с первого раза, значит она написана принципиально неверно!


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, авг 24 2006, 12:55 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, авг 19 2004, 17:37
Сообщения: 1962
Откуда: Москва
Пол: Мужской
Igor Moskvin написал:
Посмотрите, как САПовцы сами пишут - у них все через внутренние таблицы.
Вот-вот, посмотрите и старайтесь так не делать!

Вообще, в идеале, нужно программировать без внутренних таблиц. К сожалению это не всегда возможно, т.к. САПа изобрела их для решения проблем, которые сама же и породила. Те же кластерные таблицы, например.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, авг 24 2006, 13:02 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, авг 24 2004, 07:19
Сообщения: 3952
Откуда: ECC 6.0, South Kazakhstan
Пономарев Артем написал:
Угу. Логи для
Code:
SELECT
...
ENDSELECT

и
Code:
SELECT INTO TABLE

идентичны...


В системе есть примеры производительности (SE38, затем по меню Среда-Примеры-Примеры производительности), в том числе и для описанного случая - так вот время выполнения отличается в разы.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, авг 24 2006, 14:07 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Пн, июн 05 2006, 13:33
Сообщения: 805
Пол: Мужской
Parazit написал:
Вот-вот, посмотрите и старайтесь так не делать!

Вообще, в идеале, нужно программировать без внутренних таблиц. К сожалению это не всегда возможно, т.к. САПа изобрела их для решения проблем, которые сама же и породила. Те же кластерные таблицы, например.


Всегда старался следовать рекомендации SAP-а и работать через внутренние таблицы. После того как нарвался на ограничение размера таблицы (2 ГБ) с крупными таблицами работаю только через SELECT.....ENDSELECT. Кстати тестирование показало что в нашем случае снеижение производительности незначительно.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, авг 24 2006, 14:20 
Модератор
Модератор
Аватара пользователя

Зарегистрирован:
Пт, июн 16 2006, 00:43
Сообщения: 1686
Откуда: Москва <-> Красноярск
Пол: Мужской
Ну мы вроде как не производительность обсуждали. Понятно что во втором случае быстрее.
Чтобы стало возможным программировать без внутренних таблиц - хотя бы поддержка SQL-92 требуется. Так что итабы - хороший костыль, заменяющий бедность синтаксиса open SQL.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, авг 25 2006, 09:27 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, авг 19 2004, 17:37
Сообщения: 1962
Откуда: Москва
Пол: Мужской
Пономарев Артем написал:
Так что итабы - хороший костыль, заменяющий бедность синтаксиса open SQL.
Да синтаксис тут ни при чем, его вполне достаточно, чтобы оптимально программировать БД.
Это костыль, во-первых, для кластерных таблиц, т.к. их нельзя полноценно использовать с SQL (join, индексы...).
Во-вторых, из-за кривого построения структуры базы данных (неправильное построение ключей, полей...). Такой перл, как AWKEY, где содержимое состоит из нескольких полей, да еще и разных таблиц. Или периоды в GLT0, разнесенные на несколько полей одной записи, что превращает такую простую задачу для SQL, как агрегация за период в нетривиальную задачу на ABAP.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, авг 25 2006, 09:40 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Вс, окт 17 2004, 14:20
Сообщения: 326
Откуда: Москва
Parazit написал:
Пономарев Артем написал:
Так что итабы - хороший костыль, заменяющий бедность синтаксиса open SQL.
Да синтаксис тут ни при чем, его вполне достаточно, чтобы оптимально программировать БД.
Это костыль, во-первых, для кластерных таблиц, т.к. их нельзя полноценно использовать с SQL (join, индексы...).
Во-вторых, из-за кривого построения структуры базы данных (неправильное построение ключей, полей...). Такой перл, как AWKEY, где содержимое состоит из нескольких полей, да еще и разных таблиц. Или периоды в GLT0, разнесенные на несколько полей одной записи, что превращает такую простую задачу для SQL, как агрегация за период в нетривиальную задачу на ABAP.

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


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, авг 25 2006, 10:12 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, авг 19 2004, 17:37
Сообщения: 1962
Откуда: Москва
Пол: Мужской
ABC написал(а):
И кластерные таблицы и хранение оборотов по периодам за год в одной записи, все это - наследие тех времен, когда диски были малоемкими и очень дорогими...
В ту пору, когда диски на ЕС ЭВМ были 29мБ, а дискеты на ПК 180-360кБ я только изучал СУБД и допускал точно такие же ошибки. Тогда же и понял, что такие подходы, в конечном счете, не экономят, а наоборот, расходуют память.
R/3 такая большая и имеет такое огромное количество таблиц не потому, что такая функциональная, а потому, что неверно спроектирована. Соблюдение правил реляций для реляционных БД толжно быть таким же четким, как 2x2=4.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, авг 25 2006, 10:28 
Модератор
Модератор
Аватара пользователя

Зарегистрирован:
Пт, июн 16 2006, 00:43
Сообщения: 1686
Откуда: Москва <-> Красноярск
Пол: Мужской
Цитата:
правил реляций

Это еще что за зверь?
Может таки имелась в виду нормализация?

З.Ы.: Про достаточность синтаксиса open SQL - это вы зря. Кто работал с СУБД напрямую, не дадут соврать. Особенно в частности оптимального программирования БД. Если бы все было так просто, мы бы не увидели ни T-SQL, ни PL/SQL.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, авг 25 2006, 14:31 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Вс, окт 17 2004, 14:20
Сообщения: 326
Откуда: Москва
Parazit написал:
ABC написал(а):
И кластерные таблицы и хранение оборотов по периодам за год в одной записи, все это - наследие тех времен, когда диски были малоемкими и очень дорогими...
В ту пору, когда диски на ЕС ЭВМ были 29мБ, а дискеты на ПК 180-360кБ я только изучал СУБД и допускал точно такие же ошибки. Тогда же и понял, что такие подходы, в конечном счете, не экономят, а наоборот, расходуют память.
R/3 такая большая и имеет такое огромное количество таблиц не потому, что такая функциональная, а потому, что неверно спроектирована. Соблюдение правил реляций для реляционных БД толжно быть таким же четким, как 2x2=4.
Вот когда вы организуете свою компанию по производству ПО, напишите продукт, который будет инсталирован на десятках тысяч клиентов в сотне стран и будете поддерживать все это хозяйство в работоспособном состоянии при помощи нескольких тысяч программистов в течение пары десятков лет, регулярно выпуская новые релизы, вот тогда мы и поговорим о "красоте" нормализованной базы данных.
P.S.
Я вовсе не против нормализации БД. Просто уже достали разговоры о том, как же все в SAP'е криво... Как говорится, не нравится, не ешь, никто не заставляет.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, авг 25 2006, 17:08 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
Хочу обратить внимание на то что R/3 это трёхзвенная архитектура.
И что проблему производительности на сервере приложений можно решать увеличением количества серверов приложений, то проблему производительности сервера БД так просто скорее всего не решается.
Это как аргумент в пользу внутренних таблиц.

_________________
"После" - не значит "вследствие"


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

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


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

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


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

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