Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在需要区分大小写比较的情况下,如何提高SQL查询性能?_Sql_Sql Server_Performance - Fatal编程技术网

在需要区分大小写比较的情况下,如何提高SQL查询性能?

在需要区分大小写比较的情况下,如何提高SQL查询性能?,sql,sql-server,performance,Sql,Sql Server,Performance,我想知道,在尝试使用区分大小写的条件执行SQL select语句时,是否有一种性能更友好的替代方法 例如: AND REL_USER_01 = 'Test_R1' COLLATE Latin1_General_CS_AS; 在我的select语句中执行上述操作需要1m25s,而: AND REL_USER_01 = 'Test_R1'; 不到1秒 我想用一个声明,将有类似的比较,以校对拉丁1_一般_CS_作为,但没有重大的性能打击。如有任何建议,将不胜感激。创建一个计算列,并在此基础上建立索

我想知道,在尝试使用区分大小写的条件执行SQL select语句时,是否有一种性能更友好的替代方法

例如:

AND REL_USER_01 = 'Test_R1' COLLATE Latin1_General_CS_AS;
在我的select语句中执行上述操作需要1m25s,而:

AND REL_USER_01 = 'Test_R1';
不到1秒


我想用一个声明,将有类似的比较,以校对拉丁1_一般_CS_作为,但没有重大的性能打击。如有任何建议,将不胜感激。

创建一个计算列,并在此基础上建立索引:

alter table t add REL_USER_01_CS as (REL_USER_01 COLLATE Latin1_General_CS_AS);

create index idx_t_relusercs on t(REL_USER_01_CS);
然后:


应使用索引。

创建一个计算列并在此基础上建立索引:

alter table t add REL_USER_01_CS as (REL_USER_01 COLLATE Latin1_General_CS_AS);

create index idx_t_relusercs on t(REL_USER_01_CS);
然后:


应使用索引。

创建一个计算列并在此基础上建立索引:

alter table t add REL_USER_01_CS as (REL_USER_01 COLLATE Latin1_General_CS_AS);

create index idx_t_relusercs on t(REL_USER_01_CS);
然后:


应使用索引。

创建一个计算列并在此基础上建立索引:

alter table t add REL_USER_01_CS as (REL_USER_01 COLLATE Latin1_General_CS_AS);

create index idx_t_relusercs on t(REL_USER_01_CS);
然后:


应使用索引。

动态指定排序规则等同于使用函数,因此无法使用索引。使用相应的排序规则和搜索创建一个新列,这是否意味着性能需要程序调用SQL?总体性能取决于整个系统的设计,通过在代码中确保所有内容在传递到SQL之前都转换为小写形式,可以提高性能,然后在SQL中只需检查char(?)varchar(?)nvarchar(?)的小写变体等等。动态指定排序规则相当于使用函数,因此无法使用索引。创建一个具有相应排序规则和搜索的新列,这是否意味着性能需要程序将调用SQL?总体性能取决于整个系统的设计,通过在代码中确保所有内容在传递到SQL之前都转换为小写形式,可以提高性能,然后在SQL中只需检查char(?)varchar(?)nvarchar(?)的小写变体等等。动态指定排序规则相当于使用函数,因此无法使用索引。创建一个具有相应排序规则和搜索的新列,这是否意味着性能需要程序将调用SQL?总体性能取决于整个系统的设计,通过在代码中确保所有内容在传递到SQL之前都转换为小写形式,可以提高性能,然后在SQL中只需检查char(?)varchar(?)nvarchar(?)的小写变体等等。动态指定排序规则相当于使用函数,因此无法使用索引。创建一个具有相应排序规则和搜索的新列,这是否意味着性能需要程序将调用SQL?整体性能取决于整个系统的设计,通过在代码中确保所有内容在传递到SQL之前都转换为小写,可以提高性能,然后在SQL中只需检查char(?)varchar(?)nvarchar(?)等的小写变体。