发布时间:2016-04-29 16:35:53
通过bulk collect减少loop处理的开销,使用Bulk Collect提高Oracle查询效率Oracle8i中首次引入了Bulk Collect特性,该特性可以让我们在PL/SQL中能使用批查询,批查询在某些情况下能显著提高查询效率。采用bulk collect可以将查询结果一次性地加载到collections中。而不是通过cursor一条一条地处理。可以.........【阅读全文】
发布时间:2016-04-29 16:34:29
一. Bulk 概述 本来只想测试一下Bulk Collect 和update性能的,但发现Bulk 的东西还是很多的,在OTN上搜了一些,整理如下。 1.1 Bulk Binding 和 Bulk SQLFrom: http://download.oracle.com/docs/cd/E11882_01/appde.........【阅读全文】
发布时间:2016-04-29 16:21:57
2、使用批量绑定优化PL/SQL当SQL在集合的循环内执行时,PL/SQL和SQL引擎间的频繁切换就会影响到执行速度。例如,下面的UPDATE语句就在FOR语句中不断发送到SQL引擎:DECLARE TYPE numlist IS VARRAY(20) OF NUMBER; depts numlist .........【阅读全文】
发布时间:2016-03-02 11:23:20
一个开发同事遇到一条慢SQL,大概需要1分钟执行完毕,SQL目的是通过wmsys.wm_concat实现列转行。这条SQL如果把wmsys.wm_concat函数去掉,耗时只需3秒钟。可见,性能瓶颈来自于这wmsys.wm_concat函数。通过查找,发现了它的替代函数listagg,且性能好于wmsys.wm_concat。列转行函数有两种:wmsys.wm_conc.........【阅读全文】
发布时间:2014-12-26 14:21:56
TABLE函数在SQL中使用,可以将传入的集合转为普通表使用,与管道函数结合使用,往往能够提高效率,然后在实际应用过程中,发现CBO对TABLE函数的启发式基数估算,往往会导致性能问题。以下SQL虽然单条运行很快,但是运行非常频繁,严重消耗CPU资源。......【阅读全文】