IBM Maximo: SQL Queries: Difference between revisions

From Wiki
No edit summary
 
(30 intermediate revisions by the same user not shown)
Line 3: Line 3:
= Performance =
= Performance =


== Maiores tabelas e atualização de estatísticas ==
== (Oracle DB) Versão do Oracle ==
 
Verificando as maiores tabelas e a atualização de estatísticas das tabelas.
 
select banner from v$version where rownum < 2;
resultado:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
 
== (Oracle DB) Maiores tabelas e atualização de estatísticas ==


Verificando as maiores tabelas e a atualização de estatísticas das tabelas.
Verificando as maiores tabelas e a atualização de estatísticas das tabelas.
Line 9: Line 17:
  select table_name, round((num_rows*avg_row_len)/1048576) tbsize, num_rows, last_analyzed
  select table_name, round((num_rows*avg_row_len)/1048576) tbsize, num_rows, last_analyzed
  from all_tables
  from all_tables
  where owner='MAX'
  where owner='MAX' and num_rows>0
and num_rows>0
  order by num_rows desc
  order by num_rows desc


resultado
resultado


  table_name  tbsize  num_rows    last_analyzed
  TABLE_NAME            |TBSIZE|NUM_ROWS |LAST_ANALYZED          |
  WOSTATUS     27442    306121780  24-SET-21
-----------------------+------+---------+-----------------------+
  WORKORDER   65996   95582941    24-SET-21
  WOSTATUS               | 28639|319467180|2022-02-10 00:50:25.000|
  WORKORDER             | 65996|226390056|2022-02-10 08:33:14.000|
  ...
  ...


Mesmo que seu ambiente tenha pouca movimentação, atualizar as estatísticas é fundamental pra um funcionamento do ambiente com qualidade.
Mesmo que seu ambiente tenha pouca movimentação, atualizar as estatísticas é fundamental pra um funcionamento do ambiente com qualidade.


== Atualização de estatísticas ==
== (Oracle DB) Atualização de estatísticas ==


Verificando a atualização de estatísticas das tabelas.
Verificando a atualização de estatísticas das tabelas.


  select TO_CHAR(last_analyzed) as last_a, count(1) as cnt
  select to_char(last_analyzed) as last_a, count(1) as cnt
  from all_tables
  from all_tables
  where owner='MAX'
  where owner='MAX' and num_rows>0
and num_rows>0
  group by to_char(last_analyzed)
  group by TO_CHAR(last_analyzed)
  order by to_char(last_analyzed)
  order by TO_CHAR(last_analyzed)


resultado
resultado


  last_a        cnt
  LAST_A  |CNT|
  17-NOV-21 148
  --------+---+
  18-NOV-21 569
09/02/22|171|
  26-NOV-20 217
  10/02/22|395|
  11/02/22|218|
  ...
  ...


Line 57: Line 65:




== Workflow: Historico ==
select to_char(STARTTIME, 'YYYY') as YEAR1, count(1) as CONT
from wfinstance
where active=0
and deletable=1
group by to_char(STARTTIME, 'YYYY')
order by to_char(STARTTIME, 'YYYY')
result:
{| class="wikitable"
|-
! YEAR1 !! CNT
|-
| 2017 || 536611
|-
| 2018 || 12263485
|-
| 2019 || 17314752
|-
| 2020 || 10712313
|-
| 2021 || 20238022
|}


= Relatórios=
= Relatórios=
Line 113: Line 95:
* [[IBM Maximo: Exportando um relatório (BIRT) do banco de dados do Maximo]]
* [[IBM Maximo: Exportando um relatório (BIRT) do banco de dados do Maximo]]


= Crontasks=
= Crontasks e Escalações=
 
* [[IBM Maximo: SQL Queries - CRONTASKS & ESCALATIONS]]
 
* [[IBM Maximo: SQL Queries - tabela ESCREPEATTRACK]]
 
* [[IBM Maximo: SQL Queries - tabela ESCSTATUS]]


== Listar as crontasks executados com maior tempo de duracao nos últimos 30 dias ==


select crontaskname, instancename, servername, (endtime-starttime)*24*60*60 exec_time, starttime
= Workflow =
from crontaskhistory
where activity='ACTION'
and starttime > sysdate - 30
order by exec_time desc


== Listar as crontasks executados por hora ==
Migrado para [[IBM Maximo: SQL Queries - WORKFLOW]]


select extract(hour from (cast(starttime as timestamp))) exec_hour, round(sum(endtime-starttime)*24*60*60,3) exec_time
from crontaskhistory
where activity='ACTION'
and starttime > sysdate - 30
group by extract(hour from (cast(starttime as timestamp)))
order by extract(hour from (cast(starttime as timestamp)))


== Arquivamento==


