Jump to content
msoares

Retorna User, Query, tempo inicio e fim da execução da query

Recommended Posts

Pessoal, boa tarde.

 

Preciso da ajuda para compreender um select que estou fazendo.

 

A consulta é simples, porém estou iniciando na área de SQL a pouco tempo, eu quero trazer todas as consultar executadas no banco por determinado usuário, inicio da execução da consulta e tempo que ficou executando. Segue meu código abaixo, o problema é que ele retorna o usuário e query diferente de outro código que tenho.

 

Primeira query, (não consegui colocar os usuário):

SELECT
--US.HOSTNAME,
--US.NT_USERNAME,
--US.PROGRAM_NAME,
--US.sql_handle US,
DB_NAME(D.dbid) AS BANCO,
t.[text], 
s.last_execution_time,
CONVERT(VARCHAR(12), CONVERT(time, DATEADD(ms, S.TOTAL_WORKER_TIME / 1000000 * 1000, 0)),114) AS TEMPO_TOTAL_EXECUTANDO,
CONVERT(VARCHAR(12), CONVERT(time, DATEADD(ms, S.TOTAL_ELAPSED_TIME / 1000000 * 1000, 0)),114),
S.TOTAL_ROWS
FROM sys.dm_exec_cached_plans AS p
INNER JOIN sys.dm_exec_query_stats AS s
   ON p.plan_handle = s.plan_handle
CROSS APPLY sys.dm_exec_sql_text(p.plan_handle) AS t
CROSS APPLY sys.dm_exec_sql_text(S.sql_handle) AS D
--LEFT JOIN sys.sysprocesses US ON US.sql_handle = S.sql_handle
WHERE s.last_execution_time >= '2018-01-17 18:00:00.000' AND s.last_execution_time <= '2018-01-18'
ORDER BY s.last_execution_time

 

 

Segunda Query (Peguei na net e adicionei o que eu precisava, porém as querys e user estão diferentes).

 

SELECT
--sp.host_name AS HOST_USER,
--sp.login_name AS NOME_USUARIO,
T.[text] AS QUERY, 
S.last_execution_time AS INICIO_EXECUCAO,
CONVERT(VARCHAR(12), CONVERT(time, DATEADD(ms, S.TOTAL_WORKER_TIME / 1000000 * 1000, 0)),114) AS TEMPO_TOTAL_EXECUTANDO,
CONVERT(VARCHAR(12), CONVERT(time, DATEADD(ms, S.TOTAL_ELAPSED_TIME / 1000000 * 1000, 0)),114) AS TOTAL_ELAPSED,
S.TOTAL_ROWS
FROM sys.dm_exec_requests ER 
INNER JOIN 
   sys.dm_exec_sessions SP ON er.session_id = sp.session_id
CROSS APPLY sys.dm_exec_sql_text(er.sql_handle) as T
CROSS APPLY sys.dm_exec_query_stats AS S
--CROSS APPLY sys.dm_exec_query_plan(er.plan_handle) p
--CROSS APPLY sys.dm_exec_text_query_plan(s.plan_handle, s.statement_start_offset, s.statement_end_offset) as qp
--where sp.session_Id NOT IN (@@SPID)
WHERE s.last_execution_time >= '2018-01-17 18:00:00.000' AND s.last_execution_time <= '2018-01-18'
AND T.[text] <> 'sp_server_diagnostics'
ORDER BY S.last_execution_time


 

 

Valew galera.

 

Share this post


Link to post
Share on other sites

Minha sugestão é que você dê uma olhada na documentação da versão que você utiliza,  e olhe os retornos das DMVs que você deseja utilizar, acho que vai ficar mais simples na hora de fazer a query.

 

