我的一个查询运行缓慢,我一直在尝试提高该查询的性能。最近我发现,查询使用一个视图,并且在该视图中,它使用标量函数将一个字符串字段(接受日期)转换为DATETIME字段。 此标量函数阻止查询以并行模式运行,这在查询执行中花费了很长时间。 所以,我更改了标量函数并使用了
target
而不是使用以下功能,
WHERE GETDATE() <= COALESCE(CAST(granted.ExpirationDate as DATETIME), GETDATE())
这是功能
GETDATE() <= COALESCE( dbo.CastDateTime( granted.ExpirationDate), GETDATE())
归档的ExpireDate具有空字符串,这些字符串在转换后给出错误的日期值。 See here
请提出一种处理空字符串的方法。