An additional data feed program was added to a nightly batch processing job queue, causing the overnight processing to no longer finish before the morning deadline. More CPUs were added to the database server but did not significantly improve processing speed. To troubleshoot, wait event statistics were captured before and after a 30 second period during batch processing. This revealed that processes spent significant time waiting for redo logs to be written, indicating redo log buffer space as a potential bottleneck.
Oracle Database 19c, builds upon key architectural, distributed data and performance innovations established in earlier versions Oracle Database 12c and 18c releases. Oracle 19c has many new features, in this presentation we have covered below areas
Automated Installation, Configuration and Patching
AutoUpgrade and Database Utilities
What to Expect From Oracle database 19cMaria Colgan
The Oracle Database has recently switched to an annual release model. Oracle Database 19c is only the second release in this new model. So what can you expect from the latest version of the Oracle Database? This presentation explains how Oracle Database 19c is really 12.2.0.3 the terminal release of the 12.2 family and the new features you can find in this release.
This version of "Oracle Real Application Clusters (RAC) 19c & Later – Best Practices" was first presented in Oracle Open World (OOW) London 2020 and includes content from the OOW 2019 version of the deck. The deck has been updated with the latest information regarding ORAchk as well as upgrade tips & tricks.
Oracle MAA (Maximum Availability Architecture) 18c - An OverviewMarkus Michalewicz
Providing the highest levels of availability is the main goal of Oracle’s Maximum Availability Architecture (MAA), which has been available for more than a decade. This session looks at Oracle MAA from a slightly different angle, as MAA should really be considered by the Oracle DBA as well as by developers and even by non-Oracle customers. First presented in Sangam18.
Session aims at introducing less familiar audience to the Oracle database statistics concept, why statistics are necessary and how the Oracle Cost-Based Optimizer uses them
Oracle Database 19c, builds upon key architectural, distributed data and performance innovations established in earlier versions Oracle Database 12c and 18c releases. Oracle 19c has many new features, in this presentation we have covered below areas
Automated Installation, Configuration and Patching
AutoUpgrade and Database Utilities
What to Expect From Oracle database 19cMaria Colgan
The Oracle Database has recently switched to an annual release model. Oracle Database 19c is only the second release in this new model. So what can you expect from the latest version of the Oracle Database? This presentation explains how Oracle Database 19c is really 12.2.0.3 the terminal release of the 12.2 family and the new features you can find in this release.
This version of "Oracle Real Application Clusters (RAC) 19c & Later – Best Practices" was first presented in Oracle Open World (OOW) London 2020 and includes content from the OOW 2019 version of the deck. The deck has been updated with the latest information regarding ORAchk as well as upgrade tips & tricks.
Oracle MAA (Maximum Availability Architecture) 18c - An OverviewMarkus Michalewicz
Providing the highest levels of availability is the main goal of Oracle’s Maximum Availability Architecture (MAA), which has been available for more than a decade. This session looks at Oracle MAA from a slightly different angle, as MAA should really be considered by the Oracle DBA as well as by developers and even by non-Oracle customers. First presented in Sangam18.
Session aims at introducing less familiar audience to the Oracle database statistics concept, why statistics are necessary and how the Oracle Cost-Based Optimizer uses them
Oracle Real Application Clusters 19c- Best Practices and Internals- EMEA Tour...Sandesh Rao
In this session, I will cover under-the-hood features that power Oracle Real Application Clusters (Oracle RAC) 19c specifically around Cache Fusion and Service management. Improvements in Oracle RAC helps in integration with features such as Multitenant and Data Guard. In fact, these features benefit immensely when used with Oracle RAC. Finally we will talk about changes to the broader Oracle RAC Family of Products stack and the algorithmic changes that helps quickly detect sick/dead nodes/instances and the reconfiguration improvements to ensure that the Oracle RAC Databases continue to function without any disruption
Standard Edition High Availability (SEHA) - The Why, What & HowMarkus Michalewicz
Standard Edition High Availability (SEHA) is the latest addition to Oracle’s high availability solutions. This presentation explains the motivation for Standard Edition High Availability, how it is implemented and the way it works currently as well as what is planned for future improvements. It was first presented during Oracle Groundbreakers Yatra (OGYatra) Online in July 2020.
Oracle Open World (OOW) 2014 presentation on Oracle Cache Fusion; how it works and how to use it in an optimized fashion to scale an Oracle RAC system.
Any DBA from beginner to advanced level, who wants to fill in some gaps in his/her knowledge about Performance Tuning on an Oracle Database, will benefit from this workshop.
Oracle Database performance tuning using oratopSandesh Rao
Oratop is a text-based user interface tool for monitoring basic database operations in real-time. This presentation will go into depth on how to use the tool and some example scenarios. It can be used for both RAC and single-instance databases and in combination with top to get a more holistic view of system performance and identify any bottlenecks.
This is the presentation on ASH that I did with Graham Wood at RMOUG 2014 and that represents the final best effort to capture essential and advanced ASH content as started in a presentation Uri Shaft and I gave at a small conference in Denmark sometime in 2012 perhaps. The presentation is also available publicly through the RMOUG website, so I felt at liberty to post it myself here. If it disappears it would likely be because I have been asked to remove it by Oracle.
Oracle Data Guard ensures high availability, disaster recovery and data protection for enterprise data. This enable production Oracle databases to survive disasters and data corruptions. Oracle 18c and 19c offers many new features it will bring many advantages to organization.
Introduction to Real Application Cluster
RAC - Savior of DBA
Oracle Clusterware (Platform on Platform)
RAC Startup sequence
RAC Architecture
RAC Components
Single Instance on RAC
Node Eviction
Important Log directories in RAC.
Tips to monitor and improve the RAC environment.
Smart monitoring how does oracle rac manage resource, state ukoug19Anil Nair
An important requirement for HA and to provide scalability is to detect problems and resolve them quickly before the user sessions get affected. Oracle RAC along with its Family of Solutions work together cohesively to detect conditions such as "Un-responsive Instances", Network issues quickly and resolve them by either redirecting the work to other instances or redundant network paths
Oracle Database Performance Tuning Advanced Features and Best Practices for DBAsZohar Elkayam
Oracle Week 2017 slides.
Agenda:
Basics: How and What To Tune?
Using the Automatic Workload Repository (AWR)
Using AWR-Based Tools: ASH, ADDM
Real-Time Database Operation Monitoring (12c)
Identifying Problem SQL Statements
Using SQL Performance Analyzer
Tuning Memory (SGA and PGA)
Parallel Execution and Compression
Oracle Database 12c Performance New Features
Analysis of Database Issues using AHF and Machine Learning v2 - AOUG2022Sandesh Rao
Oracle Autonomous Health Framework (AHF) is Oracle’s Artificial Intelligence Operations platform for autonomous database health management. This session will focus on enhancements to current functionality and new features in 21c. We will discuss how to use the data which is derived from the Bayesian Net framework of AHF to conduct root cause analysis, telemetry and remediations for issues. You will learn to utilize these features to determine workload footprint, ongoing monitoring, early detection of anomalies and performance issues, their root causes and corrective actions, prevention of node or database failures, and targeted postmortem analysis enabling quick resolution.
Session Highlights:
• Insights into AHF enhancements to current functionality and new features in 21c
• Learn early detection of anomalies and performance issues, their root causes and corrective actions
• Targeted postmortem analysis enabling quick resolution
Oracle RAC is an option to the Oracle Database Enterprise Edition. At least, this is what it is known for. This presentation shows the many ways in which the stack, which is known as Oracle RAC can be used in the most efficient way for various use cases.
Oracle Real Application Clusters 19c- Best Practices and Internals- EMEA Tour...Sandesh Rao
In this session, I will cover under-the-hood features that power Oracle Real Application Clusters (Oracle RAC) 19c specifically around Cache Fusion and Service management. Improvements in Oracle RAC helps in integration with features such as Multitenant and Data Guard. In fact, these features benefit immensely when used with Oracle RAC. Finally we will talk about changes to the broader Oracle RAC Family of Products stack and the algorithmic changes that helps quickly detect sick/dead nodes/instances and the reconfiguration improvements to ensure that the Oracle RAC Databases continue to function without any disruption
Standard Edition High Availability (SEHA) - The Why, What & HowMarkus Michalewicz
Standard Edition High Availability (SEHA) is the latest addition to Oracle’s high availability solutions. This presentation explains the motivation for Standard Edition High Availability, how it is implemented and the way it works currently as well as what is planned for future improvements. It was first presented during Oracle Groundbreakers Yatra (OGYatra) Online in July 2020.
Oracle Open World (OOW) 2014 presentation on Oracle Cache Fusion; how it works and how to use it in an optimized fashion to scale an Oracle RAC system.
Any DBA from beginner to advanced level, who wants to fill in some gaps in his/her knowledge about Performance Tuning on an Oracle Database, will benefit from this workshop.
Oracle Database performance tuning using oratopSandesh Rao
Oratop is a text-based user interface tool for monitoring basic database operations in real-time. This presentation will go into depth on how to use the tool and some example scenarios. It can be used for both RAC and single-instance databases and in combination with top to get a more holistic view of system performance and identify any bottlenecks.
This is the presentation on ASH that I did with Graham Wood at RMOUG 2014 and that represents the final best effort to capture essential and advanced ASH content as started in a presentation Uri Shaft and I gave at a small conference in Denmark sometime in 2012 perhaps. The presentation is also available publicly through the RMOUG website, so I felt at liberty to post it myself here. If it disappears it would likely be because I have been asked to remove it by Oracle.
Oracle Data Guard ensures high availability, disaster recovery and data protection for enterprise data. This enable production Oracle databases to survive disasters and data corruptions. Oracle 18c and 19c offers many new features it will bring many advantages to organization.
Introduction to Real Application Cluster
RAC - Savior of DBA
Oracle Clusterware (Platform on Platform)
RAC Startup sequence
RAC Architecture
RAC Components
Single Instance on RAC
Node Eviction
Important Log directories in RAC.
Tips to monitor and improve the RAC environment.
Smart monitoring how does oracle rac manage resource, state ukoug19Anil Nair
An important requirement for HA and to provide scalability is to detect problems and resolve them quickly before the user sessions get affected. Oracle RAC along with its Family of Solutions work together cohesively to detect conditions such as "Un-responsive Instances", Network issues quickly and resolve them by either redirecting the work to other instances or redundant network paths
Oracle Database Performance Tuning Advanced Features and Best Practices for DBAsZohar Elkayam
Oracle Week 2017 slides.
Agenda:
Basics: How and What To Tune?
Using the Automatic Workload Repository (AWR)
Using AWR-Based Tools: ASH, ADDM
Real-Time Database Operation Monitoring (12c)
Identifying Problem SQL Statements
Using SQL Performance Analyzer
Tuning Memory (SGA and PGA)
Parallel Execution and Compression
Oracle Database 12c Performance New Features
Analysis of Database Issues using AHF and Machine Learning v2 - AOUG2022Sandesh Rao
Oracle Autonomous Health Framework (AHF) is Oracle’s Artificial Intelligence Operations platform for autonomous database health management. This session will focus on enhancements to current functionality and new features in 21c. We will discuss how to use the data which is derived from the Bayesian Net framework of AHF to conduct root cause analysis, telemetry and remediations for issues. You will learn to utilize these features to determine workload footprint, ongoing monitoring, early detection of anomalies and performance issues, their root causes and corrective actions, prevention of node or database failures, and targeted postmortem analysis enabling quick resolution.
Session Highlights:
• Insights into AHF enhancements to current functionality and new features in 21c
• Learn early detection of anomalies and performance issues, their root causes and corrective actions
• Targeted postmortem analysis enabling quick resolution
Oracle RAC is an option to the Oracle Database Enterprise Edition. At least, this is what it is known for. This presentation shows the many ways in which the stack, which is known as Oracle RAC can be used in the most efficient way for various use cases.
Your tuning arsenal: AWR, ADDM, ASH, Metrics and AdvisorsJohn Kanagaraj
Oracle Database 10g brought in a slew of tuning and performance related tools and indeed a new way of dealing with performance issues. Even though 10g has been around for a while, many DBAs haven’t really used many of the new features, mostly because they are not well known or understood. In this Expert session, we will look past the slick demos of the new tuning and performance related tools and go “under the hood”. Using this knowledge, we will bypass the GUI and look at the views and counters that matter and quickly understand what they are saying. Tools covered include AWR, ADDM, ASH, Metrics, Tuning Advisors and their related views. Much of information about Oracle Database 10g presented in this paper has been adapted from my book and I acknowledge that with gratitude to my publisher - SAMS (Pearson).
To view recording of this webinar please use below URL
http://wso2.com/library/webinars/2015/11/wso2-product-release-webinar-wso2-complex-event-processor-4.0/
In this webinar, Lasantha and Suho will discuss the following key features and improvements in detail:
Integrating WSO2 CEP with Apache Storm to achieve distributed real-time stream processing
Key features of the latest version of Siddhi
New transports that enhances integration capabilities of WSO2 CEP
Creating query templates using execution manager
Using the analytics dashboard to visualize results in real-time
Ajuste (tuning) del rendimiento de SQL Server 2008Eduardo Castro
En el siguiente webcast http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032438450&Culture=es-AR analizamos las herramientas de desempeño de SQL Server 2008 y cómo utilizarlas.
Saludos,
Ing. Eduardo Castro Martínez, PhD – Microsoft SQL Server MVP
http://mswindowscr.org
http://comunidadwindows.org
Costa Rica
Technorati Tags: SQL Server
LiveJournal Tags: SQL Server
del.icio.us Tags: SQL Server
http://ecastrom.blogspot.com
http://ecastrom.wordpress.com
http://ecastrom.spaces.live.com
http://universosql.blogspot.com
http://todosobresql.blogspot.com
http://todosobresqlserver.wordpress.com
http://mswindowscr.org/blogs/sql/default.aspx
http://citicr.org/blogs/noticias/default.aspx
http://sqlserverpedia.blogspot.com/
Les comparto la presentación utilizada en la charla sobre optimización de desempeño de SQL Server.
Saludos,
Eduardo Castro Martinez
http://ecastrom.blogspot.com
http://comunidadwindows.org
Unit 8 - Information and Communication Technology (Paper I).pdfThiyagu K
This slides describes the basic concepts of ICT, basics of Email, Emerging Technology and Digital Initiatives in Education. This presentations aligns with the UGC Paper I syllabus.
Palestine last event orientationfvgnh .pptxRaedMohamed3
An EFL lesson about the current events in Palestine. It is intended to be for intermediate students who wish to increase their listening skills through a short lesson in power point.
A Strategic Approach: GenAI in EducationPeter Windle
Artificial Intelligence (AI) technologies such as Generative AI, Image Generators and Large Language Models have had a dramatic impact on teaching, learning and assessment over the past 18 months. The most immediate threat AI posed was to Academic Integrity with Higher Education Institutes (HEIs) focusing their efforts on combating the use of GenAI in assessment. Guidelines were developed for staff and students, policies put in place too. Innovative educators have forged paths in the use of Generative AI for teaching, learning and assessments leading to pockets of transformation springing up across HEIs, often with little or no top-down guidance, support or direction.
This Gasta posits a strategic approach to integrating AI into HEIs to prepare staff, students and the curriculum for an evolving world and workplace. We will highlight the advantages of working with these technologies beyond the realm of teaching, learning and assessment by considering prompt engineering skills, industry impact, curriculum changes, and the need for staff upskilling. In contrast, not engaging strategically with Generative AI poses risks, including falling behind peers, missed opportunities and failing to ensure our graduates remain employable. The rapid evolution of AI technologies necessitates a proactive and strategic approach if we are to remain relevant.
The Roman Empire A Historical Colossus.pdfkaushalkr1407
The Roman Empire, a vast and enduring power, stands as one of history's most remarkable civilizations, leaving an indelible imprint on the world. It emerged from the Roman Republic, transitioning into an imperial powerhouse under the leadership of Augustus Caesar in 27 BCE. This transformation marked the beginning of an era defined by unprecedented territorial expansion, architectural marvels, and profound cultural influence.
The empire's roots lie in the city of Rome, founded, according to legend, by Romulus in 753 BCE. Over centuries, Rome evolved from a small settlement to a formidable republic, characterized by a complex political system with elected officials and checks on power. However, internal strife, class conflicts, and military ambitions paved the way for the end of the Republic. Julius Caesar’s dictatorship and subsequent assassination in 44 BCE created a power vacuum, leading to a civil war. Octavian, later Augustus, emerged victorious, heralding the Roman Empire’s birth.
Under Augustus, the empire experienced the Pax Romana, a 200-year period of relative peace and stability. Augustus reformed the military, established efficient administrative systems, and initiated grand construction projects. The empire's borders expanded, encompassing territories from Britain to Egypt and from Spain to the Euphrates. Roman legions, renowned for their discipline and engineering prowess, secured and maintained these vast territories, building roads, fortifications, and cities that facilitated control and integration.
The Roman Empire’s society was hierarchical, with a rigid class system. At the top were the patricians, wealthy elites who held significant political power. Below them were the plebeians, free citizens with limited political influence, and the vast numbers of slaves who formed the backbone of the economy. The family unit was central, governed by the paterfamilias, the male head who held absolute authority.
Culturally, the Romans were eclectic, absorbing and adapting elements from the civilizations they encountered, particularly the Greeks. Roman art, literature, and philosophy reflected this synthesis, creating a rich cultural tapestry. Latin, the Roman language, became the lingua franca of the Western world, influencing numerous modern languages.
Roman architecture and engineering achievements were monumental. They perfected the arch, vault, and dome, constructing enduring structures like the Colosseum, Pantheon, and aqueducts. These engineering marvels not only showcased Roman ingenuity but also served practical purposes, from public entertainment to water supply.
Embracing GenAI - A Strategic ImperativePeter Windle
Artificial Intelligence (AI) technologies such as Generative AI, Image Generators and Large Language Models have had a dramatic impact on teaching, learning and assessment over the past 18 months. The most immediate threat AI posed was to Academic Integrity with Higher Education Institutes (HEIs) focusing their efforts on combating the use of GenAI in assessment. Guidelines were developed for staff and students, policies put in place too. Innovative educators have forged paths in the use of Generative AI for teaching, learning and assessments leading to pockets of transformation springing up across HEIs, often with little or no top-down guidance, support or direction.
This Gasta posits a strategic approach to integrating AI into HEIs to prepare staff, students and the curriculum for an evolving world and workplace. We will highlight the advantages of working with these technologies beyond the realm of teaching, learning and assessment by considering prompt engineering skills, industry impact, curriculum changes, and the need for staff upskilling. In contrast, not engaging strategically with Generative AI poses risks, including falling behind peers, missed opportunities and failing to ensure our graduates remain employable. The rapid evolution of AI technologies necessitates a proactive and strategic approach if we are to remain relevant.
Acetabularia Information For Class 9 .docxvaibhavrinwa19
Acetabularia acetabulum is a single-celled green alga that in its vegetative state is morphologically differentiated into a basal rhizoid and an axially elongated stalk, which bears whorls of branching hairs. The single diploid nucleus resides in the rhizoid.
2024.06.01 Introducing a competency framework for languag learning materials ...Sandy Millin
http://sandymillin.wordpress.com/iateflwebinar2024
Published classroom materials form the basis of syllabuses, drive teacher professional development, and have a potentially huge influence on learners, teachers and education systems. All teachers also create their own materials, whether a few sentences on a blackboard, a highly-structured fully-realised online course, or anything in between. Despite this, the knowledge and skills needed to create effective language learning materials are rarely part of teacher training, and are mostly learnt by trial and error.
Knowledge and skills frameworks, generally called competency frameworks, for ELT teachers, trainers and managers have existed for a few years now. However, until I created one for my MA dissertation, there wasn’t one drawing together what we need to know and do to be able to effectively produce language learning materials.
This webinar will introduce you to my framework, highlighting the key competencies I identified from my research. It will also show how anybody involved in language teaching (any language, not just English!), teacher training, managing schools or developing language learning materials can benefit from using the framework.
Biological screening of herbal drugs: Introduction and Need for
Phyto-Pharmacological Screening, New Strategies for evaluating
Natural Products, In vitro evaluation techniques for Antioxidants, Antimicrobial and Anticancer drugs. In vivo evaluation techniques
for Anti-inflammatory, Antiulcer, Anticancer, Wound healing, Antidiabetic, Hepatoprotective, Cardio protective, Diuretics and
Antifertility, Toxicity studies as per OECD guidelines
Macroeconomics- Movie Location
This will be used as part of your Personal Professional Portfolio once graded.
Objective:
Prepare a presentation or a paper using research, basic comparative analysis, data organization and application of economic information. You will make an informed assessment of an economic climate outside of the United States to accomplish an entertainment industry objective.
The French Revolution, which began in 1789, was a period of radical social and political upheaval in France. It marked the decline of absolute monarchies, the rise of secular and democratic republics, and the eventual rise of Napoleon Bonaparte. This revolutionary period is crucial in understanding the transition from feudalism to modernity in Europe.
For more information, visit-www.vavaclasses.com
Instructions for Submissions thorugh G- Classroom.pptxJheel Barad
This presentation provides a briefing on how to upload submissions and documents in Google Classroom. It was prepared as part of an orientation for new Sainik School in-service teacher trainees. As a training officer, my goal is to ensure that you are comfortable and proficient with this essential tool for managing assignments and fostering student engagement.
1. 1
Interpreting Wait Events To
Boost System Performance
Roger Schrag
Database Specialists, Inc.
www.dbspecialists.com
2. 2
Session Objectives
Define wait events
Discuss how to use the wait event interface
Walk through four examples of how wait
event information was used to troubleshoot
production problems
3. 3
“Wait Event” Defined
We say an Oracle process is “busy” when it wants
CPU time.
When an Oracle process is not busy, it is waiting
for something to happen.
There are only so many things an Oracle process
could be waiting for, and the kernel developers at
Oracle have attached names to them all.
These are wait events.
4. 4
Wait Event Examples
An Oracle process waiting for the client
application to submit a SQL statement waits
on a “SQL*Net message from client” event.
An Oracle process waiting on another
session to release a row-level lock waits on
an “enqueue” event.
5. 5
Wait Event Interface
Each Oracle process identifies the event it
is waiting for each time a wait begins.
The instance collects cumulative statistics
about events waited upon since instance
startup.
You can access this information through v$
views and tracing events.
These make up the wait event interface.
7. 7
Why Wait Event Information
Is Useful
Wait events touch all areas of Oracle—from
I/O to latches to parallelism to network
traffic.
Wait event data can be remarkably detailed.
“Waited 0.02 seconds to read 8 blocks from
file 42 starting at block 18042.”
Analyzing wait event data will yield a path
toward a solution for almost any problem.
8. 8
Important Wait Events
There were 102 wait events in Oracle 7.3.
There are 217 wait events in Oracle 8i Release 3
(8.1.7).
Most come up infrequently or are rarely significant
for troubleshooting performance.
Different wait events are significant in different
environments, depending on which Oracle
features have been deployed.
9. 9
A Few Common Wait Events
enqueue log file sequential read
library cache pin log file parallel write
library cache load lock log file sync
latch free db file scattered read
buffer busy waits db file sequential read
control file sequential read db file parallel read
control file parallel write db file parallel write
log buffer space direct path read / write
10. 10
Idle Events
Sometimes an Oracle process is not busy
simply because it has nothing to do.
In this case the process will be waiting on
an event that we call an “idle event.”
Idle events are usually not interesting from
the tuning and troubleshooting perspective.
11. 11
Common Idle Events
client message parallel query dequeue
dispatcher timer rdbms ipc message
Null event SQL*Net message from client
smon timer SQL*Net message to client
PX Idle Wait SQL*Net more data from client
pipe get wakeup time manager
PL/SQL lock timer virtual circuit status
pmon timer lock manager wait for remote
message
12. 12
Accounted For By The Wait
Event Interface
Time spent waiting for something to do (idle
events)
Time spent waiting for something to happen
so that work may continue (non-idle events)
13. 13
Not Accounted For By The Wait
Event Interface
Time spent using a CPU
Time spent waiting for a CPU
Time spent waiting for virtual memory to be
swapped back into physical memory
Note that logical reads from the buffer cache
do not appear in the wait event interface.
14. 14
Timed Statistics
The wait event interface will not collect timing
information unless timed statistics are enabled.
Enable timed statistics dynamically at the instance
or session level:
ALTER SYSTEM SET timed_statistics = TRUE;
ALTER SESSION SET timed_statistics = TRUE;
Enable timed statistics at instance startup by
setting the instance parameter:
timed_statistics = true
16. 16
The v$system_event View
Shows one row for each wait event name, along
with cumulative statistics since instance startup.
Wait events that have not occurred at least once
since instance startup do not appear in this view.
Column Name Data Type
-------------------------- ------------
EVENT VARCHAR2(64)
TOTAL_WAITS NUMBER
TOTAL_TIMEOUTS NUMBER
TIME_WAITED NUMBER
AVERAGE_WAIT NUMBER
17. 17
Columns In v$system_event
EVENT: The name of a wait event
TOTAL_WAITS: Total number of times a process
has waited for this event since instance startup
TOTAL_TIMEOUTS: Total number of timeouts while
waiting for this event since instance startup
TIME_WAITED: Total time waited for this wait event
by all processes since instance startup (in
centiseconds)
AVERAGE_WAIT: The average length of a wait for
this event since instance startup (in centiseconds)
18. 18
Sample v$system_event Query
SQL> SELECT event, time_waited
2 FROM v$system_event
3 WHERE event IN ('smon timer',
4 'SQL*Net message from client',
5 'db file sequential read',
6 'log file parallel write');
EVENT TIME_WAITED
--------------------------------- -----------
log file parallel write 159692
db file sequential read 28657
smon timer 130673837
SQL*Net message from client 16528989
19. 19
The v$session_event View
Shows one row for each wait event name within
each session, along with cumulative statistics
since session start.
Column Name Data Type
-------------------------- ------------
SID NUMBER
EVENT VARCHAR2(64)
TOTAL_WAITS NUMBER
TOTAL_TIMEOUTS NUMBER
TIME_WAITED NUMBER
AVERAGE_WAIT NUMBER
MAX_WAIT NUMBER
20. 20
Columns In v$session_event
SID: The ID of a session (from v$session)
EVENT: The name of a wait event
TOTAL_WAITS: Total number of times this session has
waited for this event
TOTAL_TIMEOUTS: Total number of timeouts while this
session has waited for this event
TIME_WAITED: Total time waited for this event by this
session (in centiseconds)
AVERAGE_WAIT: The average length of a wait for this
event in this session (in centiseconds)
MAX_WAIT: The maximum amount of time the session
had to wait for this event (in centiseconds)
21. 21
Sample v$session_event Query
SQL> SELECT event, total_waits, time_waited
2 FROM v$session_event
3 WHERE SID =
4 (SELECT sid FROM v$session
5 WHERE audsid =
6 USERENV ('sessionid') );
EVENT WAITS TIME_WAITED
--------------------------- ----- -----------
db file sequential read 552 240
db file scattered read 41 31
SQL*Net message to client 73 0
SQL*Net message from client 72 339738
22. 22
The v$event_name View
Shows one row for each wait event name known
to the Oracle kernel, along with names of up to
three parameters associated with the wait event.
Column Name Data Type
-------------------------- ------------
EVENT# NUMBER
NAME VARCHAR2(64)
PARAMETER1 VARCHAR2(64)
PARAMETER2 VARCHAR2(64)
PARAMETER3 VARCHAR2(64)
23. 23
Columns In v$event_name
EVENT#: An internal ID
NAME: The name of a wait event
PARAMETERn: The name of a parameter
associated with the wait event
24. 24
Sample v$event_name Query
SQL> SELECT *
2 FROM v$event_name
3 WHERE name = 'db file scattered read';
EVENT# NAME
---------- ------------------------------
PARAMETER1 PARAMETER2 PARAMETER3
------------- ------------- -------------
95 db file scattered read
file# block# blocks
25. 25
The v$session_wait View
Shows one row for each session, providing detailed
information about the current or most recent wait event.
Column Name Data Type
-------------------------- ------------
SID NUMBER
SEQ# NUMBER
EVENT VARCHAR2(64)
P1TEXT VARCHAR2(64)
P1 NUMBER
P1RAW RAW(4)
P2TEXT VARCHAR2(64)
P2 NUMBER
P2RAW RAW(4)
P3TEXT VARCHAR2(64)
P3 NUMBER
P3RAW RAW(4)
WAIT_TIME NUMBER
SECONDS_IN_WAIT NUMBER
STATE VARCHAR2(19)
26. 26
Columns In v$session_wait
SID: The ID of a session
SEQ#: A number that increments by one on each
new wait
STATE: An indicator of the session status:
– ‘WAITING’: The session is currently waiting, and details
of the wait event are provided.
– ‘WAITED KNOWN TIME’: The session is not waiting,
but information about the most recent wait is provided.
– ‘WAITED SHORT TIME’ or ‘WAITED UNKNOWN
TIME’: The session is not waiting, but partial information
about the most recent wait is provided.
27. 27
Columns In v$session_wait
(continued)
EVENT: The name of a wait event
PnTEXT: The name of a parameter associated with the
wait event
Pn: The value of the parameter in decimal form
PnRAW: The value of the parameter in raw form
WAIT_TIME: Length of most recent wait (in centiseconds)
if STATE = ‘WAITED KNOWN TIME’
SECONDS_IN_WAIT: How long current wait has been so
far if STATE = ‘WAITING’
29. 29
System Event 10046
Methods for setting system events:
“event” instance parameter
dbms_system.set_ev
oradebug
ALTER SESSION SET events
Setting event 10046 enables SQL trace, and
can optionally include wait event information
and bind variable data in trace files as well.
30. 30
System Event 10046 Settings
ALTER SESSION SET events
'10046 trace name context forever, level N’;
Value of N Effect
1 Enables ordinary SQL trace
4 Enables SQL trace with bind variable
values included in trace file
8 Enables SQL trace with wait event
information included in trace file
12 Equivalent of level 4 and level 8 together
32. 32
Using Wait Event Information
Four examples of how wait event information
was used to diagnose production problems
33. 33
Example #1: A Slow Web Page
A dynamic web page took several seconds
to come up. Developers tracked the
bottleneck down to one query. The execution
plan showed that the query was using an
index, so the developers thought there might
be a “database problem.”
34. 34
The Slow Query
SELECT COUNT (*)
FROM customer_inquiries
WHERE status_code = :b1
AND status_date > :b2;
Execution Plan
----------------------------------------------------------
0 SELECT STATEMENT Optimizer=CHOOSE
1 0 SORT (AGGREGATE)
2 1 TABLE ACCESS (BY INDEX ROWID) OF 'CUSTOMER_INQUIRIES'
3 2 INDEX (RANGE SCAN) OF 'CUSTOMER_INQUIRIES_N2' (NON-UNIQUE)
The CUSTOMER_INQUIRIES_N2 index was a
concatenated index with status_code as its first
column. The status_date column was not indexed.
35. 35
Wait Events For One User’s
Session
A query against v$session_event after the query
ran in isolation yielded:
TOTAL TIME
EVENT WAITS WAITED
------------------------------ ----- ------
db file scattered read 15 3
db file sequential read 6209 140
latch free 2 1
SQL*Net message to client 8 0
SQL*Net message from client 7 21285
36. 36
The Path To Problem Resolution
What we learned from wait event information:
– The query performed a large number of index
lookups.
– 1.40 seconds were spent waiting on the index
lookups, plus any CPU overhead.
Areas to research further:
– Was the database server CPU starved?
– Was the index lookup selective?
– Idea: Modify the query to use a full table scan
instead of the index.
37. 37
Research Results
The database server was CPU starved. The run
queue length often exceeded twice the number of
CPUs on the server.
Using just the status_code column of the
CUSTOMER_INQUIRIES_N2 index made for a
very unselective index lookup. Over 90% of the
rows in the table had a status code of 12.
A full table scan against CUSTOMER_INQUIRIES
appeared to run faster than using the index.
38. 38
Problem Resolution
A query against v$session_event after the modified
query ran in isolation yielded:
TOTAL TIME
EVENT WAITS WAITED
------------------------------ ----- ------
db file scattered read 460 13
db file sequential read 3 1
latch free 1 0
SQL*Net message to client 10 0
SQL*Net message from client 9 18317
39. 39
Analyzing The Results
The rule of thumb that a full table scan is better
than a scan of an unselective index is true.
I/O systems can perform a few multi-block I/O
requests much faster than many single-block I/O
requests.
Physical reads require a small amount of CPU
time. Lack of available CPU can make an I/O
intensive statement run even slower, although the
wait event interface will not show this.
40. 40
Example #2: Slow Batch
Processing
An additional data feed program was added
to the nightly batch processing job queue,
and the overnight processing no longer
finished before the morning deadline. More
CPUs were added to the database server,
but this did not improve processing speed
significantly.
41. 41
Summarizing Wait Events During
A Period Of Time
v$system_event shows wait event totals since
instance startup.
v$session_event shows wait event totals since
the beginning of a session.
You can capture view contents at different points
in time and compute the delta in order to get wait
event information for a specific period of time.
Statspack and many third-party tools can do this
for you.
42. 42
Simple Script To See Wait Events
During A 30 Second Time Period
CREATE TABLE previous_events AS
SELECT SYSDATE timestamp, v$system_event.*
FROM v$system_event;
EXECUTE dbms_lock.sleep (30);
SELECT A.event,
A.total_waits
- NVL (B.total_waits, 0) total_waits,
A.time_waited
- NVL (B.time_waited, 0) time_waited
FROM v$system_event A, previous_events B
WHERE B.event (+) = A.event
ORDER BY A.event;
44. 44
The Path To Problem Resolution
What we learned from wait event information:
– There appeared to be significant lock contention.
– In 30 seconds of elapsed time, sessions spent over 56
seconds waiting for locks.
Areas to research further:
– What type of locks are being waited on? Row-level
locks? Table-level locks? Others?
– If the locks are table-level or row-level, then which
database tables are experiencing contention? Which
SQL statements are causing the contention?
45. 45
Tracing Waits In A Session
The following commands were used to enable wait
event tracing in the process with Oracle PID 13:
SQL> oradebug setorapid 13
Unix process pid: 19751,
image: oracle@dbserver.acme.com (TNS V1-V3)
SQL> oradebug session_event –
> 10046 trace name context forever, level 8
Statement processed.
SQL>
47. 47
Understanding The enqueue Wait
Event
SQL> SELECT parameter1,parameter2,parameter3
2 FROM v$event_name
3 WHERE name = 'enqueue';
PARAMETER1 PARAMETER2 PARAMETER3
------------ ------------ ------------
name|mode id1 id2
SQL> SELECT CHR (1415053318/65536/256) ||
2 CHR (MOD (1415053318/65536, 256)),
3 MOD (1415053318, 65536) lock_mode
4 FROM SYS.dual;
CH LOCK_MODE
-- ----------
TX 6
48. 48
Analyzing The Results
Contention for exclusive locks on rows in the
customer_calls table was responsible for
substantial delays in processing.
Looking at the row_wait_obj# and
row_wait_row# columns in v$session would
have identified the exact rows undergoing
contention.
49. 49
Problem Resolution
Multiple programs were attempting to
update the same rows in tables at the same
time. Contention could be reduced by doing
one or more of the following:
– Running conflicting programs separately
– Reducing lock scope
– Reducing lock duration
50. 50
Example #3: A Slow Client/Server
Application
A client/server application was taking several
seconds to bring up a certain screen. The
delay was occurring during startup before
the user had a chance to kick off a query.
The only thing happening in the form on
startup was some fetching of basic reference
data. All of the SQL had been tuned and was
known to run very quickly.
51. 51
Manipulating timed_statistics
The timed_statistics parameter can be changed at
any time at the session level with the following
commands:
ALTER SESSION SET timed_statistics = TRUE;
ALTER SESSION SET timed_statistics = FALSE;
Manipulate timed_statistics to collect wait event
times during certain specific points of processing for
debugging purposes.
52. 52
Wait Events During Form Startup
Modifying the form to disable timed_statistics at the end of
the form startup logic yielded the following information in
v$session_event:
TOTAL TIME
EVENT WAITS WAITED
------------------------------ ----- ------
SQL*Net message to client 18520 6
SQL*Net message from client 18519 1064
v$sesstat showed the following:
NAME VALUE
------------------------------ ----------
session logical reads 9295
CPU used by this session 82
physical reads 0
53. 53
The Path To Problem Resolution
What we learned from wait event information:
– There were over 18,000 network roundtrips during form
startup, almost exactly two for every logical read.
– The Oracle process spent over 10 seconds waiting for
activity from the client. Since timed statistics were disabled
at the end of the form startup logic, this does not include
time spent waiting on the end user.
Areas to research further:
– How many rows of data does the form read from the
database during the startup phase?
– Does the form really need to fetch all of this data?
– Is the form fetching one row at a time or is it using Oracle’s
array processing interface?
54. 54
Research Results
The form was fetching 9245 rows of
reference data during startup.
All of this data was necessary; none could
be eliminated.
All data was fetched one row at a time.
55. 55
Problem Resolution
The startup logic of the form was modified to fetch 100
rows at a time. This yielded the following information in
v$session_event:
TOTAL TIME
EVENT WAITS WAITED
------------------------------ ----- ------
SQL*Net message to client 200 0
SQL*Net message from client 199 28
v$sesstat showed the following:
NAME VALUE
------------------------------ ----------
session logical reads 135
CPU used by this session 3
physical reads 0
56. 56
Analyzing The Results
Fetching rows 100 at a time instead of one at a
time dramatically reduced network roundtrips.
Reducing network roundtrips reduced time spent
waiting on the network.
Fetching rows 100 at a time also significantly
reduced the number of logical reads, and therefore
the amount of CPU time required.
57. 57
Example #4: A Floundering
Database Server
The DBA group discovered that one of the
database servers was completely
overwhelmed. Connecting to the database
took a few seconds, selecting from SYS.dual
took more than a second. Everything on the
system ran very slowly.
58. 58
Longest Waits In v$system_event
EVENT TIME_WAITED
------------------------------ ----------------
log file sync 326284
write complete waits 402284
control file parallel write 501697
db file scattered read 612671
db file sequential read 2459961
pmon timer 31839833
smon timer 31974216
db file parallel write 1353916234
rdbms ipc message 6579264389
latch free 8161581692
SQL*Net message from client 15517359160
59. 59
The Path To Problem Resolution
What we learned from wait event information:
– Most of the waits involved idle events or I/O events.
– A large amount of time was spent waiting on latches.
Areas to research further:
– How long has the instance been up?
– Which latches are experiencing contention?
60. 60
Research Results
The instance had been up for about seven days.
The latch contention was in the shared pool and library cache,
as evidenced by a query against v$latch_misses:
PARENT_NAME SUM(LONGHOLD_COUNT)
------------------------------ -------------------
enqueue hash chains 614
enqueues 637
Checkpoint queue latch 790
session allocation 1131
messages 1328
session idle bit 2106
latch wait list 5977
modify parameter values 6242
cache buffers chains 9876
row cache objects 38899
cache buffers lru chain 125352
shared pool 4041451
library cache 4423229
61. 61
Further Research Results
The shared pool was 400 Mb in size.
There were over 36,000 statements in the shared
pool, almost all executed exactly once.
The application was not using bind variables.
Modifying the application to use bind variables
was not an option.
Setting the cursor_sharing parameter to FORCE
was also not an option.
62. 62
Problem Resolution
Bigger is not always better!
Reducing the shared pool to 100 Mb provided
plenty of space for sharable statements while
reducing the effort required by Oracle to
maintain the library cache LRU list. This
reduced latch contention and boosted
performance.
63. 63
A Summary Of Wait Event
Techniques
Isolating a statement and analyzing its wait
events
Collecting wait event data for a session or
the entire instance at two different times and
computing the difference to find the wait
events during a specific period of time
Enabling wait event tracing in a session
64. 64
A Summary Of Wait Event
Techniques (continued)
Enabling and disabling timed statistics
dynamically to measure wait event times for
a specific section of code
Ranking cumulative wait event data in order
to see which wait events account for the
most wait time
65. 65
In Conclusion
The wait event interface gives you access to a
detailed accounting of how Oracle processes
spend their time.
Wait events touch all aspects of the Oracle
database server.
The wait event interface will not always give you
the answer to every performance problem, but it
will just about always give you insights that guide
you down the proper path to problem resolution.
66. 66
The White Paper
A companion white paper to this presentation
is available for free download from my
company’s website at:
www.dbspecialists.com/present.html
67. 67
Resources from
Database Specialists
The Specialist newsletter
– www.dbspecialists.com/specialist.html
Database Rx®
– dbrx.dbspecialists.com/guest
• Provides secure, automated monitoring, alert
notification, and analysis of your Oracle
databases
68. 68
Contact Information
Roger Schrag
Database Specialists, Inc.
388 Market Street, Suite 400
San Francisco, CA 94111
Tel: 415/344-0500
Email: rschrag@dbspecialists.com
Web: www.dbspecialists.com