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

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


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


ВНИМАНИЕ!

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



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

Зарегистрирован:
Вс, окт 17 2004, 14:20
Сообщения: 326
Откуда: Москва
Preatos написал:
ABC написал(а):
А я делал :) И у меня индексы без client specified отрабатывали ;) Я, конечно, верю. Но это мистика какая-то. Жалко, что Вы до конца не разобрались в чем дело...

Знаю одно. Мы сидели вместе с базисником... Он смотрел как строятся запросы в базу и в том и другом случае.. После всего увиденного прозвучало примерно следующее: "Ну фиг знает!". Главное что работает :)

Ну вот в том то и дело, что в обоих случаях у Вас к СУБД приходил один и тот же native SQL-запрос. А раз так, то какое значение может иметь из какой конструкции OPEN SQL этот запрос сформировался?!
Считайте, что СУБД - это черный ящик, который общается с сервером приложений посредством native SQL запросов. Получается, что Вы ему на вход подаете одинаковые параметры (запросы), а он на основании этих одинаковых параметров выбирает разные планы выполнения. Так не бывает. Значит что-то меняется либо в параметрах (запросе) либо в черном ящике.


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

Зарегистрирован:
Ср, июн 13 2007, 16:36
Сообщения: 585
Откуда: Belarus
Пол: Мужской
ABC написал(а):
Для особо умных :) - я имел ввиду, что в индексе у меня мандант был, а в селекте его не было и все работало, а не то, что я мандант указывал без client specified ;)

На особую умность не претендую :)
Что значит - работало ? Делало выборку по этому индексу ?


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

Зарегистрирован:
Вс, окт 17 2004, 14:20
Сообщения: 326
Откуда: Москва
Dzed Maroz написал:
ABC написал(а):
Для особо умных :) - я имел ввиду, что в индексе у меня мандант был, а в селекте его не было и все работало, а не то, что я мандант указывал без client specified ;)

На особую умность не претендую :)
Что значит - работало ? Делало выборку по этому индексу ?

А мы разве про что-то еще говорили? :)


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

Зарегистрирован:
Ср, июн 13 2007, 16:36
Сообщения: 585
Откуда: Belarus
Пол: Мужской
ABC написал(а):
Dzed Maroz написал:
На особую умность не претендую :)
Что значит - работало ? Делало выборку по этому индексу ?

А мы разве про что-то еще говорили? :)

И оптимизатор в обоих случаях показывал одинаковый план выполнения запроса ????? Я имею в виду с mandt и без него.


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

Зарегистрирован:
Пт, июл 01 2005, 13:23
Сообщения: 303
Откуда: Питер
Пол: Мужской
EvgenySA написал(а):
Preatos написал:
ABC написал(а):
А я делал :) И у меня индексы без client specified отрабатывали ;) Я, конечно, верю. Но это мистика какая-то. Жалко, что Вы до конца не разобрались в чем дело...

Знаю одно. Мы сидели вместе с базисником... Он смотрел как строятся запросы в базу и в том и другом случае.. После всего увиденного прозвучало примерно следующее: "Ну фиг знает!". Главное что работает :)

О сколько нам открытий чудных ...
А что за СУБД? На ORACLE такого не замечал :?

Именно он родямый...


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

Зарегистрирован:
Вс, окт 17 2004, 14:20
Сообщения: 326
Откуда: Москва
Dzed Maroz написал:
ABC написал(а):
Dzed Maroz написал:
На особую умность не претендую :)
Что значит - работало ? Делало выборку по этому индексу ?

А мы разве про что-то еще говорили? :)

И оптимизатор в обоих случаях показывал одинаковый план выполнения запроса ????? Я имею в виду с mandt и без него.

Чем вызвано такое удивление? Неужели новость, что mandt подставляется в native SQL-запрос и без Вашего участия?


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

Зарегистрирован:
Ср, июн 13 2007, 16:36
Сообщения: 585
Откуда: Belarus
Пол: Мужской
ABC написал(а):
Dzed Maroz написал:
И оптимизатор в обоих случаях показывал одинаковый план выполнения запроса ????? Я имею в виду с mandt и без него.

