gpt4 book ai didi

sql-server-2008 - 文本数据类型在 where 子句中表现不佳

转载 作者:行者123 更新时间:2023-12-04 07:15:18 25 4
gpt4 key购买 nike

我有一个存储过程,它返回几个字段,大多数包含一些客户信息,然后还有 1 个在文本数据类型字段中包含 xslfo“blob”。我正在尝试优化一个流程以忽略此文本数据类型字段中没有值的记录,但是当我将其添加到 where 子句时:

And cl.CorrespondenceFO IS NOT NULL
And Convert(varchar(1), cl.CorrespondenceFO) <> ''

查询超时。我意识到 text 数据类型已被弃用,因此我需要在将来转换该列,但我需要在此之前对其进行优化。关于如何让这个存储过程返回添加了这两个额外 where 子句的结果,有什么建议吗? TIA

编辑:我已将数据类型更新为 varchar(max) 并尝试了以下所有建议,但查询仍然超时。还有其他建议吗?

最佳答案

  1. 转换为 varchar(max) 现在
  2. 通过禁止带有 CHECK 约束的空字符串来修复写入数据
  3. 使用 WHERE ... cl.CorrespondenceFO IS NOT NULL only

我无法测试,但 IS NOT NULL 检查应该使用 NULL 位图

或者,使用带有 LEN(或 DATALENGTH 用于文本)的计算列并对其进行索引/过滤。

关于sql-server-2008 - 文本数据类型在 where 子句中表现不佳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9806662/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com