1.1
SQL配置文件
你可以将SQL优化委派给称为自动调整优化器(Automatic Tuning
Optimizer)的查询优化器的一个组件。将此任务委派给在第一个位置无法找到有效执行计划的同一个组件,这可能看起来很奇怪。但实际上,这两种情况很不同。事实上,在正常情况下,由于查询优化器需要快速运转(基本是亚秒级)而被迫生成次优的执行计划。相反,自动调整优化器会有更多的时间来执行一个高效的执行计划。进一步讲,它可以使用耗时技术(如模拟分析)和加大动态采样技术的使用率来验证它的估算。
自动调整优化器是通过SQL优化顾问(SQL Tuning Advisor)引入的。它的目的是分析SQL语句并针对其性能的提高提出建议,包括收集缺失或陈旧的统计信息,创建新的索引,修改SQL语句或使用SQL配置文件。
关于SQL配置文件必须要知道的是它只可以通过SQL优化顾问生成。但在稍后我会介绍,你也可以手工创建它们。
1.1.1 工作原理
接下来的几个部分会介绍什么是SQL配置文件以及如何使用它们,还会提供关于它们的内部工作的信息。要管理SQL配置文件,可以使用集成到企业管理器(Enterprise
Manager)的图形界面。
1.1.1.1 sql配置文件的定义
SQL配置文件是一种对象,这种对象包含可帮助查询优化器为特定SQL语句找到高效执行计划的信息。SQL配置文件提供关于以下各项的信息:执行环境、对象统计信息和与查询优化器执行的评估相关的更正。
SQL配置文件的主要优势之一是,可以影响查询优化器而不用修改SQL语句或它所在会话的执行环境。换句话说,它对于连接到数据库引擎的应用是透明的。要理解SQL配置文件是如何工作的,让我们来看看它是如何生成和使用的。
图11-4举例说明SQL配置文件生成期间的执行步骤。简单来说,用户请求SQL优化顾问来优化SQL语句,然后当SQL配置文件提出建议后,SQL优化顾问就会接受。
下面是详细的步骤。
(1)用户将性能糟糕的SQL语句传递给SQL优化顾问。
(2)SQL优化顾问要求自动调整优化器针对需要优化的SQL语句给出建议。
(3)查询优化器获取系统统计信息、与SQL语句引用的对象相关的对象统计信息以及设置执行环境的初始化参数。
(4)分析SQL语句。在这个过程中,自动调整优化器执行分析并部分执行SQL语句来验证它的猜测。
(5)自动调整优化器将SQL配置文件返回给SQL优化顾问。
(6)用户使用SQL配置文件。
(7)将SQL配置文件存储到数据字典中。
图11-5举例说明使用SQL配置文件期间执行的步骤。重点是整个过程对用户来说是透明的。
下面是详细的步骤。
A.用户将SQL语句发送给SQL引擎来执行。
B.sql引擎要求查询优化器提供执行计划。
C.查询优化器获取系统统计信息、与SQL语句引用的对象相关的对象统计信息、SQL配置文件以及设置执行环境的初始化参数。
D.查询优化器分析SQL语句并生成执行计划。
E.将执行计划传递给SQL引擎。
F.sql引擎执行SQL语句。