IBM Maximo: SQL Queries: Difference between revisions

From Wiki
No edit summary
 
(41 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 last_analyzed


resultado
resultado


  table_name  tbsize  num_rows    last_analyzed
  TABLE_NAME            |TBSIZE|NUM_ROWS |LAST_ANALYZED          |
  WORKORDER    65996    95582941    24-SET-21
  -----------------------+------+---------+-----------------------+
  WOSTATUS     27442    306121780  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.
== (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=
= Relatórios=


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


  select reportname, description, appname, lastrunduration, lastrundate
  select reportname, description, appname, lastrunduration, lastrundate
Line 31: Line 74:
  where lastrunduration is not null
  where lastrunduration is not null
  and lastrundate > sysdate - 30
  and lastrundate > sysdate - 30
  order by appname, reportname
  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 ==
== Outros exemplos ==
* [[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 e Escalações=
* [[IBM Maximo: SQL Queries - CRONTASKS & ESCALATIONS]]
* [[IBM Maximo: SQL Queries - tabela ESCREPEATTRACK]]
* [[IBM Maximo: SQL Queries - tabela ESCSTATUS]]
= 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 [http://maximobuzz.blogspot.com/2013/07/delete-workflow-history-for-inactive.html Delete Workflow History for Inactive Records]


= Ver também =
= Ver também =
Line 43: Line 136:
[[Category:IBM Maximo]]
[[Category:IBM Maximo]]
[[Category:ibm-maximo-sql]]
[[Category:ibm-maximo-sql]]
[[Category:ibm-maximo-performance]]

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