[英]SQL Query takes time for execution
我的表有 200 万条记录。 我想在临时表中插入数据并在我的过程中使用该临时表。 但是插入需要 30 秒。 请建议如何减少时间? 我无法显示实际查询。 所以我的查询是这种格式。
注意:我已经使用过 CTE。
;With Tmp_TableName
as
(
SELECT T1.A, T1.B, T1.C, T1.D, T1.E, T1.F, T1.G , T1.H
FROM TableName T1 WITH(NOLOCK)
WHERE T1.A = 1
AND CONVERT( NVarchar, T1.H, 111) <= CONVERT( NVarchar, getdate(), 111)
)
SELECT *
FROM Tmp_TableName T1 WITH(NOLOCK);
我建议修复您的WHERE
子句:
WHERE T1.A = 1 AND
T1.H < DATEADD(DAY, 1, CAST(GETDATE() as DATE)0
然后,这可以利用TABLE1(A, H)
上的索引。
您可以使用cast()
过滤掉:
WHERE T1.A = 1 AND
T1.H <= CAST(GETDATE() AS DATE) -- This assumes `T1.H` has no time. (i.e. 00:00:00);
如果在您的SELECT
语句中有任何具有varchar/nvarchar(max)
类型的字段,那么它可能会运行缓慢,您可以排除它并进一步检查。
但是,您没有包含任何带有索引的表结构,因此很难回答任何人。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.