Текущее время: Вт, июл 29 2025, 15:21

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 39 ]  На страницу Пред.  1, 2, 3  След.
Автор Сообщение
 Заголовок сообщения:
СообщениеДобавлено: Пн, мар 31 2008, 12:31 
Председатель
Председатель
Аватара пользователя

Зарегистрирован:
Пн, сен 06 2004, 11:43
Сообщения: 1551
Пол: Мужской
ZMaximI, вообще поищи BC490 (ABAP Perfomance Tuning)
Там все эти моменты в той или иной степени расписаны

_________________
Ex ipso fonte bibere
Цитата:
Abyssus abyssum invocat
Dies diem docet
Ducunt volentem fata, nolentem trahunt

Estote prudentes sicut serpentes


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, мар 31 2008, 12:37 
Специалист
Специалист

Зарегистрирован:
Пн, июл 11 2005, 15:44
Сообщения: 127
Code:
SAP Buffering
When accessing database tables using Open SQL, SAP buffering is effective as standard if it is activated for the corresponding database table. It can be explicitly deactivated using the addition BYPASSING BUFFER of the statement SELECT.

In addition to the explicit specification of BYPASSING BUFFER, SAP buffering can also be bypassed implicitly by some variants of the Open SQL statements, as the corresponding operation can only be executed in the database and not in the SAP buffer.

The following Open SQL statements implicitly bypass the SAP buffer and access the database tables directly:

SELECT with the addition FOR UPDATE,
Access to a table using single-record buffering without selecting a single record using SINGLE SELECT or by specifying the primary key in the WHERE condition (this behavior depends on the current implementation of the database interface and may be different in future releases).
SELECT with the addition DISTINCT,
SELECT with aggregate expressions,
Open SQL statement with the addition CLIENT SPECIFIED, without specification of the client ID in a WHERE condition,
SELECT with JOIN expressions
Access to a generically buffered area without full specification in a WHERE condition
Open SQL statements with IS [NOT] NULL in the additions WHERE and HAVING,
Use of a subquery in a WHERE condition,
SELECT with the addition GROUP BY,
SELECT with the addition ORDER BY, whereby the sort key is not the primary key.
Note
Bypassing the SAP buffer with the above additions is a means to increase the performance when accessing buffered database tables. To explicitly bypass the SAP buffer in the SELECT statement, always use the addition BYPASSING BUFFER instead of the implicit behavior of the additions stated above.




Reduce the database load wherever possible


Saving database in local buffers (see SAP buffering) can save considerable time in client-server environments, as the access time via the network is considerably higher than access time via a locally buffered table.

The SAP buffering is switched off:
When you use SELECT FOR UPDATE or SELECT DISTINCT in the SELECT clause,
When you use BYPASSING BUFFER in the FROM clause,
When you use JOINs and subqueries (subqueries),
When you use ORDER BY f1 f2 ... in the ORDER-BY clause.
When you use aggregate functions in the SELECT clause.
When you use IS [NOT] NULL in the WHERE condition.

You cannot process a query in the SAP buffer if the generic key section is not specified in the WHERE condition
Avoid re-reading the same data.
Before you change a table using DELETE, INSERT or UPDATE, you should check whether you need to read entries using SELECT.
If you want to sort data, it is more efficient to read it into the internal table and sort it using SORT than to use the ORDER-BY clause, where the sort is not supported by an index.
Check whether you can delete duplicates using the variant DELETE ADJACENT DUPLICATES FROM itab instead of using SELECT DISTINCT.
You should use logical databases if possible.



Code:


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, мар 31 2008, 12:39 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Ср, сен 22 2004, 08:42
Сообщения: 1079
Откуда: Москва
Пол: Мужской
vga написал(а):
Чтобы запрос использовал индекс максимально эффективно, в условии where должны присутствовать поля из индекса в соотвествующей последовательности.
Ничего не могу сказать про DB2, но ораклу начиная вроде с девятой версии глубоко наплевать на порядок полей в запросе для выбора индекса.Оптимизатор сам разбирается. А вот набор полей в where для выбора оптимального индекса по прежнему важен.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, мар 31 2008, 12:42 
Председатель
Председатель
Аватара пользователя

Зарегистрирован:
Пн, сен 06 2004, 11:43
Сообщения: 1551
Пол: Мужской
Mike1 написал:
Ничего не могу сказать про DB2, но ораклу начиная вроде с девятой версии глубоко наплевать на порядок полей в запросе для выбора индекса.Оптимизатор сам разбирается. А вот набор полей в where для выбора оптимального индекса по прежнему важен.
В DB2, кажется, тоже имеется оптимизатор - по крайней мере в DB2/400

_________________
Ex ipso fonte bibere
Цитата:
Abyssus abyssum invocat
Dies diem docet
Ducunt volentem fata, nolentem trahunt

Estote prudentes sicut serpentes


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, мар 31 2008, 12:44 
Председатель
Председатель
Аватара пользователя

Зарегистрирован:
Чт, апр 13 2006, 12:32
Сообщения: 1503
Откуда: Питер
Mike1 написал:
vga написал(а):
Чтобы запрос использовал индекс максимально эффективно, в условии where должны присутствовать поля из индекса в соотвествующей последовательности.
А вот набор полей в where для выбора оптимального индекса по прежнему важен.


Дык я вроде это же и имел ввиду :roll:

_________________
С уважением, VGA
Мой блог


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, мар 31 2008, 12:45 
Начинающий
Начинающий

Зарегистрирован:
Пн, мар 31 2008, 10:49
Сообщения: 8
Оптимизатор есть. Главное - правильный подход.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, мар 31 2008, 12:49 
Председатель
Председатель
Аватара пользователя

Зарегистрирован:
Пн, сен 06 2004, 11:43
Сообщения: 1551
Пол: Мужской
ZMaximI написал(а):
Оптимизатор есть. Главное - правильный подход.
Оффтоп:
DB2, Java - несколько "странная" ориентация... Может у вас и вебсфера работает ? Если да - имеется ли в ней WebGUI для SAP и как она реализована ?

_________________
Ex ipso fonte bibere
Цитата:
Abyssus abyssum invocat
Dies diem docet
Ducunt volentem fata, nolentem trahunt

Estote prudentes sicut serpentes


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, мар 31 2008, 12:52 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Ср, сен 22 2004, 08:42
Сообщения: 1079
Откуда: Москва
Пол: Мужской
vga написал(а):
Mike1 написал:
vga написал(а):
Чтобы запрос использовал индекс максимально эффективно, в условии where должны присутствовать поля из индекса в соотвествующей последовательности.
А вот набор полей в where для выбора оптимального индекса по прежнему важен.


Дык я вроде это же и имел ввиду :roll:

На примере, если индекс по полям f1 , f2 , f3
то
....
Code:
where f1 =
      f2 =
      f3 =

и
Code:
where f3 =
      f2 =
      f1 =

имеют одинаковую стоимость. Главное указать и f1 и f2 и f3


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, мар 31 2008, 15:44 
Начинающий
Начинающий

Зарегистрирован:
Пн, мар 31 2008, 10:49
Сообщения: 8
vvvictor написал:
ZMaximI написал(а):
Оптимизатор есть. Главное - правильный подход.
Оффтоп:
DB2, Java - несколько "странная" ориентация... Может у вас и вебсфера работает ? Если да - имеется ли в ней WebGUI для SAP и как она реализована ?


Вы меня не совсем правильно поняли.
Я пишу на Java, Oracle...
А с DB2 у нас работает только SAP - которым я займусь несколько позже.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, апр 02 2008, 13:48 
Менеджер
Менеджер

Зарегистрирован:
Чт, янв 20 2005, 08:34
Сообщения: 573
Пол: Мужской
Mike1 написал:
vga написал(а):
Mike1 написал:
vga написал(а):
Чтобы запрос использовал индекс максимально эффективно, в условии where должны присутствовать поля из индекса в соотвествующей последовательности.
А вот набор полей в where для выбора оптимального индекса по прежнему важен.


Дык я вроде это же и имел ввиду :roll:

На примере, если индекс по полям f1 , f2 , f3
то
....
Code:
where f1 =
      f2 =
      f3 =

и
Code:
where f3 =
      f2 =
      f1 =

имеют одинаковую стоимость. Главное указать и f1 и f2 и f3


С этим соглашусь.

vvvictor написал:
И в том же порядке, похоже...............

А вот с этим нет.

_________________
Волю в кулак, мышцы в узду, работай себе и не ахай!


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, апр 02 2008, 13:58 
Председатель
Председатель
Аватара пользователя

Зарегистрирован:
Пн, сен 06 2004, 11:43
Сообщения: 1551
Пол: Мужской
Sergo написал:
vvvictor написал:
И в том же порядке, похоже...............
А вот с этим нет.
Можешь не соглашаться, но как дополнительный дисциплинирующий фактор катит...........

_________________
Ex ipso fonte bibere
Цитата:
Abyssus abyssum invocat
Dies diem docet
Ducunt volentem fata, nolentem trahunt

Estote prudentes sicut serpentes


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, апр 02 2008, 14:17 
Менеджер
Менеджер

Зарегистрирован:
Чт, янв 20 2005, 08:34
Сообщения: 573
Пол: Мужской
vvvictor написал:
Sergo написал:
vvvictor написал:
И в том же порядке, похоже...............
А вот с этим нет.
Можешь не соглашаться, но как дополнительный дисциплинирующий фактор катит...........


Где про этот фактор 2 писанно

_________________
Волю в кулак, мышцы в узду, работай себе и не ахай!


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

Зарегистрирован:
Пн, сен 06 2004, 11:43
Сообщения: 1551
Пол: Мужской
Sergo написал:
vvvictor написал:
Можешь не соглашаться, но как дополнительный дисциплинирующий фактор катит...........
Где про этот фактор 2 писанно
Это уже философские категории (смотри выделенное) :lol: :lol: :lol:

_________________
Ex ipso fonte bibere
Цитата:
Abyssus abyssum invocat
Dies diem docet
Ducunt volentem fata, nolentem trahunt

Estote prudentes sicut serpentes


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, апр 02 2008, 14:40 
Менеджер
Менеджер

Зарегистрирован:
Чт, янв 20 2005, 08:34
Сообщения: 573
Пол: Мужской
vvvictor написал:
Sergo написал:
vvvictor написал:
Можешь не соглашаться, но как дополнительный дисциплинирующий фактор катит...........
Где про этот фактор 2 писанно
Это уже философские категории (смотри выделенное) :lol: :lol: :lol:


Ну ну, я ж и говорю - фактор 2

_________________
Волю в кулак, мышцы в узду, работай себе и не ахай!


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

Зарегистрирован:
Пн, сен 06 2004, 11:43
Сообщения: 1551
Пол: Мужской
PRIMARY KEY - F1 F2 F3
KEY1 - F3 F4 F5
KEY2 - F6 F5 F4

WHERE F4 F6 F3 F5

Какой ключ сработает ?

ЗЫ Причины появления идиотских индексов не рассматриваем :lol: :lol: :lol:

_________________
Ex ipso fonte bibere
Цитата:
Abyssus abyssum invocat
Dies diem docet
Ducunt volentem fata, nolentem trahunt

Estote prudentes sicut serpentes


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

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


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

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


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

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