写了好几个页面,速度都上不去,瓶颈在于SQL查询。太多的表,太多的not in,总是从一大推表和数据中筛选出一点数据。看了很多关于SQL优化的文章,都强烈要求不要太多使用not in查询,最好用表连接来取代它。如:
select ID,name from Table_A where ID not in (select ID from Table_B)
呵呵,这句是最经典的not in查询了。改为表连接代码如下:
select Table_A.ID,Table_A.name from Table_A left join Table_B on Table_A.ID=Table_B.ID and Table_B.ID is null
或者:
select Table_A.ID,Table_A.name from Table_A left join Table_B on Table_A.ID=Table_B.ID where Table_B.ID is null
经试用,效果立竿见影,呵呵:)
REFS:http://blog.csdn.net/terryhuang/article/details/2517004
相关推荐
7. **连接查询**:当需要从两个或更多表中检索数据时,使用`JOIN`语句。常见的类型有内连接(`INNER JOIN`)、左连接(`LEFT JOIN`)、右连接(`RIGHT JOIN`)和全外连接(`FULL OUTER JOIN`)。 8. **分页查询**:...
- **避免使用NOT IN**:使用NOT IN可能引发全表扫描,应考虑使用LEFT JOIN或EXISTS代替。 **3.2.2 避免相关子查询** - **替换为JOIN操作**:使用外连接或内连接代替相关子查询。 **3.2.3 优化表的连接条件** - **...
首先,需要创建一个`SqlConnection`对象,并使用适当的连接字符串: ```vb dim conn set conn = server.createobject("ADODB.connection") conn.open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & server....
#### notin方式 使用`NOT IN`可以有效地过滤出不在另一个表中的行,但在大型表中可能会遇到性能问题。 #### except方式 `EXCEPT`用于返回在第一个表中但不在第二个表中的行。这种方法通常比`NOT IN`更高效,尤其是...
- **两个表做join的不同方式的区别**:不同的连接方法(如`NOT IN`、`EXCEPT`、`NOT EXISTS`等)有不同的性能特点,应根据具体情况进行选择。 #### 五、其他系统和DB2的交互 - **DELPHI中从db2取bigint的数据**:...
- **notin方式**:使用`NOT IN`子句进行连接时,可能会导致性能问题,因为它可能无法利用索引。 - **except方式**:使用`EXCEPT`关键字可以实现两个集合的差集运算,但在性能上不如`INNER JOIN`。 - **notexist...
- **两个表做JOIN的不同方式的区别**:不同的JOIN方法(如`NOT IN`、`EXCEPT`、`NOT EXISTS`)可能会影响查询性能。 #### 五、其他系统和DB2的交互 - **DELPHI中从DB2取BIGINT的数据**:在Delphi中处理来自DB2的大...
- `not only… but also` 连接两个并列成分,表示“不但…而且…”。 - `every two years` 每两年,同义词有 `every second year` 或 `every other year`。 2. **句子理解** - `Art is influenced by the way of...
- **UPDATE不能用一个表中的记录为条件修改另一个表中的记录**:需要使用其他方法,如关联查询。 - **如果显示调用存储过程时传NULL值要注意**:避免传递NULL值导致的问题。 #### DB2编程性能注意 - **大数据的导...
8. **使用临时表取代一条一条插入:** 使用临时表可以批量处理数据,提高插入效率。 9. **循环次数很多时注意减少执行语句:** 减少循环体内的执行语句数量可以显著提高性能。 10. **看程序执行时间及结果DB2BATCH:*...
- **that引导的宾语从句**:如"I hear that he will be back in a month.","that"在这里不作任何含义,仅起连接作用。 - **if/whether引导的宾语从句**:表示疑问或不确定性,如"I don't know if / whether he is...
- **新增字段约束操作**:引入`notmatches`、`notcontains`、`in`、`notin`、`memberOf`、`not memberOf`等操作符,增加了规则表达的精确度。 - **自索引字段支持**:引入`this`作为自索引字段,简化了事实对象的...
While advancements in technologies like augmented reality (AR) and virtual reality (VR) might change how we interact with devices, these technologies are not likely to fully replace cell phones any...
"take the place" 表示“取代,接替”的位置,而 "replace" 直接表示“替换”,两者都可以用在这里,所以 A 和 C 都是正确答案。"instead of" 和 "in place of" 都表示“代替”,但它们是介词短语,不能单独作谓语,...
- 使用`+`号连接字符串,`*`号用于重复字符串。 - 可以使用`str()`函数将其他类型转换为字符串。 7. **正则表达式**: - Python中使用`re`模块处理正则表达式,如`import re`后,可以使用`re.search()`、`re....
9. 介词与方位词的使用:"in a new city"表明在城市的内部,强调位置关系。 10. 动词短语:"think over"表示“仔细考虑”,"hear about"表示“听说”,"write down"表示“写下”,"talk with"表示“与…交谈”。...
Oracle8是其早期的一个版本,虽然现在已经被更先进的版本如Oracle11g、Oracle12c和Oracle19c所取代,但有些旧系统或特定场景可能仍需要与Oracle8交互。本压缩包"oracle8驱动包.zip"包含了与Oracle8数据库通信所需的...