Текущее время: Вс, июл 27 2025, 07:12

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 56 ]  На страницу Пред.  1, 2, 3, 4  След.
Автор Сообщение
 Заголовок сообщения:
СообщениеДобавлено: Чт, авг 30 2007, 14:04 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Ср, июн 13 2007, 16:36
Сообщения: 585
Откуда: Belarus
Пол: Мужской
ABC написал(а):
sibrin написал:
ABC написал(а):
Вы вообще на ABAP'e эти селекты пишете? :roll:

В селекте ranges используется, так что на ABAP'е, можно не сомневаться.

Вопрос был к Dzed Maroz'у по поводу его
Code:
select * from t001 where bukrs = 'XXX'

На ABAP'e.
Ну так объяснит мне кто-нибудь, что я неправильно делаю ?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, авг 30 2007, 15:11 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
Dzed Maroz написал:
Новость :)
Сейчас вот проверил.
Таблица T001.
Индекс к ней: Unique Index T001____0 (mandt, bukrs)
Пишу оптимизатору:
Code:
select * from t001 where bukrs = 'XXX'

Наблюдаю результат:
Select Statement (Estimated Costs = 2, Estimated #Rows = 2).
Table Access Full T001.
...
По хорошему, если конечно система не только что стартована, то на данный селект к базе вообще не будет сформировано Native-запроса, данные подтянутся из буфера.

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


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

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

Я приводил план выполнения и запрос для
ORACLE 10.2
SAP ECC 6.0

Версия ABC про маленький объем таблицы и поведение оптимизатора кажется мне самой убедительной.

Про буффер согласен. Но что-то не тянется.


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

Зарегистрирован:
Чт, окт 06 2005, 16:44
Сообщения: 3080
Откуда: Москва
sy-uname написал(а):
Сейчас вот проверил.
Таблица T001.
Индекс к ней: Unique Index T001____0 (mandt, bukrs)
Пишу оптимизатору:
Code:
select * from t001 where bukrs = 'XXX'

Наблюдаю результат:
Select Statement (Estimated Costs = 2, Estimated #Rows = 2).
Table Access Full T001.
...

Посмотрите технические настройки таблицы T001, раздел "Буферизация" :lol:

_________________
С уважением,
Удав.


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

Зарегистрирован:
Ср, июн 13 2007, 16:36
Сообщения: 585
Откуда: Belarus
Пол: Мужской
Пономарев Артем написал:
Версия СУБД? Вендор?

Я приводил план выполнения и запрос для
ORACLE 10.2
SAP ECC 6.0

Версия ABC про маленький объем таблицы и поведение оптимизатора кажется мне самой убедительной.

Про буффер согласен. Но что-то не тянется.

ORACLE 9.2, SAP 4.6C
Тут ещё с базисниками пообщался из любопытства, так они мне сообщили, что Оптимизатор - это есть специальный модуль БД, который расчитывает план выполнения, т.е. каким образом данные будут считываться из дисковых файлов БД.
Если оно так, то буфер тут вроде как ни при чём ....


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

Зарегистрирован:
Чт, окт 06 2005, 16:44
Сообщения: 3080
Откуда: Москва
По опыту наших базисников:
1. Oracle рассматривает индексы без поля mandt в последнюю очередь.
2. Прямое указание mandt в запросе никак не влияет на план оптимизации.
Другое дело что один и тот же запрос напрямую в Oracle и через SAP имеет разные планы выполнения. Во многом это связано с работой DB-интерфейса SAP, который подкручивает к запросам свои hint`ы...

_________________
С уважением,
Удав.


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

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

Имелся в виду буфер апликэйшн сервера, а не бд.
Цитата:
Посмотрите технические настройки таблицы T001, раздел "Буферизация"

Ну так все путем. Буферизация включена.
Тем не менее у меня раз за разом идет обращение к БД.
Цитата:
Другое дело что один и тот же запрос напрямую в Oracle и через SAP имеет разные планы выполнения. Во многом это связано с работой DB-интерфейса SAP, который подкручивает к запросам свои hint`ы...

В данном простейшем случае думаю должны быть одинаковыми.


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

Зарегистрирован:
Чт, окт 06 2005, 16:44
Сообщения: 3080
Откуда: Москва
Пономарев Артем написал:
Ну так все путем. Буферизация включена.
Тем не менее у меня раз за разом идет обращение к БД.


Ну это наверное вы в ST05 запускаете select :)
У меня из программы считываение T001 вообще не доходит до интерфейса БД :wink:

Или у вас буфер на application server сбрасывают часто :?

_________________
С уважением,
Удав.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, авг 30 2007, 21:42 
Президент
Президент

Зарегистрирован:
Пт, апр 28 2006, 22:39
Сообщения: 2514
Откуда: North Taxolina, USA
Пол: Женский
ABC написал(а):
1. Попробуйте этот же селект непосредственно в MS Query Analyzer'e запустить и посмотрите какой план запроса строится там.


Нету доступа у нас, к сожалению. :(

ABC написал(а):
2. Случаем не добавляли в таблицу одно из полей, по которому делается выборка, после того, как там уже были записи? Если да, то не забыли сделать адаптацию таблицы в утилите базы данных?


Вообще-то да, поле добавляли, но адаптация была сделана.

ABC написал(а):
3. Сколько записей в таблице БД?


Около 500 тысяч записей.

Буфферизация не включена, никаких дополнительных индексов нету. Pелиз у нас ECC 6.0.

Ради эксперимента сделала программку с SELECTами с MANDT и без. В ST05 оба варианта выглядят ну просто абсолютно идентично, хотя почему-то Duration у варианта без MANDT 351, а с ним (CLIENT SPECIFIED есессна) - 169. Хммм...

Кроме того, что-то совсем не похоже, что делается full table scan (к сожалению, с MS SQL иногда фиг поймешь, что там происходит). Может это только в PRD у нас что-то не так?..


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

Зарегистрирован:
Чт, окт 06 2005, 16:44
Сообщения: 3080
Откуда: Москва
Jelena, индекс пробовали перестроить?

_________________
С уважением,
Удав.


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

Зарегистрирован:
Вс, окт 17 2004, 14:20
Сообщения: 326
Откуда: Москва
Jelena написала:
ABC написал(а):
2. Случаем не добавляли в таблицу одно из полей, по которому делается выборка, после того, как там уже были записи? Если да, то не забыли сделать адаптацию таблицы в утилите базы данных?

Вообще-то да, поле добавляли, но адаптация была сделана.

Может в продуктиве забыли сделать? Кстати, что значит "адаптация была сделана"? После "Активировать и адаптировать" в утилите БД запускали "Дополнительная информация"->"Инициировать преобразование" ("Extras"->"Force Conversion")?


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

Зарегистрирован:
Ср, ноя 23 2005, 13:37
Сообщения: 1805
Откуда: ECC 6.0
Пол: Мужской
Jelena написала:
Ради эксперимента сделала программку с SELECTами с MANDT и без. В ST05 оба варианта выглядят ну просто абсолютно идентично, хотя почему-то Duration у варианта без MANDT 351, а с ним (CLIENT SPECIFIED есессна) - 169.

Если два одинаковых селекта делать подряд, то второй всегда быстрее, т.к. на разных уровнях кэшируются данные, SQL-запрос, его план и т.д.


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

Зарегистрирован:
Пт, сен 23 2005, 11:11
Сообщения: 963
mandt - зло


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

Зарегистрирован:
Вс, окт 17 2004, 14:20
Сообщения: 326
Откуда: Москва
mandt - добро


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

Зарегистрирован:
Ср, июн 13 2007, 16:36
Сообщения: 585
Откуда: Belarus
Пол: Мужской
trop написал(а):
mandt - зло


Обоснуй :D

ABC написал(а):
mandt - добро


Обоснуй :D


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

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


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

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


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

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