|
在Oracle 11g,SMB是SPM的控制端,SMB是数据字典的一部分,SMB存储在sysaux表空间,SMB存储SQL语句日志,Plan Histories,以及SQL Profiles等,SMB允许每周清除一次未使用的SQL Plan & Log,SMB已经配置了自动存储空间管理。 1 Disk Space Usage SMB默认可以使用sysaux表空间的10%,SMB被允许使用sysaux的存储范围是1%-50%,每周有后台进程来测量SMB使用sysaux的空间,如果SMB超过了允许的范围,就会在al*.log中写入一条警告,可以通过dbms_spm的configure过程设置SMB允许使用存储空间的范围。 BEGIN DBMS_SPM.CONFIGURE('space_budget_percent', 30); END; / 2 Purging Policy 也可以通过dbms_spm的configure过程设置SMB清除策略: BEGIN DBMS_SPM.CONFIGURE('plan_retention_weeks', 105); END; / 3 SMB Configuration Parameters 可以通过DBA_SQL_MANAGEMENT_CONFIG视图来查看配置参数 select parameter_name, parameter_value from dba_sql_management_config; 4 创建stage表 BEGIN DBMS_SPM.CREATE_STGTAB_BASELINE(table_name => 'stage1'); END; / 5 打包需要导出的数据 DECLARE my_plans number; BEGIN my_plans := DBMS_SPM.PACK_STGTAB_BASELINE( table_name => 'stage1', enabled => 'yes', creator => 'dba1'); END; / 6 用exp或expdp导出stage表。 7 用imp或impdb导入stage表 8 把导出的SQL Plan Baselines导入字典中 DECLARE my_plans number; BEGIN my_plans := DBMS_SPM.UNPACK_STGTAB_BASELINE( table_name => 'stage1', fixed => 'yes'); END; /
|