关于oracle查询参数的问题
比如说有个sql这样的,select/*+full(a)parallel(a,2)*/a.usernumberfromxxx;那里面的/*+full(a)parallel...
比如说有个sql这样的,select /*+full(a) parallel(a,2)*/a.usernumber from xxx;那里面的/*+full(a) parallel(a,2)*/a这段是什么意思?麻烦详细点。
展开
展开全部
full(a)
强制使用某种优化法则
这个full(表)的目的是 括号里的表将会使用全表扫描。
parallel
加上这个说明,可以强行启用Oracle的多线程处理功能
Parallel后面的数字,越大,执行效率越高。不过,增大到一定值,效果就不明显了。所以,一般用8,10,12,16的比较常见。不过,数值越大,占用的资源也会相对增大的。如果是在一些package、function or procedure中写的话,还是不要写那么大,免得占用太多资源。
强制使用某种优化法则
这个full(表)的目的是 括号里的表将会使用全表扫描。
parallel
加上这个说明,可以强行启用Oracle的多线程处理功能
Parallel后面的数字,越大,执行效率越高。不过,增大到一定值,效果就不明显了。所以,一般用8,10,12,16的比较常见。不过,数值越大,占用的资源也会相对增大的。如果是在一些package、function or procedure中写的话,还是不要写那么大,免得占用太多资源。
追问
就是对a表进行全表扫描,然后parallel这个是强制启动多线程,那后面的(a,2)是什么意思,还有就是*还有+号什么意思,谢谢。
追答
a表启动2个并行线程。*+这两个应该是固定写法,没深入研究过。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询