Чем вызвано такое удивление? Неужели новость, что mandt подставляется в native SQL-запрос и без Вашего участия?

Новость :)
Сейчас вот проверил.
Таблица 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.
Теперь пишу оптимизатору:
Code:
select * from t001 where mandt = '900' and bukrs = 'XXX'

Наблюдаю результат:
Select Statement (Estimated Costs = 1, Estimated #Rows = 1).
Table Access By Index Rowid T001.
Index Unique Scan T001____0.
Estimated Costs у меня уменьшилась. Может, я что-то неправильно делаю ?


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

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

Запрос:
Code:
SELECT * INTO TABLE l_too1 FROM t001 WHERE bukrs = '****'.


План выполнения:
Code:
SELECT STATEMENT ( Estimated Costs = 1 , Estimated #Rows = 1 )

       2 TABLE ACCESS BY INDEX ROWID T001
         ( Estim. Costs = 1 , Estim. #Rows = 1 )
         Estim. CPU-Costs = 9.821 Estim. IO-Costs = 1

           1 INDEX UNIQUE SCAN T001~0
             Search Columns: 2
             Estim. CPU-Costs = 1.050 Estim. IO-Costs = 0
             Access Predicates


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

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

Запрос:
Code:
SELECT * INTO TABLE l_too1 FROM t001 WHERE bukrs = '****'.


План выполнения:
Code:
SELECT STATEMENT ( Estimated Costs = 1 , Estimated #Rows = 1 )

       2 TABLE ACCESS BY INDEX ROWID T001
         ( Estim. Costs = 1 , Estim. #Rows = 1 )
         Estim. CPU-Costs = 9.821 Estim. IO-Costs = 1

           1 INDEX UNIQUE SCAN T001~0
             Search Columns: 2
             Estim. CPU-Costs = 1.050 Estim. IO-Costs = 0
             Access Predicates

Индийский чай мы курим :oops:
А прокомментировать ?
Что я неправильно делаю ?


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

Зарегистрирован:
Вс, окт 17 2004, 14:20
Сообщения: 326
Откуда: Москва
Пономарев Артем написал:
Что вы курите? :)
Зачем им курить? Они там в РБ что напишут оптимизатору (причем напрямую), то он и делает. Ни шага в сторону. Наверное, Лукашенко боится :)


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

Зарегистрирован:
Вс, окт 17 2004, 14:20
Сообщения: 326
Откуда: Москва
Dzed Maroz написал:
Индийский чай мы курим :oops:
А прокомментировать ?
Что я неправильно делаю ?

Вы вообще на ABAP'e эти селекты пишете? :roll:


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

Зарегистрирован:
Ср, ноя 23 2005, 13:37
Сообщения: 1805
Откуда: ECC 6.0
Пол: Мужской
ABC написал(а):
Вы вообще на ABAP'e эти селекты пишете? :roll:

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

В принципе, если в словаре индекс есть, то не факт, что он есть в БД.

Но mandt не влияет без client specified — это очевидно.


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

Зарегистрирован:
Пт, апр 13 2007, 17:15
Сообщения: 225
"Ничего не понимаю" (С)пёрто
А если статистику пересобрать, а то на старой статистике и не такие перлы могут быть. И наличие индексов действительно не мешает проверить.


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

Зарегистрирован:
Вс, окт 17 2004, 14:20
Сообщения: 326
Откуда: Москва
sibrin написал:
ABC написал(а):
Вы вообще на ABAP'e эти селекты пишете? :roll:

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

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


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

Зарегистрирован:
Вс, окт 17 2004, 14:20
Сообщения: 326
Откуда: Москва
EvgenySA написал(а):
"Ничего не понимаю" (С)пёрто
А если статистику пересобрать, а то на старой статистике и не такие перлы могут быть. И наличие индексов действительно не мешает проверить.

Я склоняюсь к тому, что просто табличка маленькая. И оптимизатор считает, что ему быстрее считать таблицу и пройтись full scan'ом, чем читать страницы индекса, искать по нему, потому считывать соответствующие страницы самой таблицы. Ибо индекс не покрывающий для этого запроса.


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

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


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

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


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

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