About me:Oracle ACE pro,optimistic,passionate and harmonious. Focus on ORACLE,MySQL and other database programming,peformance tuning,db design, j2ee,Linux/AIX,Architecture tech,etc
全部博文(169)
发布时间:2022-04-11 09:15:08
网上到处都是什么nologging放在insert 语句里减少redo size的说法,但是很少看到有数据来说明,或者测试的环境有所差别,其他的不说了,nologging那个eygle网站上有,append神马情况下减少redo,nologging用在神马情况下也不说了,就来说说那个insert append nologging语句以及测试了append到底是减少redo还是undo?。......【阅读全文】
发布时间:2020-07-15 17:21:48
随着业务的增长,生命周期管理单纯对表的管理,已经无法满足目前公司业务增长对存储的需求,因此,急需从其它方面对模型进行精简,而索引是占存储较大的对象,由于冗余索引、无效索引、无用索引等存在,导致索引浪费存储,需要制定一套策略进行管理。
索引监控与分析则是一套很好的方法,ORACLE提供索引monitor的方法(对系统资源使用影响小),但是无法监控索引使用频次,另一种方法可以通过使用AWR视图DBA_HIST_SQL_PLAN,可以查询到索引的使用频次,当然,有些SQL可能进入不了AWR中,因此,我们采用综合的方法:
1) 从AWR中(要求30天以上)查询出未被使用的索引。
2) 对1)中的索引使用ORACLE INDEX MONITOR监控30天。
如果最终查询出的索引仍未被使用,则认为此索引是多余索引,提交对应库负责人确认后予以清除。
......【阅读全文】
发布时间:2020-07-13 16:59:22
使用LEADING、ORDERED、SWAP_JOIN_INPUTS控制表连接顺序......【阅读全文】
发布时间:2020-07-02 16:38:07
分布式查询语句对于远程对象的查询在远程库执行,在远程库可以执行的SQL语句会通过优化器的查询转换,执行的是转换后的语句,然后结果集返回到本地,再与本地表运算。当然,
本地操作还是远程操作是相对的,我们可以通过driving_site hint改变主查询计划的执行位置,但是对DML,driving_site是失效的,另外对远程表也可以使用其他hint来控制执行计划。......【阅读全文】
发布时间:2020-06-27 20:36:12
CBO( Cost Based Optimizer)优化器是目前ORACLE默认使用的优化器,它使用统计信息、查询转换等计算各种可能的访问路径成本,并生成多种备选执行计划,最终ORACLE选择成本最低的作为最终执行计划。与旧的RBO(Rule Based Optimizer)相比,更加灵活,可根据实际情况选择最佳执行路径。
但是,由于其自身非常复杂,CBO的限制以及存在的BUG非常多,这时,作为SQL开发和优化人员,应该根据CBO特性,编写高效语句,以避免踩坑CBO优化器。
本文以两类常见的SQL优化问题来探讨基于ORACLE的高效SQL编写和优化。......【阅读全文】