然见效,我们定然测验察看是否见效。但由于就算给了讹谬的OUTLINES,数据库在厉行的时候,揖 智疏忽过去重新生成厉行计划而不会归来讹谬,因而我们才敢塌心的这么利用。当然在Oracle文档中并未曾指明能够这么做,文档中只是解释,万一存在OUTLINES的同时又在SQL中加了HINTS,则会利用OUTLINES而疏忽HINTS.这秉功能在LECCO将公布的产品中会利用这一功能,这么能够将SQL EXPERT的修改SQL的力气和安宁厉行计划的力气联合起来,那么我们就对不能改动源代码的利用具有了相当壮大的SQL优化力气。 可能我们会有疑问,假定安宁了厉行计划,那还搜集普查消息干吗?这是因为几个起因构成的,率先,目前的厉行计划对于未来发生了改变的数据未必即便轻便的,存在着目前的厉行计划不中意未来数据的改变后的效率,而新的普查消息的情形下所发生的厉行计划也并不是全副都科学的。那这个时候,我们能够批准新搜集的普查消息,然而却对新普查消息下不良的厉行计划批准Oracle供给的厉行计划安宁性这个力气安宁厉行计划,这么联合起来我们能够发生顺心的高效的数据库运行环境。 我们还必需关怀的一个东西,Oracle供给的dbms_stats包除非具有搜集普查消息的力气,还具有把数据库中普查消息(statistics)export/import的力气,还具有只搜集普查消息而使得普查消息不利用于数据库的力气(把普查消息搜集到一个特定的表中而不是即刻见效),在这个基础上我们就能够把普查消息export出来再import到一个测验环境中,再运行我们的利用,在测验环境中我们考察最新的普查消息会导致哪些厉行计划发生改变(DB EXPERT的Plan Version Tracer是模仿不同环境并积极察看不同环境中厉行计划改变的工具),是变好了还是变差了。我们能够把变差的这一局部在测验环境中利用hints可能利用工具(SQL EXPERT是在重写SQL这一领土现在最强有力的工具)发生良好的厉行计划的SQL,利用这些SQL能够发生OUTLINES,然后在产品数据库利用最新的普查消息的同时移植进这些OUTLINES.
|