SQL profiling含义,可以与表和统计信息的关系相类比,SQL profile就是一条SQL语句的统计信息。例如,当我们遇到一条复杂且消耗资源非常大的SQL语句时,oracle可通过一些取样的数据,或者可以执行该语句的一个片段,以及分析该语句的历史执行情况,来评估整体执行计划是否最优化。而这些辅助信息,就是SQL profile信息,并保存在数据字典之中。
SQL Profiles 是Oracle10g 的一项新特性,虽然Oracle11g 都已经发布很久了,这个特性使用的并不多。 SQL Profiles可以说是Outlines的升级版。Outlines能够实现
的功能SQL Profiles也完全能够实现,而SQL Profiles具有Outlines不具备的一些特点:
a. SQL Profiles更容易生成、更改和控制。
b. SQL Profiles在对SQL语句的支持上做得更好,也就是适用范围更广。
SQL Profiles 不会固定执行计划,只是帮助优化器为SQL选择更适合的执行计划。
那么SQL Profiles 到底包含一些什么内容呢 ? SQL Profiles 就是为某SQL语句提供除系统统计信息,表或索引统计信息之外的其他信息( 如运行环境,额外的更准确
的统计信息等),帮助优化器为SQL语句选择更适合的执行计划。还有,SQL Profile使用简单,不区分大小写,回车,空格等。