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

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


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

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


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

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