打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
让SQL程序更快的运行:语句优化分析(2)
让SQL程序更快的运行:语句优化分析 (2)
作者:depha 来源:赛迪论坛 发布时间:2006.01.06
【Java专区】 【安全专区】 【网管专区】 【linux专区】 【进入论坛】 【IT博客】
sql语句索引的利用 对条件字段的一些优化 采用函数处理的字段不能利用索引,如: substr(hbs_bh,1,4)=’5400’,优化处理:hbs_bh like ‘5400%’ trunc(sk_rq)=trunc(sysdate), 优化处理: sk_rq>=trunc(sysdate) and sk_rq ss_df+20>50,优化处理:ss_df>30 ‘x’||hbs_bh>’x5400021452’,优化处理:hbs_bh>’5400021542’ sk_rq+5=sysdate,优化处理:sk_rq=sysdate-5 hbs_bh=5401002554,优化处理:hbs_bh=’ 5401002554’,注:此条件对hbs_bh 进行隐式的to_number转换,因为hbs_bh字段是字符型。 条件内包括了多个本表的字段运算时不能进行索引,如: ys_df>cx_df,无法进行优化 qc_bh||kh_bh=’5400250000’,优化处理:qc_bh=’5400’ and kh_bh=’250000’ 应用oracle的hint(提示)处理 提示处理是在oracle产生的sql分析执行路径不满意的情况下要用到的。它可以对sql进行以下方面的提示 目标方面的提示: cost(按成本优化) rule(按规则优化) choose(缺省)(oracle自动选择成本或规则进行优化) all_rows(所有的行尽快返回) first_rows(第一行数据尽快返回) 执行方法的提示: use_nl(使用nested loops方式联合) use_merge(使用merge join方式联合) use_hash(使用hash join方式联合) 索引提示: index(table index)(使用提示的表索引进行查询) 其它高级提示(如并行处理等等) oracle的提示功能是比较强的功能,也是比较复杂的应用,并且提示只是给oracle执行的一个建议,有时如果出于成本方面的考虑oracle也可能不会按提示进行。根据实践应用,一般不建议开发人员应用oracle提示,因为各个数据库及服务器性能情况不一样,很可能一个地方性能提升了,但另一个地方却下降了,oracle在sql执行分析方面已经比较成熟,如果分析执行的路径不对首先应在数据库结构(主要是索引)、服务器当前性能(共享内存、磁盘文件碎片)、数据库对象(表、索引)统计信息是否正确这几方面分析。 (T127)
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
【收藏】SQL语句优化技术分析
通过建立索引提高数据库查询速度的原理
oracle数据库中查询连接数的实用sql语句
SQL Server与oracle两者区别之语法区别
Oracle数据库用户名及密码查询
Oracle 常用性能监控SQL语句
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服