提问:视图效率 一个非常复杂的视图,大约有3000个字符,很多表关联及视图关联。我想问这样复杂的视图Oracle在每次执行时是不是都会对此视图解析一次?而且解析的耗费会比较多呢?在大型项目中是否尽量少地将功能以视图的形式描述出来?否则会造成视图相当复杂。主要问的是视图执行的原理及复杂视图的效率影响。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 从实现角度来说,视图就是对sql语句的物理存储。每当你访问这个视图的时候,oracle会先对sql进行语法和语义检查,然后确定此sql是否可以使用用共享池中已经分析过的语句的执行计划,看看在共享池中有没有同样的sql,如果有那么就使用这个执行计划;否则调用优化器生成语句的执行计划,执行此语句。其中使用优化器的步骤是非常耗时的(硬分析),最好能够跳过(软分析)。如果频繁使用此视图,那么肯定不会对视图进行多次硬分析,所以不用担心视图会影响你的效率。视图只是把你要用的sql进行保存而已,你需要担心的是视图中的sql会不会效率太低。 从实现角度来说,视图就是对sql语句的物理存储。每当你访问这个视图的时候,oracle会先对sql进行语法和语义检查,然后确定此sql是否可以使用用共享池中已经分析过的语句的执行计划,如果有那么就使用这个执行计划;否则调用优化器生成语句的执行计划,执行此语句。其中使用优化器的步骤是非常耗时的(硬分析),最好能够跳过(软分析)。如果频繁使用此视图,那么肯定不会对视图进行多次硬分析,所以不用担心视图会影响你的效率。视图只是把你要用的sql进行保存而已,你需要担心的是视图中的sql会不会效率太低。 我这里省略了很多步骤,但是话粗理不粗,需要关心的是sql的效率,而不是使用了视图。 请问 SQL Server到Oracle数据同步问题 一个3个表查询 数据量大 并用了notexists 速度慢问题 ORA-1658 无法为表空间的段创建initial区 登录oracle时出现ORA-01033:ORACLE initialization or shutdown in progress错误 急急,关于作业 执行delete后,kill这个session,undo还不停的涨?? 模糊匹配的问题!急!~ sql如何把表导出excel格式?? 超级菜鸟问题:请问在oracle中,如何像sql server2000那样直观地看到自己建立的数据表? 帮忙解决问题 如何对ORACLE里的CLOB字段进行模糊查询?例如like关键字可以用吗? 紧急请教全文检索2个字段落造成的Full Table Search怎么办?
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货