简体   繁体   English

查询性能更好

[英]Query with better performance

I have an SQL query running too slow because a 'custom column'.由于“自定义列”,我的 SQL 查询运行速度太慢。 how can i do it in a better way?我怎样才能以更好的方式做到这一点?

there's the code:有代码:

select
    VBI.ID_acesso,
    VBI.data_hora  AS Data_Hora_Entrada,
    VBI.data      AS Data_Entrada,
    VBI.Sentido   AS Sentido,
    VBI.Unidade    AS Unidade,
    replace(replace(VBI.Documento,'.',''),'-', '') AS Documento,
    VBI.Tipo_Documento,
    VBI.Nome,
    VBI.Tipo_Usuario AS Tipo_Usuario,
    VBI.Categoria AS Tipo_Pessoa,
    VBI.Empresa_Usuario,
    VBI.Visitado,
    VBI.Tipo_Documento_Visitado,
        (
        SELECT
            MIN(VBI2.DATA_HORA)
        FROM
            Ses.dbo.VIEW_Mand_Dashboard_BI VBI2
        WHERE
            VBI2.documento = VBI.documento
            AND VBI2.ID_acesso > VBI.ID_acesso
            AND VBI2.Tipo_Documento = VBI.Tipo_Documento
            AND VBI2.Sentido = 'Saída'
            AND VBI2.data_hora >= VBI.data_hora
         ) as Data_hora_Saida
FROM
    Ses.dbo.VIEW_Man_Dashboard_BI VBI
WHERE
    VBI.[data] >= CONVERT(DATE,'2021-10-01')
      and VBI.Sentido = 'Entrada'
    and VBI.Empresa_Usuario  NOT IN ('CAMPSEG')
order by
    VBI.Unidade, VBI.data_hora;

The part that is taking my query slow is the column: Data_hora_Saida使我的查询变慢的部分是列: Data_hora_Saida

Maybe try也许试试

(SELECT TOP 1 *
  FROM Ses.dbo.VIEW_Mand_Dashboard_BI VBI2
  WHERE VBI2.documento = VBI.documento
  AND VBI2.ID_acesso > VBI.ID_acesso
  AND VBI2.Tipo_Documento = VBI.Tipo_Documento
  AND VBI2.Sentido = 'Saída'
  AND VBI2.data_hora >= VBI.data_hora
  ORDER BY VBI2.DATA_HORA
) as Data_hora_Saida

您可以尝试使用子查询,列Data_hora_Saida而不是在 SELECT 部分中添加

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM