自动工作量仓库是从Oracle 10g开始引入的,不过只包括了一些简单的基线功能,创建一个基线允许保留指定范围内的快照用于性能对比,与AWR保留策略无关,可以使用DBMS_WORKLOAD_REPOSITORY包来管理这个功能,在11g中,它被增强了。
注意,DBMS_WORKLOAD_REPOSITORY包中的大部分存储过程和函数接受DBID参数,该参数是本地数据库的默认标识符,由于这个原因,下面的例子中将会省略掉该参数。
固定基线
相对Oracle 10g而言,11g中的固定或静态基线功能更丰富,最初,在Oracle 10g中,DBMS_WORKLOAD_REPOSITORY包中只提供了一个create_BASELINE存储过程允许你使用特定的快照ID来定义基线,在Oracle 11g中,包括了更多的用于创建基线存储过程和函数,它们使用开始时间和截至时间进行基线创建,这样有助于计算出有关的快照ID,函数与存储过程的参数一样,但返回的是基线的ID,默认基线永远保存,但新的有效期参数expiration允许指定在某一日期后那些基线将自动失效。
SET SERVEROUTPUT ON DECLARE l_return NUMBER; BEGIN — Using procedures. DBMS_WORKLOAD_REPOSITORY.create_baseline( start_snap_id => 2490,【快照开始ID】 end_snap_id => 2491,【快照截至ID】 baseline_name => ’test1_bl’, expiration => 60);【60天后失效】 DBMS_WORKLOAD_REPOSITORY.create_baseline( start_time => TO_DATE(’09-JUL-2008 17:00’, ’DD-MON-YYYY HH24:MI’),【开始时间】 end_time => TO_DATE(’09-JUL-2008 18:00’, ’DD-MON-YYYY HH24:MI’),【截至时间】 baseline_name => ’test2_bl’, expiration => NULL);【永远都不失效】 — Using functions. l_return := DBMS_WORKLOAD_REPOSITORY.create_baseline( start_snap_id => 2492, end_snap_id => 2493, baseline_name => ’test3_bl’, expiration => 30); DBMS_OUTPUT.put_line(’Return: ’ || l_return); l_return := DBMS_WORKLOAD_REPOSITORY.create_baseline( start_time => TO_DATE(’09-JUL-2008 19:00’, ’DD-MON-YYYY HH24:MI’), end_time => TO_DATE(’09-JUL-2008 20:00’, ’DD-MON-YYYY HH24:MI’), baseline_name => ’test4_bl’, expiration => NULL); DBMS_OUTPUT.put_line(’Return: ’ || l_return); END; / Return: 8 Return: 9 PL/SQL procedure successfully completed. SQL> |
新的基线在DBA_HIST_BASELINE视图中可见。
COLUMN baseline_name FORMAT A15 select baseline_id, baseline_name, START_SNAP_ID, TO_char(start_snap_time, ’DD-MON-YYYY HH24:MI’) AS start_snap_time, END_SNAP_ID, TO_char(end_snap_time, ’DD-MON-YYYY HH24:MI’) AS end_snap_time FROM dba_hist_baseline where baseline_type = ’STATIC’ ORDER BY baseline_id; BASELINE_ID BASELINE_NAME START_SNAP_ID START_SNAP_TIME END_SNAP_ID END_SNAP_TIME ———– ————— ————- —————– ———– —————– 6 test1_bl 2490 09-JUL-2008 17:00 2491 09-JUL-2008 18:00 7 test2_bl 2490 09-JUL-2008 17:00 2491 09-JUL-2008 18:00 8 test3_bl 2492 09-JUL-2008 19:00 2493 09-JUL-2008 20:00 9 test4_bl 2492 09-JUL-2008 19:00 2493 09-JUL-2008 20:00 4 rows selected. SQL> |
使用管道表函数select_BASELINE_DETAILS,指定BASELINE_ID参数,可以返回某个特定基线的信息,也可以使用管道表函数select_BASELINE_METRIC,指定BASELINE_NAM参数,返回同样的结果。
select * FROM TABLE(DBMS_WORKLOAD_REPOSITORY.select_baseline_details(6)); select * FROM TABLE(DBMS_WORKLOAD_REPOSITORY.select_baseline_metric(’SYSTEM_MOVING_WINDOW’)); |
基线可以使用存储过程rename_BASELINE进行重命名。
BEGIN DBMS_WORKLOAD_REPOSITORY.rename_baseline( old_baseline_name => ’test4_bl’, new_baseline_name => ’test5_bl’); END; / |
使用存储过程drop_BASELINE可以删除基线。
BEGIN DBMS_WORKLOAD_REPOSITORY.drop_baseline(baseline_name => ’test1_bl’); DBMS_WORKLOAD_REPOSITORY.drop_baseline(baseline_name => ’test2_bl’); DBMS_WORKLOAD_REPOSITORY.drop_baseline(baseline_name => ’test3_bl’); DBMS_WORKLOAD_REPOSITORY.drop_baseline(baseline_name => ’test5_bl’); END; / |
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
翻译
相关推荐
-
DBA在使用SQL语句时需要注意的问题
Michael McLaughlin是Oracle 11g和MySQL 5.6开发者指南的作者,他在书中为Oracle数据库开发者提供了一些建议与帮助。
-
Oracle数据库不同版本的硬件需求
每个企业的IT环境都是不同的,这些环境中可能会包含虚拟服务器、各种网络操作系统、基于云计算的服务、SAN等等,根据应用场景选择硬件是基本的准则。
-
Oracle 11g SQL性能分析器技术指南
当今信息时代要求企业的IT系统能够始终保证系统的性能并且提供更高的服务质量,我们的IT系统经常要面对应用程序升级、硬件更新、数据库升级、对象结构变更等导致SQL性能下降的问题。
-
Oracle 11g SecureFile技术详解手册
SecureFile不仅是新一代 LOB,它们还为 LOB 带来了更多的价值,尤其是以前只能在文件系统领域中获得的特性。