Pelo que entendi ou está faltando alguma DMV na query ou está faltando algum campo nos relacionamentos, por isso recomendo que você avalie cada uma delas ( sys.dm_exec_requests, sys.dm_exec_sessions,  sys.dm_exec_sql_text  e  sys.dm_exec_query_stats) na documentação que está disponível no endereço: https://docs.microsoft.com/pt-br/sql/relational-databases/system-dynamic-management-views/execution-related-dynamic-management-views-and-functions-transact-sql?view=sql-server-2017

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By Rodymb
      Bom dia!
      Estou fazendo um select em uma tabela de cupom fiscal e preciso que me mostre o operador do caixa e o supervisor que liberou a venda, que no caso é convênio.
      A consulta que montei é a seguinte:
       
      select  c.m00ad as CUPOM,
              c.m00ac as PDV,
              c.m02ak as VALOR,
              p.descricao as FINALIZADORA,
              c.m02ah as OPERADOR,
              f.nome as NOME_OP,
              c.m02ao as SUPERVISOR,
              f.nome as NOME_SUP
      from zan_m02 c inner join tab_funcionario f
      on c.m02ao = f.cod_funcionario
      inner join tab_finalizadora p
      on c.m02ai = p.cod_finalizadora
      where c.m00af = to_date('09/03/20','dd/mm/yy')
      and c.m00za = 3
      and c.m00ac = 9
      and c.m00ad = 379678
      group by c.m00ad,c.m00ac,c.m02ak,p.descricao,c.m02ah,f.nome,c.m02ao;
       
      A consulta me retorna o seguinte resultado:

       
      Como podem ver, repetiu o mesmo nome (operador e supervisor), sendo que o código é diferente.
       
      Isso acontece por que na tabela de funcionário o campo NOME serve para operador e supervisor e o que diferencia se é supervisor ou operador temos mais duas outras tabelas. A estrutura é assim:
       
      tab_funcionario -> temos o campo cod_funcionario e nome (todos os funcionários cadastrados são armazenados nessa tabela)
      tab_perfil -> temos os campos cod_perfil e descricao (todos os perfis cadastrados são armazenados nessa tabela)
      tab_perfil_funcionario -> temos os campos cod_funcionario e cod_perfil (tabela que relaciona as tabelas tab_funcionario e tab_perfil)
       
      A única coisa que preciso é que apareça no NOME_OP o nome do operador e não o nome do supervisor igual está aparecendo.
       
    • By mateusmarcucci
      Pessoal, meu primeiro tópico, então desculpa qualquer coisa...
       
      É o seguinte, pra treinar to criando um sisteminha de aposta.
       
      Consiste em 2 campos, Valor apostado e ODD (odd é o quanto vai multiplicar a aposta caso ganhe). Porém quero colocar uma telinha aonde ele vai somar todos os ganhos e perdas do dia.
       
      Estou fazendo a soma direto no php, porém gostaria de passar o resultado dessa soma no banco de dados para assim ser possível somar as colunas.
       
      Eu tenho o metodo de escolha que é Ganhou ou Perdeu.
       
      Exemplo:   Valor apostado: R$5,00 | ODD 2.0 = R$10,00     Porém o lucro é apenas R$5,00. Tendo em vista que o lucro é subtraído do valor total - valor apostado. Caso perca, o valor apostado apenas passa a ser negativo
       
      Vou deixar o código que estou utilizando:
       
       
       
      <?php
          session_start();
          include_once("servidor.php");

          if (!empty($_SESSION['usuario']) and !empty($_SESSION['id'])) {
              $id = $_SESSION['id'];
              $nome = $_SESSION['nome'];
              $usuario = $_SESSION['usuario'];
          }else{
              $_SESSION['mensagem']="Você não está logado";
              header("Location: index.php");
              exit;
          }
          $id = $_SESSION['id'];        
          $consulta = "SELECT * FROM Resultados WHERE id = '$id' ORDER BY resultado ASC";
          $con = mysqli_query($conexao, $consulta);
          $banca = "SELECT * FROM Usuarios";
          $conBanca = mysqli_query($conexao, $banca);
          
      ?>

      <!DOCTYPE html>
      <html>
      <head>
          <title>Anote sua Aposta - Painel</title>
          <meta charset="utf-8">
          <meta name="viewport" content="width=device-width, initial-scale=1">
          <link rel="stylesheet" type="text/css" href="css/cssEstilo.css">

          <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous">
          <!-- Font Awesome -->
          <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.3.1/css/all.css" integrity="sha384-mzrmE5qonljUremFsqc01SB46JvROS7bZs3IO2EmfFsd15uHvIt+Y8vEf7N7fWAU" crossorigin="anonymous">
          <script type="text/javascript" src="js/jquery-3.3.1.min.js"></script>
          <script type="text/javascript" src="js/bootstrap.min.js"></script>
          <script type="text/javascript" src="js/jquery.mask.min.js"></script>
          <script type="text/javascript">
                  $(document).ready(function(){
                      $("#valor").mask("99990.00", {reverse: true})    
                      $("#odd").mask("999.999.990.00", {reverse: true})
                      
                  })        
                      
          </script>
      </head>

      <body class="fundoBodyPainel">
          <!-- topo -->
          <?php include('topo.php'); ?>
          <!-- fim topo -->
          <section>                        
                  <nav>
                      <p class="topoPainel"><strong>Bem vindo(a),</strong> <?php echo $_SESSION['nome'];?></p>
                  </nav>
          </section>
          <!-- Botão para acionar modal -->
          <button type="button" class="btn btn-primary" data-toggle="modal" data-target="#modalExemplo">
                Adicionar uma nova aposta
          </button>
          <!-- Modal -->
          <div class="modal fade" id="modalExemplo" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
            <div class="modal-dialog" role="document">
              <div class="modal-content">
                <div class="modal-header">
                  <h5 class="modal-title" id="exampleModalLabel">Adicionar uma nova aposta</h5>
                  <button type="button" class="close" data-dismiss="modal" aria-label="Fechar">
                    <span aria-hidden="true">&times;</span>
                  </button>
                </div>
                <div class="modal-body">
                  <section>
                      <div>
                          <form action="validarResultado.php" method="get" accept-charset="utf-8">
       
                                    <div class="form-group">
                                      <label>Valor Apostado:</label>
                                      <input type="text" class="form-control" id="valor" placeholder="Valor Apostado"
                                          name="valor">        
                                    </div>

                                    <div class="form-group">
                                      <label>ODD:</label>
                                      <input type="text" class="form-control" id="odd" placeholder="ODD" name="odd">                
                                   </div>
                                    <div class="form-group">
                                        <label for="Resultado">Resultado</label>
                                        <select id="inputEstado" class="form-control" name="resultado">
                                          <option selected>Escolher...</option>
                                          <option>Ganhou</option>
                                          <option>Perdeu</option>
                                        </select>
                                  </div>
                                </div>
                                    <button id="botaoCadastro" type="submit" name="enviar" class="btn btn-danger">Cadastrar</button>
                              </form>
                      </div>
                  </section>
                </div>
              </div>
            </div>
          </div>

          <section class="containerContatos">
              <div class="container">
                  <div class="row">
                      <div class="col-md-12">
                          <div class="d-flex justify-content-center table-responsive">
                              <table class="table table-striped" style="background: white;">
                                <thead class="thead-dark">
                                  <tr>
                                    <th scope="col">Valor</th>
                                    <th scope="col">ODD</th>
                                    <th scope="col">Resultado</th>
                                    <th scope="col">ID Aposta</th>
                                    <th scope="col">Retorno</th>
                                  </tr>
                                </thead>
                                <tbody>
                                    <?php
                                      while($dado = mysqli_fetch_assoc($con)) {
                                  ?>
                                  <tr>
                                    <td><?php echo $dado["valor"]; ?></td>
                                    <td><?php echo $dado["odd"]; ?></td>
                                    <td><?php echo $dado["resultado"]; ?></td>
                                    <td><?php echo $dado["idAposta"]; ?></td>
                                    <td><?php    
       
                                                $opcao1 = $dado["resultado"];                                                                                
                                                if ("$opcao1" == 'Ganhou') {
                                                    $retorno = ($dado["valor"] * $dado["odd"]) - $dado["valor"];
                                                    $retorno1 = $retorno;
                                                  $retorno1 = number_format($retorno1, 2, '.', '');
                                                  $retorno4 = $retorno;
                                                    echo "$retorno1";
                                                }
                                                if ("$opcao1" == 'Perdeu') {
                                                    $retorno = ($dado["valor"] - $dado["valor"]) - $dado["valor"];
                                                    $retorno1 = $retorno;
                                                  $retorno1 = number_format($retorno1, 2, '.', '');
                                                  $retorno4 = $retorno;
                                                    echo "$retorno1";
                                                }
                                                
                                            ?>                                          
                                    </td>                          
                                    </td>
                                  </tr>                            
                                  <?php } ?>
                                </tbody>
                              </table>
                          </div>
                      </div>
                  </div>
              </div>
          </section>    

          <?php  ?>
          

          
          <script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script>
          <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js" integrity="sha384-wfSDF2E50Y2D1uUdj0O3uMBJnjuUD4Ih7YwaYd1iqfktj0Uod8GCExl3Og8ifwB6" crossorigin="anonymous"></script>
      </body>

      </html>
    • By MasterX2020
      Olá a todos,
       
      Como falei anteriormente estou construindo um site para uma aula e agora surgiu mais um desafio: fazer uma pesquisa em PHP que apresente resultados que podem ser obtidos de uma base de dados em SQL.
       
      Já tenho a barra de pesquisa colocada no site, a base de dados construída e a página onde os resultados devem surgir. Gostava de saber se alguém me poderia ajudar com o código PHP para que os resultados da pesquisa surgem. É uma pesquisa simples. O utilizador, por exemplo, insere na barra de pesquisa Maçã e, com isso, é levado para a pagina "pesquisa.php" onde devem surgir os dados que na base de dados estão relacionados com o termo pesquisado.
       
      O que se encontra na base de dados são coisas simples. Apenas pequenos títulos, relacionados com um pequeno parágrafo e uma categoria. Exemplo:
      - titulo: Maçã
      - parágrafo: Uma Maçã é um fruto.
      - categoria: Fruta.
       
      Se alguém poder ajudar desde já agradeço, espero ter explicado bem a minha dúvida.
    • By alecram28
      Boa noite. Preciso fazer um select que me retorne os dados desse select:
      hjgnvbcbn
    • By TeixeiraRamos
      Olá pessoal,
      Por favor, tem que ser feita alguma mudança no código depois que se muda para a versão Wampserver64?
      Estou tentando abrir as minhas páginas e mostra erro. Um exemplo:
       
       
      No exemplo a linha 62:
      $result = $PDO->query($sql); No phpMyAdmin fiz o teste com a sql é funcionou corretamente.
       
      Obrigado
       
       
       
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.