对应的执行计划如下: 优化说明 很明显,执行计划中存在SubPlan,并且SubPlan中的运算相当重,即此SubPlan是一个明确的性能瓶颈点。 根据SQL语意等价改写SQL消除SubPlan如下: 1
2
3
4
5
6 UPDATE calc_empfyc_c_cusr1 t1
SET
count(1)
from calc_empfyc_c1_result_tmp_t1
where ls_pid_cusr1 in (‘20120405’, ‘20130405’);
或者 1
2
3
4 select
count(1)
from calc_empfyc_c1_result_tmp_t1
脚本:SAD_CALC_BPART_PRICE_PKG.SQL, SAD_CALC_ITEM_PKG_TEST_OB.SQL, SAD_CALC_ITEM_PRICE_TEST_OB.SQL, SAD_CALC_ITEM_PRI_TEST_OB.SQL, SAD_CALC_ITEM_TEST_OB
"shape": (32,),
"param_type": "output"}],
"calc_expect_func": calc_expect_func
})
# 若定义多个用例,定义多个ut_case.add_precision_case函数
当调用具有结果缓存的函数时,Oracle执行该函数,将结果添加到结果缓存中,然后返回该函数。 当重复该函数调用时,Oracle将从缓存中获取结果,而不必重新执行该函数。 某些场景下,这种缓存行为可带来显著的性能提升。 目标数据库不支持该关键字。该关键字会从目标文件中移除。 图9 输入:RESULT_CACHE
该函数主要操作是将indices分片搬入到UB中,然后遍历和计算出需要更新的var对应的index。搬运的时候需要考虑最后一个分片,搬运的burst_len需要单独计算。将一个indice分片搬入到UB后,在self.updates_the_var函数中遍历当前UB中的indices,做相应的计算和处理。
该函数主要操作是将indices分片搬入到UB中,然后遍历和计算出需要更新的var对应的index。搬运的时候需要考虑最后一个分片,搬运的burst_len需要单独计算。将一个indice分片搬入到UB后,在self.updates_the_var函数中遍历当前UB中的indices,做相应的计算和处理。
该函数主要操作是将indices分片搬入到UB中,然后遍历和计算出需要更新的var对应的index。搬运的时候需要考虑最后一个分片,搬运的burst_len需要单独计算。将一个indice分片搬入到UB后,在self.updates_the_var函数中遍历当前UB中的indices,做相应的计算和处理。
该函数主要操作是将indices分片搬入到UB中,然后遍历和计算出需要更新的var对应的index。搬运的时候需要考虑最后一个分片,搬运的burst_len需要单独计算。将一个indice分片搬入到UB后,在self.updates_the_var函数中遍历当前UB中的indices,做相应的计算和处理。
该函数主要操作是将indices分片搬入到UB中,然后遍历和计算出需要更新的var对应的index。搬运的时候需要考虑最后一个分片,搬运的burst_len需要单独计算。将一个indice分片搬入到UB后,在self.updates_the_var函数中遍历当前UB中的indices,做相应的计算和处理。
该函数主要操作是将indices分片搬入到UB中,然后遍历和计算出需要更新的var对应的index。搬运的时候需要考虑最后一个分片,搬运的burst_len需要单独计算。将一个indice分片搬入到UB后,在self.updates_the_var函数中遍历当前UB中的indices,做相应的计算和处理。
该函数主要操作是将indices分片搬入到UB中,然后遍历和计算出需要更新的var对应的index。搬运的时候需要考虑最后一个分片,搬运的burst_len需要单独计算。将一个indice分片搬入到UB后,在self.updates_the_var函数中遍历当前UB中的indices,做相应的计算和处理。
该函数主要操作是将indices分片搬入到UB中,然后遍历和计算出需要更新的var对应的index。搬运的时候需要考虑最后一个分片,搬运的burst_len需要单独计算。将一个indice分片搬入到UB后,在self.updates_the_var函数中遍历当前UB中的indices,做相应的计算和处理。
该函数主要操作是将indices分片搬入到UB中,然后遍历和计算出需要更新的var对应的index。搬运的时候需要考虑最后一个分片,搬运的burst_len需要单独计算。将一个indice分片搬入到UB后,在self.updates_the_var函数中遍历当前UB中的indices,做相应的计算和处理。
该函数主要操作是将indices分片搬入到UB中,然后遍历和计算出需要更新的var对应的index。搬运的时候需要考虑最后一个分片,搬运的burst_len需要单独计算。将一个indice分片搬入到UB后,在self.updates_the_var函数中遍历当前UB中的indices,做相应的计算和处理。