powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / TABLE ACCESS BY INDEX ROWID
6 сообщений из 6, страница 1 из 1
TABLE ACCESS BY INDEX ROWID
    #39338618
Миша78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.

Есть такой запрос. Таблица cdr_customers партицирована по датам.

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
select /*+ use_nl(ag) index(cdrc CDR_CUSTOMERS_BILLTIME) parallel(cdrc 8) parallel(c 8)*/     
      
           trunc(gmt2msk(cdrc.bill_time),'dd') bill_time, -- gmt2msk - из GMT в московское, msk2gmt - из московского в GMT    
           ag.agent_name,
           ag.agent_desc,
           ag.onyma_id,
           ag.agent_id,
           c.i_parent,
           c2.name,
           cdrc.id,
           cdrc.i_env,
           cdrc.charged_amount
      from pb_user.cdr_customers cdrc
     left join pb_user.customers c --left join для общей выборки, для выборки по конкретному значению inner join
        on cdrc.i_customer = c.i_customer
      left join pb_user.customers c2
        on c2.i_customer = c.i_parent
       and c2.i_customer_type = 2
      left join mtt_report.mtt_pay_agents ag
        on ag.onyma_id = cdrc.cli
     where cdrc.i_service = 2
  /*     and cdrc.bill_time >= msk2gmt(trunc(add_months(sysdate,-1),'mm'))
       and cdrc.bill_time < msk2gmt(trunc(sysdate,'mm'))  */
       and cdrc.bill_time >= msk2gmt(trunc(sysdate-1))
       and cdrc.bill_time < msk2gmt(trunc(sysdate))

       and cdrc.i_env in (114,118,122,124)
       and cdrc.cli is not null 



В плане запроса резко возрастает стоимость на строке TABLE ACCESS BY INDEX ROWID.
Гуру подскажите почему?
...
Рейтинг: 0 / 0
TABLE ACCESS BY INDEX ROWID
    #39338803
ora601
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Миша78,

1. Нефиг смотреть оценочный план и ориентироваться на абстрактную величину - кост.
2. Потому что наверное достаеться пару миллионов записей по индексу?
...
Рейтинг: 0 / 0
TABLE ACCESS BY INDEX ROWID
    #39338804
Фотография AlexFF__|
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Миша78,

Ты же понимаешь, что означает колонка cardinality и что потом делается с числом 2244264?
...
Рейтинг: 0 / 0
TABLE ACCESS BY INDEX ROWID
    #39340081
Миша78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AlexFF__|Миша78,

Ты же понимаешь, что означает колонка cardinality и что потом делается с числом 2244264?

Кардинальность тем выше, чем больше уникальных значений в выборке/таблице. А что дальше делается с числом 2244264? Это стоимость чтения в каких то абстрактных еденицах?
...
Рейтинг: 0 / 0
TABLE ACCESS BY INDEX ROWID
    #39340107
ora601
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Миша78AlexFF__|Миша78,

Ты же понимаешь, что означает колонка cardinality и что потом делается с числом 2244264?

Кардинальность тем выше, чем больше уникальных значений в выборке/таблице. А что дальше делается с числом 2244264? Это стоимость чтения в каких то абстрактных еденицах?

Не путай cardinality для колонки и execution plan step cardinality. Первое означает количество уникальных значений, второе количество строк на выходе операции.
...
Рейтинг: 0 / 0
TABLE ACCESS BY INDEX ROWID
    #39340741
Миша78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ora601, спасибо.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / TABLE ACCESS BY INDEX ROWID
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]