(1) INSERT [INTO] B SELECT id, field1, field2 FROM A WHERE NOT EXISTS (SELECT id FROM B WHERE id=[A.]id)
(2) INSERT [INTO] B SELECT * FROM A WHERE id NOT IN (SELECT id FROM B)
---------------------------------------------------------------------------
这两句,都是将 A 表中存在, 但B表中不存在的数据, 插入到B表中, 关联比较字段为 id.
但这两句的执行效率,却是有数量级的差别.
结论有两点:
- 尽量用 EXISTS 和 NOT EXISTS 代替 IN 和 NOT IN
- 不要偷懒, 尽量不用 SELECT * FROM ...., 而要写字段名 SELECT field1,field2,....
注意:
在SQL SERVER中, EXISTS 用的比较多的是在 存储过程或触发器 中, 而在ORACLE中,却没有这个功能, ORACLE中的EXISTS 只能用在 单句的 SQL 中.
分享到:
相关推荐
本次秘笈根据实际的工作经验,在研发原来已有的方法的基础上,进行了一些扩充,总结了基于索引的SQL语句优化的降龙十八掌,希望有一天你能用其中一掌来驯服客服业务中横行的‘恶龙’。 这次传授的降龙十八掌,总纲...
说明:通过这个报表找到排在前10 的sql语句,如果这些语句是用户编写的sql语句,我可以对其进行优化。 我们可以根据这些信息筛选出需要优化的SQL语句进行优化 SQL优化经验 大表缺索引---必要字段上建立索引 ...
oracle语句优化总结,自己的一点经验之谈,没啥特别的,对于oracle数据库的sql语句进行优化有时候很有用。
很好的学习SQL优化的书,而且还提供了很多有用的常用语句,梁敬斌的书还是值得推荐的
MSSQL为我们提供了两种动态执行SQL语句的命令,分别是 EXEC 和 SP_EXECUTESQL ,我们先来看一下两种方式的用法。 先建立一个表,并添加一些数据来进行演示: 复制代码 CREATE TABLE t_student( Id INT NOT NULL, ...
6.2.4 标识SQL语句以便以后取回计划 153 6.2.5 深入理解DBMS_XPLAN的细节 156 6.2.6 使用计划信息来解决问题 161 6.3 小结 169 第7章 高级分组 170 7.1 基本的GROUP BY用法 171 7.2 HAVING子句 174 7.3 GROUP...
1> 查询数据表除了前三条以外的数据。 起初我想到的是这条语句 SELECT * FROM admin WHERE userid ...这个的意思是表示子查询的时候不支持limit ,还有一点我就是很二了 就是查询的时候用not in 效率非常不高 最后
SQL编辑器中不仅包括标准的编辑命令,也包括一些增强的功能,如快速查询表中的字段、将SQL语句的内容格式化等等。这个窗口可以处理大到4GB 的内容,对大的开发项目来说非常有用。便捷的书签可以让开发人员非常容易地...
在Mysql中我们有几种手段可以做到这一点,一种是update table1 t1, table2 ts …的方式: 代码如下: UPDATE product p, productPrice pp SET pp.price = pp.price * 0.8 WHERE p.productId = pp.productId AND p....
从配置文件中优化sql语句。 (2) ibatis可以进行细度优化。可以针对一个表中一个或几个字段进行更新等操作。Hibernate会更新所有的字段。 (3) ibatis可维护性高一点。 2.Ibatis需要的jar包 (1) ibatis-2.3.4.726....
对于所有的需求,当你不知道怎么处理的时候,你就先用最简单的方法,或者说的明白一点,用最原始的方法,先实现业务需求再说。 一、对提现队列数据表“ims_checkout_task”进行汇总统计,按月汇总统计每个月的提现...
1.0 版本已经从基于规则的查询优化器转向基于代价的查询优化器,但是还不够完善,在 2.0 版本中,一方面优化统计信息的精确度以及更新及时程度,另一方面提升 SQL 优化器的能力,对查询代价的估算更加精准、对复杂...
我们通过循环来生成SQL字符串,而不是通过循环来生成多个SQL语句。这样子在相同的条件下就只需要打开一次数据库读取。而不是通过多次循环打开来实现。这样子在数据库的链接、打开、关闭等方面节省了比较大的时间。...
我们通过循环来生成SQL字符串,而不是通过循环来生成多个SQL语句。这样子在相同的条件下就只需要打开一次数据库读取。而不是通过多次循环打开来实现。这样子在数据库的链接、打开、关闭等方面节省了比较大的时间。...
我们也想过很多办法解决这个问题,包括用MyEclipse连接数据库生成JavaBean,但多多少少还是会有一些不尽人意的地方,包括表和表字段的comment总是无法生成,而且还会生成很多无用的注释代码,让代码看起来一点都不...
我们通过循环来生成SQL字符串,而不是通过循环来生成多个SQL语句。这样子在相同的条件下就只需要打开一次数据库读取。而不是通过多次循环打开来实现。这样子在数据库的链接、打开、关闭等方面节省了比较大的时间。...
通过在SQL语句中直接嵌入优化器指令,进而使优化器在语句执行时强制的选择hint指定的执行路径,这种使用方式最大的好处便是方便和快捷,定制度也很高,通常在对某些SQL语句执行计划进行微调的时候我会首选这种方式,...
4、最强大的分页查询:很多人第一次了解到何为快速分页、分页优化这种极为巧妙的处理,还有在count语句上的极度优化。 5、跨数据库函数方言替换,如:isnull/ifnull/nvl、substr/substring 等不同数据库。 sqltoy-...