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

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


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

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


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

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