下载此文档

浅谈oracle数据库的优化.doc


文档分类:IT计算机 | 页数:约4页 举报非法文档有奖
1/4
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/4 下载此文档
文档列表 文档介绍
浅谈Oracle数据库的优化
当使用自查询时,也许会碰到几个独特的问题。涉及子查询的查询潜在问题如下:
也许在执行完查询的剩余部分前执行子查询(与执行分组功能的视图相似)。
子查询也许要求特定的提示,但这些提示不直接与调用该子查询的查询有关。
可以作为单个查询执行的子查询也许被代替写成几个不同的子查询。
也许在使用not in子句或者not exists子句时,不能在最有效的方式下进行子查询的存在查询。
1、当执行子查询时。
如果一个查询包含子查询,那么优化器有两种完成查询的方法:首先完成子查询,然后完成查询(“视图的方法”),或者将子查询集成到查询里去(“联结”的方法)。如果首先解决子查询,那么整个子查询的结果集将首先被计算,并且用查询条件的剩余部分做过滤器。如果没有使用子查询去进行存在检查,那么“联结”方法将通常要比“视图”方法完成得好。
如果一个子查询包括集合操作,如group by,SUM或者DISTINCT,那么不能集成子查询到查询的其余部分里去。非集成的子查询限制了提供给优化器的选项。
2、如何组合子查询。
一个查询可以包含多个子查询,使用的子查询越多,集成或者重写它们到大的联结里就越困难。既然有多个子查询使集成困难,就应该尽可能地组合多个子查询。
3、怎样进行存在检查。
有时子查询不返回行(记录),但可以进行数据正确性检查。在相关表里的记录或者存在或者不存在的逻辑检查,称为存在检查。可以使用exists和not exists子句提高存在检查的性能。
最常用的集操作是UNION操作,UNION操作使多个记录集联结成为单个集。UNION操作的数学定义是返回记录的单个集并且没有重复的行,所以在合并结果集里,Oracle只返回不同的记录。
当UNION操作用作SQL语句的一部分时,唯一性要求强迫Oracle移走重复的记录。Oracle的移走重复记录的功能是SORT UNIQUE操作,它与使用DISTINCT子句时执行的操作类似。
UNION ALL操作允许重复。UNION ALL不要求SORT UNIQUE操作,从而节省了开销。UNION ALL是一个行操作,所以当其变为有效就返回给用户。而UNION包括SORT UNIQUE集操作,在全部记录的集的排序结束前,不返回任何记录给用户。
当UNION ALL操作产生巨大的结果集时,不需要任何排序便返回记录给应用的事实意味着第一行检索的响应时间更快,并且在许多情况下,可以不用临时段完成操作。
在有些情况下,UNION ALL和UNION不返回同样的结果。如果在应用环境中,结果集并不包含任何重复的记录,则可以把UNION转换成UNION ALL。
在共享池中重

浅谈oracle数据库的优化 来自淘豆网www.taodocs.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数4
  • 收藏数0 收藏
  • 顶次数0
  • 上传人jiaxidong_02
  • 文件大小0 KB
  • 时间2015-09-13