JAVA(SQL语句的优化)

所需积分/C币:50 2017-10-20 18:05:37 2.29MB PDF
收藏 收藏
举报

JAVA(SQL语句的优化)JAVA(SQL语句的优化)JAVA(SQL语句的优化)
更多资料,请加QQ群:587737871 select *k from temp zhao where aulname++au fname='White Johnson sclcct from tcmp zhao where aulnamc-'Whitc and au fnamc-Johnson 3.带通配符(%)的1ike语句 同样以上面的例子来看这种情况。目前的需求是这样的,要求在职、工表中查询名字中包含 1iton的人。可以采用如下的查询SQL语句 elect x from employee where last name like %cliton% 这甲由于通配符(%)在搜寻词首出现,所以0 racle系统不使用 last name的索引。在很多情况下 可能无法避免这种情况,但是一定要心中有底,通配符如此使用会降低查询速度。然而当通配符 出现在字符串其他位置吋,犹化器就能利用索引。在下面的査询中索引得到了使用 select x from employee where last name like cliton% 例: drop index temp zhao. aaaindex select x from t emp zhao where aulname like ' G% or aul W or aulname like create clustered index aaaindex on temp zhao(aulname) select s from temp zhao where aulname like or aulname like W%o or aulname like 4.0 rder by语句 ORDER BYI语句决定了0 Oracle知何将返回的查询结果排序。 Order by语句对要排序的列 没有什么特别的限制,也可头机入列中(象联接或者附加等).任何在0rdby语句的非 引项或者有计算表达式都将降低查询速度。仔细检査 order by语句以找出非索引项或者表达式, 它们会降低性能。解决这个题的办法就是重写 order by语句以使用索引,也可以为所使用的列 建立另外一个,同时应绝对免在 order by子句中使用表达式。 op index temp zhao. aaaindex select from temp zhao order by au id create clus cered index aaaindex on temp zhao(au id) select from temp zhao order by au id pby语句 drop index temp zhao. aaaindex select aulname from temp zhao group by aulname crcatc clustered index aaaindcx on tcmp zhao (aulnamc select aul name from temp zhao group by aulname 更多资料,请加QQ群:587737871 更多资料,请加QQ群:587737871 5. NOT 我们在查询时经常在 where子句使用一些逻辑表达式,如大于、小于、等于以及不等于等等, 也可以使用and(与)、or(或)以及not(非)。NOT可用来对任何逻辑运算符号取反。下面是 个NOT子句的例子 here not (status =VALID) 如果要使用NOT,则应在取反的短语前加上括号,并在短语前面加上NO运算符。\O运算 符包含在另外个逻运算符中,这就是不等于()运算符。换句话说,凹个在在询her 子句中显式地加入NOT词,NOT仍在运算符中,见下例: chore status < INVALID 再看下面这个例子 elect. *k from employee where salary >3000 对这个查询,可以改写为不使用OT elect from employee where salary<3000 or salary>3000 drop index temp zhao. aaaindex select *s from temp zhao where(94609 create clus tered index aaaindex on temp zhao(zip) sclcct x from tomp zhao whcrc zip<>94609 select x from tears heo wbere zip 94609 or zip<94609 虽然这两种查询的结果,但是第一神查询方案会比第一种仓询方案更快些。第一种查询 允许0 Oracle对 salary列使用素引,而第一种查询则不能使用索引 6.IN和 EXISTS 平收一列和一系列相比数最简单的小法就是在子句中他用子在,在c 中可以使用两种格式的子查询 爹神格式是使用N操作符 were column in(select from,. where.) 第二种格式是使用 EXIST操作符: waere exists (select ' X' from,. where..) 相信绝大多数人会使用第一种烙式,因为它比较容易编写,而实际上第一∵种格式要远比第 种格式的效率高。在 Oracle中可以几乎将所有的IN操作符子查询改写为使用 EXISTS的子查询。 在第二种格式中,子查询以‘ select’X开始。运用 EXISTS子句不管子查询从表中抽取什么数 据它只查看 wherc子句。这样优化器就不必遍历整个表而仅根据索引就可完成工作(这里假定在 where语句中使用的列存在索引)。相对于IN子句来说, EXISTS使用相连子查询,构造起来要比 IN」査询困难一些。通过使用EKST, Oracle系统会首先检査主查询,然后运行∫查询直到它找 更多资料,请加QQ群:587737871 更多资料,请加QQ群:587737871 到第一个匹配项,这就节省了时问。 Oracle系统在执行IN子查询时,首先头行子查询,并将获 得的结果列表存放在在一个加了索引的临时表屮。在汍行子查询之前,系统先将主查询挂起, 待子査询执行完毕,存放在临时表中以后再执行主查询。这也就是使用 EXISTS比使用IN通常查 询速度快的原因。同时应尽可能使用 NOT EXISTS来代替 NOT IN,尽管二者者使用了NOT(不能使 用索引而降低速度), NOT EXISTS要比NOTI查询效率更高。 create clustered index aaaindex on temp zhao (au id) select x from temp zhao where temp zhao au id in (select au id from temp zhao1 select s from temp zhao where exists (select from temp zhadl wher temp zhao au id=temp zhaol. au id) 7、其他 1、 SELECT子句中避兔使用* lect select来 rom temp zhao 2、使用 count(*)而不要使用cunt( column name) It(zip) from temp zh select count(*) f'rom temp zhao 更多资料,请加QQ群:587737871 更多资料,请加QQ群:587737871 注意点总结 1、语句中出现的所有表名、字段名仝部小写,系统保留字、内置函数名、SQL保留字人写, 2、连接符or、in、and、以及=、<=、>=等前后加上一个空格。 3、对较为复杂的sql句加上注释,说明算法、功能。 4、查询多个列时,尽量使每列查询占一行,且加上注释来标明该列名称,以方便其他人以后的修改。 5、 where子句书写时,每个条件占一行,语句令起一行时,以保留字或者连接符开始,海接待右对齐 6、多表连接时,使用表的别名来引用列 7、变量命名不能超出 RACLE的限制(30个字符),命名要规范,要用英文命 8、查找数据库表或视图时,以取需要字段,不要使用*来代替所有列名 9、当在WERE子句中有多个表联接时,WERE子句中排在最后的表应当是返回行数可能最少的表 10、过滤条件最有效的子句应放在WERE子句中的最后。 11、最好不要在WERE子句中使用函数或表达式 12、尽可能使用 NOT EXISTS来代替NrT,使用X来代替lN 13、通过使用》..O0R<来避免使用< 14、在查询时尽量少用格式转换。 15、在不必要的情况下尽量避免使用 ORDER BY和 ROLP BY(必要时注意对索引列排序、分组)。 16、尽量避免使用SNUL和1 S NOT NULL(元其对具有索引的列使用)。 17、在使用cn时,尽量使用 count(+)不要使用cont( column_name).。 18、在不必要的情况下尽量避免使用间 STINCT 19、尽量避免使用“%N 20、尽可能多地使用健列默认的会在键上力上索引)作为条作 21、尽量避免硬用NA,而用N0N代替。 更多资料,请加QQ群:587737871°

...展开详情
试读 6P JAVA(SQL语句的优化)
立即下载 低至0.43元/次 身份认证VIP会员低至7折
抢沙发
一个资源只可评论一次,评论内容不能少于5个字
  • 签到新秀

    累计签到获取,不积跬步,无以至千里,继续坚持!
关注 私信 TA的资源
上传资源赚积分or赚钱
最新推荐
JAVA(SQL语句的优化) 50积分/C币 立即下载
1/6
JAVA(SQL语句的优化)第1页
JAVA(SQL语句的优化)第2页

试读结束, 可继续阅读

50积分/C币 立即下载 >