= Login=
Queries uteis para arquivamento/exclusao de registros em tabelas


== Logins nos últimos 2 dias ==
select to_char(statusdate, 'YYYY') as YEAR1, count(1) as CONT
from escstatus
group by to_char(statusdate, 'YYYY')
order by to_char(statusdate, 'YYYY')
2019 719.178
2020 773.078
2021 799.968


select * from logintracking
= Login=
where attemptresult='LOGIN'
and attemptdate > sysdate - 2


Migrado para [[IBM Maximo: SQL Queries - tabela LOGINTRACK]]


== Listar os Logins por hora ==


select extract(hour from (cast(attemptdate as timestamp))) login_hour, count(*) num_login
Dica de [http://maximobuzz.blogspot.com/2013/07/delete-workflow-history-for-inactive.html Delete Workflow History for Inactive Records]
from logintracking
where attemptresult='LOGIN'
and attemptdate > sysdate - 10
group by extract(hour from (cast(attemptdate as timestamp)))
order by extract(hour from (cast(attemptdate as timestamp)))


= Ver também =
= Ver também =

Latest revision as of 14:40, 28 March 2022


Performance

(Oracle DB) Versão do Oracle

Verificando as maiores tabelas e a atualização de estatísticas das tabelas.

select banner from v$version where rownum < 2;

resultado:

Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production

(Oracle DB) Maiores tabelas e atualização de estatísticas

Verificando as maiores tabelas e a atualização de estatísticas das tabelas.

select table_name, round((num_rows*avg_row_len)/1048576) tbsize, num_rows, last_analyzed
from all_tables
where owner='MAX' and num_rows>0
order by num_rows desc

resultado

TABLE_NAME             |TBSIZE|NUM_ROWS |LAST_ANALYZED          |
-----------------------+------+---------+-----------------------+
WOSTATUS               | 28639|319467180|2022-02-10 00:50:25.000|
WORKORDER              | 65996|226390056|2022-02-10 08:33:14.000|
...

Mesmo que seu ambiente tenha pouca movimentação, atualizar as estatísticas é fundamental pra um funcionamento do ambiente com qualidade.

(Oracle DB) Atualização de estatísticas

Verificando a atualização de estatísticas das tabelas.

select to_char(last_analyzed) as last_a, count(1) as cnt
from all_tables
where owner='MAX' and num_rows>0
group by to_char(last_analyzed)
order by to_char(last_analyzed)

resultado

LAST_A  |CNT|
--------+---+
09/02/22|171|
10/02/22|395|
11/02/22|218|
...

Geral

Registros por Ano

select yList.year y,
(select count(*) from workorder where extract(year from reportdate)=yList.year) c_workorder,
(select count(*) from wfinstance where extract(year from starttime)=yList.year) c_wfinstance,
(select count(*) from ticket where extract(year from reportdate)=yList.year) c_ticket,
(select count(*) from po where extract(year from orderdate)=yList.year) c_po,
(select count(*) from matrectrans where extract(year from transdate)=yList.year) c_matrectrans,
(select count(*) from servrectrans where extract(year from transdate)=yList.year) c_servrectrans
from (select column_value as year FROM table(sys.odcivarchar2list('2020','2021'))) yList
group by yList.year
order by yList.year;


Relatórios

Listar os relatórios executados com maior tempo de duracao nos últimos 30 dias

select reportname, description, appname, lastrunduration, lastrundate
from report
where lastrunduration is not null
and lastrundate > sysdate - 30
order by lastrunduration desc

Listar os relatórios mais executados nos últimos 30 dias

select reportname, appname, sum(runtime)/1000 tot_exec_time, count(*) num_exec, round(avg(runtime)/1000,3) avg_exec_time
from reportusagelog
where startdate > sysdate - 30
group by reportname, appname
order by tot_exec_time desc

Listar os relatórios por hora

select extract(hour from (cast(startdate as timestamp))) exechour, round(sum(enddate-startdate)*24*60*60,3) exec_time
from reportusagelog
where startdate > sysdate - 30
group by extract(hour from (cast(startdate as timestamp)))
order by extract(hour from (cast(startdate as timestamp)))

Outros exemplos

Crontasks e Escalações


Workflow

Migrado para IBM Maximo: SQL Queries - WORKFLOW


Arquivamento

Queries uteis para arquivamento/exclusao de registros em tabelas

select to_char(statusdate, 'YYYY') as YEAR1, count(1) as CONT
from escstatus 
group by to_char(statusdate, 'YYYY')
order by to_char(statusdate, 'YYYY')

2019	719.178
2020	773.078
2021	799.968

Login

Migrado para IBM Maximo: SQL Queries - tabela LOGINTRACK


Dica de Delete Workflow History for Inactive Records

Ver também