sqlserver 多表关联时在where语句中慎用trim()方法

时间:2024-01-16 06:37:32 

类似如下:

select A.key,B.key,C.key from A,B,C where trim(A.key)=trim(B.fk) and trim(A.col)=trim(C.pk)。

在主表A(200多条记录)关联附表B(4万多条记录)时用了1秒钟时间,该值在不同机器执行可能有所差异,但比不加trim速度稍微慢一些,但是不是特别明显。

其sql语句类似如下:

select A.key,B.key from A,B where trim(A.key)=trim(B.fk)

但是,在上面sql语句中加入第三个表C(两条记录)后,Sql语句如下:

select A.key,B.key,C.key from A,B,C where trim(A.key)=trim(B.fk) and trim(A.col)=trim(C.pk)

整个sql语句执行了差不多70多秒钟。比不加trim()方法多发费了60夺秒。

后来,通过若干实验发现这种where中多表关联条件,如果不在左边关联条件处加trim()方法即可达到基本等同于一般多表关联的效率。

改良后的sql语句如下:

select A.key,B.key,C.key from A,B,C where A.key=trim(B.fk) and A.col=trim(C.pk)

此条sql语句执行效率基本等同于where语句中无trim()的sql语句速度了。

标签:sqlserver,多表关联,trim
0
投稿

猜你喜欢

  • SQL SERVER调用存储过程小结

    2024-01-23 18:52:27
  • python 对dataframe下面的值进行大规模赋值方法

    2022-01-08 07:04:19
  • IE 浏览器安全级别详情及区别小结

    2022-05-28 20:24:16
  • 来自qq的javascript面试题

    2024-04-16 10:29:17
  • 怎么用Python识别手势数字

    2021-11-14 16:35:35
  • pytorch加载预训练模型与自己模型不匹配的解决方案

    2023-06-17 14:22:24
  • Python答题卡识别并给出分数的实现代码

    2022-04-10 03:52:46
  • vscode常用插件整理汇总

    2023-11-21 10:48:59
  • 如何利用Java正则表达式校验密码规则

    2022-07-22 02:05:13
  • django实现更改数据库某个字段以及字段段内数据

    2024-01-26 14:52:09
  • TypeScript 学习笔记之基本类型

    2024-06-07 15:56:29
  • ASP 中 DateDiff 函数详解

    2007-09-19 12:00:00
  • MySQL两种识别是否有中文字符的方法

    2011-01-04 20:11:00
  • Python实现自动化处理PDF文件的方法详解

    2024-01-02 07:02:21
  • python元组的概念知识点

    2022-01-03 19:29:19
  • Python中常见的异常总结

    2021-11-15 04:21:27
  • 如何基于pythonnet调用halcon脚本

    2022-09-27 16:34:23
  • keras使用Sequence类调用大规模数据集进行训练的实现

    2021-01-03 20:24:35
  • python中的lambda函数用法指南

    2021-04-15 02:58:15
  • python3.7.3版本和django2.2.3版本是否可以兼容

    2022-08-18 09:31:23
  • asp之家 网络编程 m.aspxhome.com