sql - 查询性能更好
问题描述
由于“自定义列”,我的 SQL 查询运行速度太慢。我怎样才能以更好的方式做到这一点?
有代码:
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;
使我的查询变慢的部分是列:Data_hora_Saida
解决方案
也许试试
(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
推荐阅读
- java - 应用程序在 USB 调试模式下工作正常,但是当我生成签名 APK 并安装它时,它不工作
- python - 将时区感知的日期时间保存为字符串,然后稍后将其恢复为日期时间
- video - 如何将 vimeo 中已有的视频添加到我的频道并展示
- c - 从磁盘上的空白空间读取字节
- firebase - 基本输入无法将数据传递到 vuejs 中的后端
- reactjs - 为什么 Promise.all 没有获得价值?
- freeswitch - Freeswitch 覆盖端口
- c# - 添加页面轮播
- javascript - 如何根据条件更改代码值的颜色,例如如果我的值小于 0,则在 OBIEE 中为绿色,否则为红色?
- python - 如何提取音频特征并将其保存在 CSV 文件中?