通过案例学调优之--AWRBaseLine管理
通过案例学调优之--AWR BaseLine管理 BaseLine Baseline 是指一个特定时间段内的性能数据,保留这些数据是为了在性能问题产生时与其他类似的工作负载时间段进行比较。Baseline 中包含的快照将从自动 AWR 清理进程中排除,并无限期的保留。 在 Oracle Databas
通过案例学调优之--AWR BaseLine管理
BaseLine
Baseline 是指一个特定时间段内的性能数据,保留这些数据是为了在性能问题产生时与其他类似的工作负载时间段进行比较。Baseline 中包含的快照将从自动 AWR 清理进程中排除,并无限期的保留。
在 Oracle Database 中存在多种类型的 baseline:
Fixed Baseline:fixed baseline 表示的是您指定的一个固定的、连续的时间段。在创建 fixed baseline 之前,请认真考虑您选作 baseline 的时间段,因为该 baseline 应该代表系统处于良好的性能下运行。您可以在将来将该 baseline 与在性能较差的时间段捕获的其他 baseline 或 snapshot 进行比较分析。
Moving Window Baseline:表示的是 AWR 保留期内存在的所有 AWR 数据。在使用自适应阈值时,它非常有用,因为数据库可以使用整个 AWR 保留期内的 AWR 数据来计算指标值。
Oracle Database 会自动维护系统定义的 moving window baseline。系统定义的 moving window baseline 的默认窗口大小就是当前的 AWR 保留期,即默认为 8 天。如果您打算使用自适应阈值,请考虑使用更长的移动窗口——如30天,以便精确地计算阈值。您可以重新调整 moving window baseline,将移动窗口的大小调整为小于或等于 AWR 的保留天数。因此,要增加移动窗口的大小,必须要先增加相应的 AWR 保留期限。
Baseline Template:您可以使用 baseline template 创建将来某个连续时间段的 baseline。Oracle 中有两种 baseline 模板:single 和 repeating
利用 single baseline template,您可以为将来某个单独的连续时间段创建 baseline。该技术在某些情况下非常有用。例如,如果您想捕获下周计划的系统测试期间的 AWR 数据,您可以创建一个 single baseline template 来自动捕获测试发生的时间段的统计数据。
利用 repeating baseline template ,可以根据重复的时间计划创建和删除 baseline。当您希望 Oracle Database 自动持续地捕获连续时间段的统计数据时,这非常有用。例如,您可能需要在长达一个月内捕获每周一早上的 AWR 数据。在这种情况下,您可以创建一个 repeating baseline template ,以在每周一自动创建 baseline,在指定的过期期限内自动删除过时的 baseline。
案例:
1、创建基线
Fixed Baseline:fixed baseline 表示的是您指定的一个固定的、连续的时间段。
根据snap_id创建: DBMS_WORKLOAD_REPOSITORY.CREATE_BASELINE( start_snap_id IN NUMBER, end_snap_id IN NUMBER, baseline_name IN VARCHAR2, dbid IN NUMBER DEFAULT NULL, expiration IN NUMBER DEFAULT NULL); 根据时间创建: DBMS_WORKLOAD_REPOSITORY.CREATE_BASELINE( start_time IN DATE, end_time IN DATE, baseline_name IN VARCHAR2, dbid IN NUMBER DEFAULT NULL, expiration IN NUMBER DEFAULT NULL); 查看snapshot: 14:25:31 SYS@ test1 >select snap_id,BEGIN_INTERVAL_TIME,dbid from dba_hist_snapshot; SNAP_ID BEGIN_INTERVAL_TIME DBID ---------- --------------------------------------------------------------------------- ---------- 435 04-NOV-14 11.00.52.880 AM 1195893416 436 04-NOV-14 12.00.07.338 PM 1195893416 437 04-NOV-14 01.00.22.331 PM 1195893416 432 04-NOV-14 12.00.04.575 AM 1195893416 434 04-NOV-14 09.52.45.512 AM 1195893416 428 31-OCT-14 02.58.47.186 PM 1195893416 429 31-OCT-14 04.00.51.633 PM 1195893416 430 03-NOV-14 10.19.24.000 AM 1195893416 433 04-NOV-14 09.41.40.000 AM 1195893416 426 31-OCT-14 11.25.58.000 AM 1195893416 427 31-OCT-14 02.47.40.000 PM 1195893416 431 03-NOV-14 10.30.31.348 AM 1195893416 12 rows selected. 创建Baseline: 14:27:46 SYS@ test1 >exec DBMS_WORKLOAD_REPOSITORY.CREATE_BASELINE(start_snap_id=>435,end_snap_id=>436,baseline_name=>'work_bs1',dbid=>1195893416,expiration=>30); PL/SQL procedure successfully completed. --435 是起始的 snapshot 序列号,436 是结束 snapshot 序列号。expiration => 30 表示该 baseline 将在30天后自动删除,expiration =>null表示,永不过期 --创建 baseline 时,系统会自动分配一个唯一的 baseline ID 给新建的 baseline。可以通过 DBA_HIST_BASELINE 视图查看。 查看Baseline: 14:31:10 SYS@ test1 >col baseline_name for a40 14:31:30 SYS@ test1 >select dbid,baseline_id,baseline_name,EXPIRATION,CREATION_TIME from dba_hist_baseline DBID BASELINE_ID BASELINE_NAME EXPIRATION CREATION_TIME ---------- ----------- ---------------------------------------- ---------- ------------------- 1195893416 1 work_bs1 30 2014-11-04 14:29:08 1195893416 0 SYSTEM_MOVING_WINDOW 2013-06-23 12:43:59 重命名Baseline: 14:31:30 SYS@ test1 >exec DBMS_WORKLOAD_REPOSITORY.RENAME_BASELINE (old_baseline_name => 'work_bs1', new_baseline_name => 'work_bl1', dbid => 1195893416); PL/SQL procedure successfully completed. 14:35:46 SYS@ test1 >select dbid,baseline_id,baseline_name,EXPIRATION,CREATION_TIME from dba_hist_baseline; DBID BASELINE_ID BASELINE_NAME EXPIRATION CREATION_TIME ---------- ----------- ---------------------------------------- ---------- ------------------- 1195893416 1 work_bl1 30 2014-11-04 14:29:08 1195893416 0 SYSTEM_MOVING_WINDOW 2013-06-23 12:43:59 删除Baseline: 14:35:54 SYS@ test1 >exec DBMS_WORKLOAD_REPOSITORY.DROP_BASELINE (baseline_name => 'work_bl1',cascade => FALSE, dbid => 1195893416); PL/SQL procedure successfully completed. 14:38:24 SYS@ test1 >select dbid,baseline_id,baseline_name,EXPIRATION,CREATION_TIME from dba_hist_baseline; DBID BASELINE_ID BASELINE_NAME EXPIRATION CREATION_TIME ---------- ----------- ---------------------------------------- ---------- ------------------- 1195893416 0 SYSTEM_MOVING_WINDOW 2013-06-23 12:43:59 --cascade 参数设置为 FALSE,指定只删除。将此参数设置为 TRUE 指定删除与该 baseline 相关联的所有快照。
移动窗口(Moving Window)基线
Oracle 11g引入了移动窗口(Moving Window)基线的概念,用于计算阀值的度量,窗口(window)是AWR数据在保存期限内的一个视图,窗口大小与AWR默认的保留期限8天匹配,但它可以设置为这个值的子集,在增大窗口大小前,首先要增大AWR保留期限的大小。
查询DBA_HOST_WR_CONTROL视图的RETENTION列,可以返回当前的AWR保留期限。
14:45:42 SYS@ test1 >SELECT retention FROM dba_hist_wr_control; RETENTION --------------------------------------------------------------------------- +00008 00:00:00.0
使用存储过程MODIFY_SNAPSHOT_SETTINGS可以修改保留期限,指定RETENTION参数,单位分钟。
14:48:12 SYS@ test1 >exec DBMS_WORKLOAD_REPOSITORY.modify_snapshot_settings(retention=>43200); --Minutes(=30 Days) PL/SQL procedure successfully completed. 14:48:33 SYS@ test1 >SELECT retention FROM dba_hist_wr_control; RETENTION --------------------------------------------------------------------------- +00030 00:00:00.0
查询DBA_HIST_BASELINE视图可以返回当前的移动窗口大小。
14:48:44 SYS@ test1 >SELECT moving_window_size 14:50:30 2 FROM dba_hist_baseline 14:50:30 3 WHERE baseline_type = 'MOVING_WINDOW'; MOVING_WINDOW_SIZE ------------------ 8
使用存储过程MODIFY_BASELINE_WINDOW_SIZE可以修改移动窗口基线,它接受WINDOW_SIZE参数,单位为天。
14:50:45 SYS@ test1 >exec DBMS_WORKLOAD_REPOSITORY.modify_baseline_window_size(window_size =>30); PL/SQL procedure successfully completed. 14:53:25 SYS@ test1 >SELECT moving_window_size FROM dba_hist_baseline WHERE baseline_type = 'MOVING_WINDOW'; MOVING_WINDOW_SIZE ------------------ 30 Oracle建议在使用适当的阀值时,窗口大小应大于或等于30天。(应该小于或等于snapshot的retention)
基线模板
基线模板允许你定义可能在将来要捕获的基线,CREATE_BASELINE_TEMPLATE存储过程定义单一基线或重复基线的捕获,创建单一基线模板与创建基于时间的基线类似,除了将来的时间外。
15:02:44 SYS@ test1 >exec DBMS_WORKLOAD_REPOSITORY.create_baseline_template( start_time=>TO_DATE('09-NOV-2014 00:00', 'DD-MON-YYYY HH24:MI'), end_time=>TO_DATE('12-NOV-2014 05:00', 'DD-MON-YYYY HH24:MI'), baseline_name =>'09_11_14_BS1', template_name =>'09_11_14_TP1', expiration=> 10 ); PL/SQL procedure successfully completed. 15:05:19 SYS@ test1 >col REPEAT_INTERVAL for a10 15:05:34 SYS@ test1 >select DBID,TEMPLATE_ID,TEMPLATE_NAME,TEMPLATE_TYPE,DURATION,EXPIRATION,REPEAT_INTERVAL from dba_hist_baseline_template DBID TEMPLATE_ID TEMPLATE_NAME TEMPLATE_ DURATION EXPIRATION REPEAT_INT ---------- ----------- ------------------------------ --------- ---------- ---------- ---------- 1195893416 1 09_11_14_TP1 SINGLE 10
重复基线模板稍微有点不同,因为它需要调度信息,START_TIME和END_TIME参数分别在模板激活和释放时定义,DAY_OF_WEEK,HOUR_IN_DAY和DURATION定义产生基线的日期,时间和持续时间,因为模板会产生多个基线,基线名是以BASELINE_NAME_PREFIX开始的,下面的基线模板例子将在未来6个月内运行,每周星期一00:00至05:00收集基线。
15:05:35 SYS@ test1 >exec DBMS_WORKLOAD_REPOSITORY.create_baseline_template( day_of_week=>'MONDAY', hour_in_day=>0,duration=>5, start_time=>SYSDATE, end_time=>ADD_MONTHS(SYSDATE, 6), baseline_name_prefix =>'monday_morning_bl', template_name=>'monday_morning_tp', expiration=> NULL ); PL/SQL procedure successfully completed. 15:09:20 SYS@ test1 > select DBID,TEMPLATE_ID,TEMPLATE_NAME,TEMPLATE_TYPE,DURATION,EXPIRATION,REPEAT_INTERVAL from dba_hist_baseline_template; DBID TEMPLATE_ID TEMPLATE_NAME TEMPLATE_ DURATION EXPIRATION REPEAT_INT ---------- ----------- ------------------------------ --------- ---------- ---------- ---------- 1195893416 1 09_11_14_TP1 SINGLE 10 1195893416 2 monday_morning_tp REPEATING 5 FREQ=WEEKL Y;INTERVAL =1;BYDAY=M ON;BYHOUR= 0;BYMINUTE =0;BYSECON D=0 15:12:14 SYS@ test1 >col BASELINE_NAME_PREFIX for a20 15:12:33 SYS@ test1 >r 1 SELECT template_name, 2 template_type, 3 baseline_name_prefix, 4 start_time, 5 end_time, 6 day_of_week, 7 hour_in_day, 8 duration, 9 expiration 10* FROM dba_hist_baseline_template TEMPLATE_NAME TEMPLATE_ BASELINE_NAME_PREFIX START_TIME END_TIME DAY_OF_WE HOUR_IN_DAY -------------------- --------- -------------------- ------------------- ------------------- --------- ----------- DURATION EXPIRATION ---------- ---------- 09_11_14_TP1 SINGLE 09_11_14_BS1 2014-11-09 00:00:00 2014-11-12 05:00:00 10 monday_morning_tp REPEATING monday_morning_bl 2014-11-04 15:09:20 2015-05-04 15:09:20 MONDAY 0 5 注意BASELINE_NAME_PREFIX列可能保留了基线前缀或完整的基线名,主要依赖于捕获基线的类型.
DROP_BASELINE_TEMPLATE存储过程删除基线模板
15:17:46 SYS@ test1 >exec DBMS_WORKLOAD_REPOSITORY.drop_baseline_template (template_name =>'09_11_14_TP1'); PL/SQL procedure successfully completed. 15:18:26 SYS@ test1 >exec DBMS_WORKLOAD_REPOSITORY.drop_baseline_template (template_name => 'monday_morning_tp'); PL/SQL procedure successfully completed. 15:18:52 SYS@ test1 >select DBID,TEMPLATE_ID,TEMPLATE_NAME,TEMPLATE_TYPE,DURATION,EXPIRATION,REPEAT_INTERVAL from dba_hist_baseline_template; no rows selected
基线视图
DBA_HIST_BASELINE:显示有关系统中所获取的基线的信息。对于每个基线,该视图显示完整的时间范围,以及该基线是否为默认基线。其它信息包括创建日期、上一次统计信息计算的时间和基线类型。
DBA_HIST_BASELINE_DETAILS:显示可用来确定给定基线有效性的信息,如基线时段期间是否存在关闭操作及基线时段中由快照数据覆盖的百分比。
DBA_HIST_BASELINE_TEMPLATE:保存了基线模板。该视图提供了 MMON 所需的信息,用以确定何时根据模板创建基线,以及何时应删除基线。
DBA_HIST_BASELINE_METADATA:显示基线的元数据信息,包括名称、类型、创建时间、模板和失效时间。
如果要在过去的某个时段创建基线,则使用 CREATE_BASELINE 过程;如果时段有任何部分处于未来,则使用CREATE_BASELINE_TEMPLATE 过程。

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

So verwenden Sie Redis zur Implementierung eines verteilten Transaktionsmanagements Einführung: Mit der rasanten Entwicklung des Internets wird die Verwendung verteilter Systeme immer weiter verbreitet. In verteilten Systemen ist das Transaktionsmanagement eine wichtige Herausforderung. Herkömmliche Methoden des Transaktionsmanagements lassen sich in verteilten Systemen nur schwer implementieren und sind ineffizient. Mithilfe der Eigenschaften von Redis können wir problemlos ein verteiltes Transaktionsmanagement implementieren und die Leistung und Zuverlässigkeit des Systems verbessern. 1. Einführung in Redis Redis ist ein speicherbasiertes Datenspeichersystem mit effizienter Lese- und Schreibleistung und umfangreichen Daten.

Wie implementiert man die Leistungsmanagementfunktion für Schüler in Java? Im modernen Bildungssystem ist das Leistungsmanagement der Studierenden eine sehr wichtige Aufgabe. Durch die Verwaltung der Schülerleistungen können Schulen den Lernfortschritt der Schüler besser überwachen, ihre Schwächen und Stärken verstehen und auf der Grundlage dieser Informationen gezieltere Unterrichtspläne erstellen. In diesem Artikel besprechen wir, wie man die Programmiersprache Java verwendet, um Funktionen zur Leistungsverwaltung von Schülern zu implementieren. Zunächst müssen wir die Datenstruktur der Schülernoten bestimmen. Typischerweise können die Noten der Schüler als dargestellt werden

Verwaltung von Laravel-Erweiterungspaketen: Einfache Integration von Code und Funktionen von Drittanbietern. Einführung: Bei der Laravel-Entwicklung verwenden wir häufig Code und Funktionen von Drittanbietern, um die Effizienz und Stabilität des Projekts zu verbessern. Das Laravel-Erweiterungspaketverwaltungssystem ermöglicht uns die einfache Integration dieser Codes und Funktionen von Drittanbietern, wodurch unsere Entwicklungsarbeit komfortabler und effizienter wird. In diesem Artikel werden die grundlegenden Konzepte und die Verwendung der Laravel-Erweiterungspaketverwaltung vorgestellt und einige praktische Codebeispiele verwendet, um den Lesern zu helfen, sie besser zu verstehen und anzuwenden. Was ist Lara?

Wie richte ich Netzwerkserver auf dem Kirin-Betriebssystem ein und verwalte sie? Das Kirin-Betriebssystem ist ein Linux-basiertes Betriebssystem, das unabhängig in China entwickelt wurde. Es zeichnet sich durch Open Source, Sicherheit und Stabilität aus und ist in China weit verbreitet. In diesem Artikel wird erläutert, wie Netzwerkserver auf dem Kirin-Betriebssystem eingerichtet und verwaltet werden, um den Lesern dabei zu helfen, ihre eigenen Netzwerkserver besser aufzubauen und zu verwalten. 1. Zugehörige Software installieren Bevor wir mit der Einrichtung und Verwaltung des Netzwerkservers beginnen, müssen wir einige notwendige Software installieren. Unter Kirin OS ist das möglich

Wenn wir das Win10-System verwenden und mit der Maus auf den Desktop oder das Rechtsklick-Menü klicken, stellen wir fest, dass das Menü nicht geöffnet werden kann und wir den Computer nicht normal verwenden können. Zu diesem Zeitpunkt müssen wir das wiederherstellen System zur Lösung des Problems. Die Win10-Rechtsklick-Menüverwaltung kann nicht geöffnet werden: 1. Öffnen Sie zuerst unsere Systemsteuerung und klicken Sie dann auf. 2. Klicken Sie dann unter Sicherheit und Wartung auf. 3. Klicken Sie rechts, um das System wiederherzustellen. 4. Wenn die Maus immer noch nicht verwendet werden kann, prüfen Sie, ob mit der Maus selbst ein Fehler vorliegt. 5. Wenn Sie sicher sind, dass kein Problem mit der Maus vorliegt, drücken Sie + und geben Sie ein. 6. Nachdem die Ausführung abgeschlossen ist, starten Sie den Computer neu.

Wie verwalte und bereinige ich den Festplattenspeicher im Kirin-Betriebssystem? Das Kirin-Betriebssystem ist ein Linux-basiertes Betriebssystem. Im Vergleich zu anderen Betriebssystemen bietet Kirin mehr Freiheit und Anpassbarkeit. Bei längerer Nutzung stoßen wir häufig auf das Problem, dass nicht genügend Festplattenspeicher vorhanden ist. Zu diesem Zeitpunkt müssen wir den Festplattenspeicher verwalten und bereinigen. In diesem Artikel erfahren Sie, wie Sie den Festplattenspeicher im Kirin-Betriebssystem verwalten und bereinigen, einschließlich der Überprüfung der Festplattenspeichernutzung, dem Löschen unnötiger Dateien und der Verwendung von Festplattenbereinigungstools. Erste,

So verwenden Sie das Hyperf-Framework für die Cache-Verwaltung. Cache ist eines der wichtigen Mittel zur Verbesserung der Anwendungsleistung, und moderne Frameworks bieten uns bequemere Tools für die Cache-Verwaltung. In diesem Artikel wird die Verwendung des Hyperf-Frameworks für die Cache-Verwaltung vorgestellt und spezifische Codebeispiele bereitgestellt. Das Hyperf-Framework ist ein auf Swoole basierendes Hochleistungs-Framework. Es verfügt über eine Vielzahl integrierter Komponenten und Tools, einschließlich leistungsstarker Cache-Verwaltungsfunktionen. Das Hyperf-Framework unterstützt mehrere Cache-Treiber wie Redis und Memcach.

Pipenv-Tutorial: Erstellen und verwalten Sie virtuelle Umgebungen. Es sind spezifische Codebeispiele erforderlich. Einführung: Mit der Popularität von Python nimmt auch die Anzahl der Projektentwicklungen zu. Um die in Projekten verwendeten Python-Pakete effektiv zu verwalten, sind virtuelle Umgebungen zu einem unverzichtbaren Werkzeug geworden. In diesem Artikel behandeln wir die Verwendung von Pipenv zum Erstellen und Verwalten virtueller Umgebungen und stellen praktische Codebeispiele bereit. Was ist Pipenv? Pipenv ist ein von der Python-Community weit verbreitetes Verwaltungstool für virtuelle Umgebungen. Es integriert p
