De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

Kennissessie instrumentatie-packages dbms_application_info logger Rob van Wijk•26 mei 2011.

Verwante presentaties


Presentatie over: "Kennissessie instrumentatie-packages dbms_application_info logger Rob van Wijk•26 mei 2011."— Transcript van de presentatie:

1 Kennissessie instrumentatie-packages dbms_application_info logger Rob van Wijk•26 mei 2011

2 Het wat en waarom van instrumentatie  Code larderen met alle informatie die je ooit nodig mocht hebben om problemen op te kunnen lossen.  Code die je aan en uit kunt zetten. Standaard aan in de ontwikkelomgeving en uit in alle andere omgevingen.  Bouw het vanaf dag 1 in, zodat je nooit meer hoeft te debuggen en zodat de kleine overhead ingebakken kosten zijn.  Het heeft een enorm korte terugverdientijd  Het moet gemakkelijk in het gebruik zijn

3 Package dbms_application_info  PROCEDURE set_module (module_name in VARCHAR2, action_name in VARCHAR2);  PROCEDURE set_action (action_name IN VARCHAR2);  PROCEDURE set_client_info (client_info IN VARCHAR2);  PROCEDURE read_module (module_name OUT VARCHAR2, action_name OUT VARCHAR2);  PROCEDURE read_client_info (client_info OUT VARCHAR2);  PROCEDURE set_session_longops ( rindexIN OUT BINARY_INTEGER, snoIN OUT BINARY_INTEGER, op_nameIN VARCHAR2, targetIN BINARY_INTEGER, contextIN BINARY_INTEGER, sofarIN NUMBER, totalworkIN NUMBER, target_descIN VARCHAR2, unitsIN VARCHAR2 );

4 Package dbms_application_info  Stelt DBA’s en anderen in staat om te kunnen zien waar sessies, SQL en gebruik van systeembronnen vandaan komt.  Module, Action en Client_Info zichtbaar in X$KSUSEX  V$SESSION en V$SQLAREA  SQL*Trace-bestanden  Monitoring-pakketten, bijvoorbeeld i3  Behoeft geen aparte installatie: DBMSAPIN.SQL wordt gedraaid als standaard onderdeel van een database installatie. ip1.sql

5 Package dbms_application_info  Ja, is leuk hoor, maar daar wordt mijn programma onnodig traag van... ip2.sql

6 dbms_application_info.set_session_longops  zet een rij in V$SESSION_LONGOPS  Voor database-operaties die langer dan 6 seconden duren  Voorbeelden: backup, uitvoeren van zoekvragen, statistieken vergaren  Belangrijke kolommen: SOFAR en TOTALWORK  Nu dus ook zelf te vullen ip3.sql

7 Logger  https://www.samplecode.oracle.com/sf/projects/logger/ https://www.samplecode.oracle.com/sf/projects/logger/  Van Tyler Muth en Christopher Beck  Ondersteunde database-versies: XE, 10.2, 11.1 en 11.2 “What is Logger? This is a PL/SQL logging and debugging framework. The goal of logger is to be as simple as possible to install and use. The primary use cases for this utility include:  Debugging: It's often difficult to track down the source of an error without some form of debugging instrumentation. This is particularly true in multi-tier, stateless architectures such as Application Express.  Error Logging: While most experts agree that it's important not to mask errors, it's also nice to have a persistent record of them.  Timing: Logger has a very simple timing framework built-in that makes it easy to benchmark sections of code.  Instrumentation: Because it's easy to "turn-off" logger globally with virtually no performance impact, it's easy to get in the habit of leaving debug calls in production code. Now, when something does go wrong, you simply flip the switch and logger is enabled making it much quicker to debug errors.”

8 Logger: de basis  Tabel LOGGER_LOGS  Drie views daar bovenop voor extra gebruikersgemak: •LOGGER_LOGS_5_MIN •LOGGER_LOGS_60_MIN •LOGGER_LOGS_TERSE  Package LOGGER met de volgende logprocedures •LOG_PERMANENT •LOG_ERROR •LOG_INFORMATION •LOG_WARNING •LOG ip4.sql

9 Logger-niveaus  Mogelijke waarden voor LOGGER_LEVEL: •OFF0 •PERMANENT1 •ERROR2 •WARNING4 •INFORMATION8 •DEBUG16 •TIMING32 •SYS_CONTEXT64 •APEX128

10 Package logger  Ok, dbms_application_info is snel, maar in productie wil je toch niet al die aanroepen van logger als ze 99,9% van de tijd toch uit staan... ip5.sql

11 Logger: instellingen  Tabel LOGGER_PREFS  8 rijen die je als systeemparameters kunt zien: PREF_NAME PREF_VALUE LEVEL DEBUG PURGE_MIN_LEVEL DEBUG PROTECT_ADMIN_PROCS TRUE LOGGER_VERSION INSTALL_SCHEMA LOGGER INCLUDE_CALL_STACK TRUE PURGE_AFTER_DAYS 7 GLOBAL_CONTEXT_NAME LOGGER_LOGCTX  Eén tabel voor alle sessies ip6.sql

12 Logger: extra’s  flashback  APEX  CGI environment  User environment variabelen  purge job  overhead: NO_OP optie

13 13 Bedankt voor jullie aandacht Voor meer informatie:


Download ppt "Kennissessie instrumentatie-packages dbms_application_info logger Rob van Wijk•26 mei 2011."

Verwante presentaties


Ads door Google