【发布时间】:2022-01-24 16:46:38
【问题描述】:
我正在使用 SSMS 18。
我有一列包含 500,000,000 条代码记录。这些代码以表示对象的多个字符开头,然后是随机字符。 例如:
AZ4658 & TU874U = A-Z
sd8udf & kl8udf = a-z
0huoer & 0huoer = 0
3bhlbc & 3jhkla = 3
5bfdsg & 5byfdu = 5
9nbgyc & 98cnjj = 9
在我的“WHERE”子句中,我有: WHERE [Code_Records] COLLATE Latin1_General_BIN Like '[A-Z]' 或者 WHERE [Code_Records] COLLATE Latin1_General_BIN Like '[a-z]' 或者 WHERE [Code_Records] COLLATE Latin1_General_BIN Like '[0]' 或者 WHERE [Code_Records] COLLATE Latin1_General_BIN Like '[3]' etc
但是,这非常慢,因为索引否定了函数(反之亦然?)。有没有办法使用 COLLATE 函数插入计算列,然后索引该列?
谢谢,我是一年级 IT 学徒,所以基本上一切对我来说都是新的! 艾丹
【问题讨论】:
-
假设您使用的是 SQL Server,请标记您的数据库及其版本