AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / dba / Perguntas / 68770
Accepted
Yousef
Yousef
Asked: 2014-06-22 22:31:52 +0800 CST2014-06-22 22:31:52 +0800 CST 2014-06-22 22:31:52 +0800 CST

Cálculo do tempo decorrido

  • 772

Preciso calcular o tempo decorrido para cada usuário realizar sua parte em uma transação.

A sequência é: 0 -1 - B2 ou 0-B3 A tabela tem a seguinte aparência:

+--------+--------+-------------------+------------------+-----------+
| id     | Trtype |Internal Status    | Timestamp        | User Name |
+--------+--------+-------------------+------------------+-----------+
|2072499 | BSE100 | 0                 | 03/06/2014 13:33 | User1     |
|2072499 | BSE100 | 1                 | 04/06/2014 08:53 | User2     |
|2072499 | BSE100 |B2                 | 03/06/2014 13:33 | User3     |
|2072605 | BSE100 | 0                 | 03/06/2014 13:33 | User1     |
|2072605 | BSE100 |B3                 | 03/06/2014 13:33 | User3     |
.....................

Estou usando a seguinte consulta sql para gerar a tabela acima:

select h.id, h.trtype, T.DESCRIPTION, hist.internal_status,
 ts.description status_Desc, h.val_dte, h.account_dte, 
 hist.signature_timestamp, usr.login_name as user_name
  from k$transaction_header h, k$transtypes t, k$transaction_history hist, k$usr usr, K$TRANSACTION_STATUS ts
 where h.trtype = t.trtype
 and hist.trans_id = h.id
 and usr.id=hist.signature_usr
 and ts.id=hist.internal_status
 AND H.ACCOUNT_DTE = TO_DATE(&DATE_YYYYMMDD, 'yyyymmdd')
 order by h.id, hist.internal_status
oracle time
  • 2 2 respostas
  • 161 Views

2 respostas

  • Voted
  1. mico
    2014-06-23T11:09:51+08:002014-06-23T11:09:51+08:00

    Você quer calcular na mão, ou basta deixar o oracle db fazer o cálculo?

    Pergunta: Desejo ver o tempo de resposta da minha instrução SQL e ver o tempo de execução. Quais ferramentas a Oracle fornece para ver por quanto tempo uma consulta é executada?

    Resposta: Para ver o tempo decorrido para uma consulta individual, você pode ver o tempo de resposta da consulta individual no SQL*Plus com o comando “set timing on”.

    SQL> definir o tempo ativado;
    SQL> selecione itens de mytab;

    Decorrido: 00:00:02.82

    (diretamente de http://www.dba-oracle.com/t_measure_sql_response_time.htm ) pode ser de algum interesse nesse caso.

    • 0
  2. Best Answer
    Joshua Huber
    2014-06-24T13:52:10+08:002014-06-24T13:52:10+08:00

    Tente isso. Logicamente é uma autojunção.

    WITH transaction_user_parts AS
    (
       select h.id, h.trtype, T.DESCRIPTION, hist.internal_status,
       ts.description status_Desc, h.val_dte, h.account_dte, 
       hist.signature_timestamp, usr.login_name as user_name
        from k$transaction_header h, k$transtypes t, k$transaction_history hist, k$usr usr, K$TRANSACTION_STATUS ts
       where h.trtype = t.trtype
       and hist.trans_id = h.id
       and usr.id=hist.signature_usr
       and ts.id=hist.internal_status
       AND H.ACCOUNT_DTE = TO_DATE(&DATE_YYYYMMDD, 'yyyymmdd')
    )
    SELECT  t1.id
          , t1.internal_status || ' -> ' || t2.internal_status internal_status_change
          , t2.user_name
          , (t2.signature_timestamp - t1.signature_timestamp) time_elapsed
    FROM transaction_user_parts t1
    JOIN transaction_user_parts t2
      ON (t1.id = t2.id
           AND t1.signature_timestamp <= t2.signature_timestamp
           AND (
                 (t1.internal_status='0' AND t2.internal_status='1')
                OR
                 (t1.internal_status='1' AND t2.internal_status='B2')
                OR
                 (t1.internal_status='0' AND t2.internal_status='B3')
               )
          );
    
    • 0

relate perguntas

  • Backups de banco de dados no Oracle - Exportar o banco de dados ou usar outras ferramentas?

  • ORDER BY usando prioridades personalizadas para colunas de texto

  • Interface sqlplus confortável? [fechado]

  • Como encontrar as instruções SQL mais recentes no banco de dados?

  • Como posso consultar nomes usando expressões regulares?

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host

    • 12 respostas
  • Marko Smith

    Como fazer a saída do sqlplus aparecer em uma linha?

    • 3 respostas
  • Marko Smith

    Selecione qual tem data máxima ou data mais recente

    • 3 respostas
  • Marko Smith

    Como faço para listar todos os esquemas no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Listar todas as colunas de uma tabela especificada

    • 5 respostas
  • Marko Smith

    Como usar o sqlplus para se conectar a um banco de dados Oracle localizado em outro host sem modificar meu próprio tnsnames.ora

    • 4 respostas
  • Marko Smith

    Como você mysqldump tabela (s) específica (s)?

    • 4 respostas
  • Marko Smith

    Listar os privilégios do banco de dados usando o psql

    • 10 respostas
  • Marko Smith

    Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Como faço para listar todos os bancos de dados e tabelas usando o psql?

    • 7 respostas
  • Martin Hope
    Jin conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane Como faço para listar todos os esquemas no PostgreSQL? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh Por que o log de transações continua crescendo ou fica sem espaço? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland Listar todas as colunas de uma tabela especificada 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney O MySQL pode realizar consultas razoavelmente em bilhões de linhas? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx Como posso monitorar o andamento de uma importação de um arquivo .sql grande? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison Como você mysqldump tabela (s) específica (s)? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas Como posso cronometrar consultas SQL usando psql? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas Como faço para listar todos os bancos de dados e tabelas usando o psql? 2011-02-18 00:45:49 +0800 CST

Hot tag

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve