1 / 7
文档名称:

SQL语句优化总结.doc

格式:doc   大小:70KB   页数:7页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

SQL语句优化总结.doc

上传人:小博士 2019/7/28 文件大小:70 KB

下载得到文件列表

SQL语句优化总结.doc

相关文档

文档介绍

文档介绍:数据库优化总结一、 冃IJ旨 1二、 在SELECT子句屮避免使用 1三、 删除重复记录 1四、 计算记录条数 2五、 减少对表的查询 2六、 EXISTS与IN使用 2七、 使用索引 3八、 UNION与UNIONALL的使用 4九、 驱动表的选择 5十、 Where语句中条件的川页序 5H、 使用where代替having语句 5十二、使用表的别名 5十三、 表记录删除 6十四、 Decode函数使用 6十五、尽量少用子查询 6十六、 SQL语句拆分 6十七、SQL语句屮参数的使用 7十八、解释计划 7—、刖舌下面是对使用ORACLE的SQL语句的一些优化总结,借鉴了一些资料和自己的经验总结,只是部分优化方法,甚至可能还会有不准确的地方,希望看官给予补充我修正,以提高大家写SQL语句的水平。二、 在SELECT子句中避免使用“*'当你想在SELECT子句中列岀所有的COLUMN吋,使用动态SQL列引用是一个方便的方法•不幸的是,,ORACLE在解析的过程中,会将'*'依次转换成所有的列名,这个工作是通过查询数据字典完成的,(因为使用了ROWID)>(SELECTMIN()=)Oracle的ORW1D用来唯一标识表中的一条记录,是这条数据在数据库中存放的物理地址四、计算记录条数计算记录数一般count(*),count(1),count(索引)三种写法,使用count(索引)方法是最快的,另两种哪个快说法不一,但通过实际测试差不太多五、减少对表的查蓬在写SQL语句吋要减少对表的查询,即能通过对表一次查询取得结果就不要查两次。例1:Select*fromclmbOlcWherecjxsdm=(selectmax(cjxsdm)fromclmblO)Andcsqdh=(selectmin(csqdh)fromclmblO)Whereid=833997可改成Select*fromclmbOlcWhere(cjxsdm,csqdh)=(selectmax(cjxsdm),min(csqdh)fromclmblO)whereid=833997;更新也一样UpdateclmbOlcset(cjxsdm,csqdh)=(selectmax(cjxsdm),min(csqdh)fromclmblO)Whereid=833997;当然此例还有其它写法,在此拿出只是说明观点例2:UpdateclmbOlcsetcdjzt二Twhereid=833997;Selectnhjjeinton_hjjefromclmbOlcwhereid=833997;以上两语句可合成一个UpdateclmbOlcsetcdjzt二Twhereid=833997returningnhjjeinton_hjje;六、EXISTS与IN使用对于这两个操作符,通常认为EXISTS会比IN效率高,特别是EXISTS的子查询语句可用到索引时会比IN效率高Oracle在处理这两个操作时处理如下:IN:Oracle将IN后面的子查询语句调入到内存,然后排序,如果记录多会非常占用系统资源EXIS