Как я могу оптимизировать SQL-код помимо индексации?

Есть несколько инструментов, которые могут отслеживать удаленные приложения для вас. Я считаю полезным Отслеживание удаления - MoEngage . Они дают вам полный список пользователей, которые удалили ваше приложение. Вы также можете определить, что заставило пользователя удалить ваше приложение. Лучше всего вы можете отправлять электронные письма этим пользователям, удалив ваше приложение с помощью панели инструментов MoEngage , чтобы получить обратную связь или получить этих пользователей на борту.

0
задан APC 17 January 2019 в 11:59
поделиться

1 ответ

Во-первых, напишите запрос, используя правильный, явный, стандартный стандартный синтаксис join:

select count(*) over () AS tot_count,
       PG.DESCR as partner, 
       THAF.APPDATA 
from transhist th join 
     partnergrpkey pgk 
     on TH.TRNSLTPARTNERKEY = PGK.DOCHISTPARTNERKEY join
     partnergroup pg
     on PG.ID = PGK.PARTNERGROUPID join
     trans_app thaf
     on THAF.TRANSHISTID = th.id
where TH.CreateDt >= to_date('?startdate', 'yyyymmddhh24mi') and
      TH.CreateDt <= to_date('?enddate', 'yyyymmddhh24mi')+1/1440 and
      TH.TRANSSET = '820' and
      THAF.COLUMNID = 74 and
      THAF.APPDATA LIKE '%|?acctNo|%' and
      pg.ID IN (?tpValues) 
order by TH.ID;

Для этого запроса я ожидаю, что помогут следующие индексы:

  • transhist(TRANSSET, CreateDt, TRNSLTPARTNERKEY, id)
  • partnergrpkey(DOCHISTPARTNERKEY, PARTNERGROUPID)
  • partnergroup(id)
  • trans_app(TRANSHISTID, COLUMNID, APPDATA)

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

0
ответ дан Gordon Linoff 17 January 2019 в 11:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: