ORACL∈ 。二、S语句优化技巧 1. Select子句的优化 2Wre子句的优化 3 TRINCAIESIEEIE 4使用表连接而不是多个查询 5使用SS替代IN 6使用BSS替代SNr 7.使用使用“<=”替代“<” 8使用表的别名 第6页
二、SQL语句优化技巧 1. Select子句的优化 2. Where子句的优化 3. TRUNCATE与DELETE 4. 使用表连接而不是多个查询 第 6 页 4. 使用表连接而不是多个查询 5. 使用EXISTS替代IN 6. 使用EXISTS替代DISTINCT 7. 使用使用“<=”替代“<” 8. 使用表的别名
ORACL∈ ·1 Select子句的优化 SC语句中避免使用“*”; 在SH句查询表的所有列时,可以使用动态S軍列 引用“*”,用来表示表中所有的列; 使用“*”替代所有的列,可以降低编写Sq语句的难 度,减少语句的复杂性,但是却降低了S语句执 行的效率。 第7页
1.Select子句的优化 • SELECT语句中避免使用“*” ; – 在SELECT子句查询表的所有列时,可以使用动态SQL列 引用“*”,用来表示表中所有的列; – 使用“*”替代所有的列,可以降低编写SQL语句的难 第 7 页 度,减少SQL语句的复杂性,但是却降低了SQL语句执 行的效率
ORACL∈ 0000 使用 SWTIINO语句显示执行时间 例1,检索so用户的c表,使用“*”来替代所有的列 名 SQL> SET TIMING ON SQL> SELECT* FROM scott. emp 已选择14行。 已用时间:::06.6 第8页
使用SET TIMING ON语句显示执行时间 • 例1,检索scott用户的emp表,使用“*”来替代所有的列 名; • SQL> SET TIMING ON 第 8 页 • SQL> SELECT * FROM scott.emp;
ORACL∈ 0000 例2检索s户的表,使用具体的列名 SQL> SELECT empno, ename, job, mgr, hiredate sal, comm, deptno FROM scott. emp 已选择14行。 已用时间:8:8g:881 第9页
• 例2,检索scott用户的emp表,使用具体的列名; • SQL> SELECT empno , ename , job , mgr , hiredate , sal , comm , deptno FROM scott.emp ; 第 9 页
ORACL∈ ●·。2Wrc子句的优化 在SC晤句中,使用W句过滤行,使用MVN 句过滤分组 行分组需要一定的时间,应该尽量使用W-re子句过滤行, 减少分组的行数,从而提高语句的执行效率。 第10页
2.Where子句的优化 • 在SELECT语句中,使用WHERE子句过滤行,使用HAVING子 句过滤分组; • 行分组需要一定的时间,应该尽量使用Where子句过滤行, 减少分组的行数,从而提高语句的执行效率。 第 10 页