• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >Mysql > sqlserver 多表关联时在where语句中慎用trim()方法

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

作者:匿名 字体:[增加 减小] 来源:互联网 时间:2018-12-05

匿名通过本文主要向大家介绍了sqlserver,多表关联,trim等相关知识,希望本文的分享对您有所帮助

最近做的一个项目由于前期数据库设计不合理,导致多表关联的主外键长度设计不一致,以致过长主外键中过长的字段在填入相同字段时,多余部分被填入空字符。迫于无奈,就在多表关联的where语句中使用了trim()方法。

类似如下:

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语句速度了。
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 如何获取SqlServer2005表结构(字段,主键,外键,递增,描述)
  • 如何在SQL Server中实现 Limit m,n 的功能
  • 深入Mysql,SqlServer,Oracle主键自动增长的设置详解
  • 小编带你深入解析SQL Server索引的原理
  • sqlserver帐号被禁用如何处理
  • sqlserver查询锁住sql以及解锁的方法
  • MS SQLServer 批量附加数据库的方法
  • SqlServer 2008 创建测试数据的方法
  • 讲解有关sqlserver分页查询处理方法
  • MYSQL同步Sqlserver数据库数据

相关文章

  • 2018-12-05解析mysql创建本地用户及赋予数据库权限
  • 2018-12-05Linux安装JDK和Tomcat以及MySQL的图文教程
  • 2017-05-11为mysql数据库添加添加事务处理的方法
  • 2017-05-11Windows下使用Cygwin编译MySQL客户端
  • 2018-12-05如何在linux下修改mysql数据库密码?linux修改数据库密码的方法
  • 2018-12-05Sql语句与存储过程查询数据的性能测试实现代码
  • 2018-12-05MySQL安全性指南 (1)(转)
  • 2018-12-05Oracle9i取得建表和索引的DDL语句
  • 2018-12-05Oracle 11gR2 RAC 环境测试修改节点VIP的测试操作记录
  • 2018-12-05将mysql转换到oracle必须了解的50件事

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • 合并SQL脚本文件的方法分享
    • sql 随机抽取几条数据的方法 推荐
    • Mysql 自动增加设定基值的语句
    • Mysql导出数据的正确方法
    • MySQL中关于加密和解密的实例详解
    • 详解MySQL重置root密码提示"Unknown column ‘password"的解决方案
    • MySQL在Mac下初始化密码操作详解
    • phpMyAdmin下将Excel中的数据导入MySql的图文方法
    • SQL学习笔记七函数 数字,日期,类型转换,空值处理,case
    • 删除MySQL数据库提示操作无法完成

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有