From Tanel Poder's Troubleshooting Complex Performance Issues series - an example of Oracle SEG$ internal segment contention due to some direct path insert activity.
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.
This presentation talks about the different ways of getting SQL Monitoring reports, reading them correctly, common issues with SQL Monitoring reports - and plenty of Oracle 12c-specific improvements!
This is a recording of my Advanced Oracle Troubleshooting seminar preparation session - where I showed how I set up my command line environment and some of the main performance scripts I use!
DB Time, Average Active Sessions, and ASH Math - Oracle performance fundamentalsJohn Beresniewicz
RMOUG 2020 abstract:
This session will cover core concepts for Oracle performance analysis first introduced in Oracle 10g and forming the backbone of many features in the Diagnostic and Tuning packs. The presentation will cover the theoretical basis and meaning of these concepts, as well as illustrate how they are fundamental to many user-facing features in both the database itself and Enterprise Manager.
Exploring Oracle Database Performance Tuning Best Practices for DBAs and Deve...Aaron Shilo
The document provides an overview of Oracle database performance tuning best practices for DBAs and developers. It discusses the connection between SQL tuning and instance tuning, and how tuning both the database and SQL statements is important. It also covers the connection between the database and operating system, how features like data integrity and zero downtime updates are important. The presentation agenda includes topics like identifying bottlenecks, benchmarking, optimization techniques, the cost-based optimizer, indexes, and more.
This document discusses SCAN, VIP, and HAIP in Oracle RAC environments. It provides details on:
- VIP - a virtual IP address that is not statically linked to a single node, allowing for faster failovers. Each node has a VIP.
- SCAN - a single virtual IP and listener that provides load balancing and high availability. SCAN acts as an abstraction layer so client connect strings do not need to change.
- HAIP - high availability IP addresses that allow clusterware and the database to use plumbed IP addresses for private interconnect traffic via solutions like bonding and trunking.
Oracle ASM Training covers database and storage concepts, ASM architecture, installation and configuration of ASMLIB, creating and managing ASM disk groups, best practices for ASM configuration, and migrating databases to ASM. The document includes an agenda with topics on ASM, ASMLIB, disk groups, files, redundancy, rebalancing, and troubleshooting. It also lists office locations for consulting services.
The document discusses various Oracle performance monitoring tools including Oracle Enterprise Manager (OEM), Automatic Workload Repository (AWR), Automatic Database Diagnostic Monitor (ADDM), Active Session History (ASH), and eDB360. It provides overviews of each tool and examples of using AWR, ADDM, ASH and eDB360 for performance analysis through demos. The conclusions recommend OEM as the primary tool and how the other tools like AWR, ADDM and ASH complement it for deeper performance insights.
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
Tanel Poder Oracle Scripts and Tools (2010)Tanel Poder
Tanel Poder's Oracle Performance and Troubleshooting Scripts & Tools presentation initially presented at Hotsos Symposium Training Day back in year 2010
Survey of some free Tools to enhance your SQL Tuning and Performance Diagnost...Carlos Sierra
Several free tools are available to help with SQL tuning and performance diagnostics, including SQLd360, SQLT, and eDB360. SQLd360 and SQLT are good for diagnosing a single SQL statement, while eDB360 provides a 360-degree view of an entire Oracle database. Snapper and TUNAs360 can diagnose sessions and database activity. Standalone scripts like planx and sqlmon provide specialized diagnostics for individual cases. These free tools vary in size and capabilities, but all aim to help tune and diagnose SQL and database performance issues.
Performance Stability, Tips and Tricks and UnderscoresJitendra Singh
This document provides an overview of upgrading to Oracle Database 19c and ensuring performance stability after the upgrade. It discusses gathering statistics before the upgrade to speed up the process, using AutoUpgrade for upgrades, and various testing tools like AWR Diff Reports and SQL Performance Analyzer to check for performance regressions after the upgrade. Maintaining good statistics and thoroughly testing upgrades are emphasized as best practices for a successful upgrade.
Tanel Poder - Troubleshooting Complex Oracle Performance Issues - Part 2Tanel Poder
This document summarizes a series of performance issues seen by the author in their work with Oracle Exadata systems. It describes random session hangs occurring across several minutes, with long transaction locks and I/O waits seen. Analysis of AWR reports and blocking trees revealed that many sessions were blocked waiting on I/O, though initial I/O metrics from the OS did not show issues. Further analysis using ASH activity breakdowns and OS tools like sar and vmstat found high apparent CPU usage in ASH that was not reflected in actual low CPU load on the system. This discrepancy was due to the way ASH attributes non-waiting time to CPU. The root cause remained unclear.
Troubleshooting Complex Oracle Performance Problems with Tanel PoderTanel Poder
The document describes troubleshooting a performance issue involving parallel data loads into a data warehouse. It is determined that the slowness is due to recursive locking and buffer busy waits occurring during inserts into the SEG$ table as new segments are created by parallel CREATE TABLE AS SELECT statements. This is causing a nested locking ping-pong effect between the cache, transaction, and I/O layers as sessions repeatedly acquire and release locks and buffers.
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
Performance Tuning With Oracle ASH and AWR. Part 1 How And Whatudaymoogala
The document discusses various techniques for identifying and analyzing SQL performance issues in an Oracle database, including gathering diagnostic data from AWR reports, ASH reports, SQL execution plans, and real-time SQL monitoring reports. It provides an overview of how to use these tools to understand what is causing performance problems by identifying what is slow, quantifying the impact, determining the component involved, and analyzing the root cause.
Tuning SQL for Oracle Exadata: The Good, The Bad, and The Ugly Tuning SQL fo...Enkitec
This document discusses tuning SQL on Oracle Exadata. It makes three main points:
1. Gathering and displaying execution plan data differs slightly on Exadata compared to non-Exadata databases.
2. The general approach to optimization is similar to non-Exadata, focusing on features like smart scans, storage indexes, and parallelism that provide the most benefit.
3. Rewriting SQL queries can have a dramatic impact on performance by enabling offloading and reducing disk I/O, with examples showing savings of over 98% in run time.
SQLd360 is a free tool designed to help collecting and analyzing SQL Tuning-related info from an Oracle database.
Available for free on GitHub, just google "sqld360"
Stop the Chaos! Get Real Oracle Performance by Query Tuning Part 1SolarWinds
The document provides an overview and agenda for a presentation on optimizing Oracle database performance through query tuning. It discusses identifying performance issues, collecting wait event information, reviewing execution plans, and understanding how the Oracle optimizer works using features like adaptive plans and statistics gathering. The goal is to show attendees how to quickly find and focus on the queries most in need of tuning.
How a Developer can Troubleshoot a SQL performing poorly on a Production DBCarlos Sierra
This session is about some free small scripts you can execute from SQL*Plus, which provide you with some basics about a SQL statement, like the Execution Plan from multiple child cursors, their SQL Monitor report if your site has the Tuning Pack, and some useful Active Session History (ASH) summaries for your SQL if your site has the Diagnostics Pack. And if you have neither the Tuning nor the Diagnostics Pack then you may want to learn about some alternatives to collect important performance metrics.
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).
Oracle SQL tuning involves optimizing SQL statements for better performance. Key aspects of SQL tuning include identifying SQL statements with high resource consumption or response times using tools like ADDM, AWR, and V$SQL. Statements can then be tuned by gathering accurate optimizer statistics, adjusting the execution plan using hints, rewriting the SQL, or changing indexes and tables. Tuning is done at both the design and execution stages.
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.
The document is a presentation on the internals of Oracle's shared global area (SGA). It discusses the components of the SGA including granules, the fixed SGA, buffer cache, shared pool, and log buffer. It provides details on how the SGA is divided into granules and the sizes and operations of the different SGA pools.
This document provides an overview of Oracle Automatic Workload Repository (AWR) and Active Session History (ASH) analytics. It discusses the key components and architecture of AWR and ASH, how they collect and store database performance data, and how that data can be analyzed using tools like the Automatic Database Diagnostic Monitor (ADDM) and ASH Analytics. It also highlights new capabilities in Oracle 12c like Real-Time ADDM, AWR Compare Periods reporting, and enhanced dimensions and filters for the Top Activity page in ASH Analytics.
Top 10 tips for Oracle performance (Updated April 2015)Guy Harrison
This document provides a summary of Guy Harrison's top 10 Oracle database tuning tips presentation. The tips include being methodical and empirical in tuning, optimizing database design, indexing wisely, writing efficient code, optimizing the optimizer, tuning SQL and PL/SQL, monitoring and managing contention, optimizing memory to reduce I/O, and tuning I/O last but tuning it well. The document discusses each tip in more detail and provides examples and best practices for implementing them.
Tanel Poder - Troubleshooting Complex Oracle Performance Issues - Part 1Tanel Poder
The document describes troubleshooting a complex performance issue in an Oracle database. Key details:
- The problem was sporadic extreme slowness of the Oracle database and server lasting 1-20 minutes.
- Initial AWR reports and OS metrics showed a spike at 18:10 with CPU usage at 66.89%, confirming a problem occurred then.
- Further investigation using additional metrics was needed to fully understand the root cause, as initial diagnostics did not provide enough context about this brief problem period.
This is a high level presentation I delivered at BIWA Summit. It's just some high level thoughts related to today's NoSQL and Hadoop SQL engines (not deeply technical).
This document discusses connecting Hadoop and Oracle databases. It introduces the author Tanel Poder and his expertise in databases and big data. It then covers tools like Sqoop that can be used to load data between Hadoop and Oracle databases. It also discusses using query offloading to query Hadoop data directly from Oracle as if it were in an Oracle database.
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
Tanel Poder Oracle Scripts and Tools (2010)Tanel Poder
Tanel Poder's Oracle Performance and Troubleshooting Scripts & Tools presentation initially presented at Hotsos Symposium Training Day back in year 2010
Survey of some free Tools to enhance your SQL Tuning and Performance Diagnost...Carlos Sierra
Several free tools are available to help with SQL tuning and performance diagnostics, including SQLd360, SQLT, and eDB360. SQLd360 and SQLT are good for diagnosing a single SQL statement, while eDB360 provides a 360-degree view of an entire Oracle database. Snapper and TUNAs360 can diagnose sessions and database activity. Standalone scripts like planx and sqlmon provide specialized diagnostics for individual cases. These free tools vary in size and capabilities, but all aim to help tune and diagnose SQL and database performance issues.
Performance Stability, Tips and Tricks and UnderscoresJitendra Singh
This document provides an overview of upgrading to Oracle Database 19c and ensuring performance stability after the upgrade. It discusses gathering statistics before the upgrade to speed up the process, using AutoUpgrade for upgrades, and various testing tools like AWR Diff Reports and SQL Performance Analyzer to check for performance regressions after the upgrade. Maintaining good statistics and thoroughly testing upgrades are emphasized as best practices for a successful upgrade.
Tanel Poder - Troubleshooting Complex Oracle Performance Issues - Part 2Tanel Poder
This document summarizes a series of performance issues seen by the author in their work with Oracle Exadata systems. It describes random session hangs occurring across several minutes, with long transaction locks and I/O waits seen. Analysis of AWR reports and blocking trees revealed that many sessions were blocked waiting on I/O, though initial I/O metrics from the OS did not show issues. Further analysis using ASH activity breakdowns and OS tools like sar and vmstat found high apparent CPU usage in ASH that was not reflected in actual low CPU load on the system. This discrepancy was due to the way ASH attributes non-waiting time to CPU. The root cause remained unclear.
Troubleshooting Complex Oracle Performance Problems with Tanel PoderTanel Poder
The document describes troubleshooting a performance issue involving parallel data loads into a data warehouse. It is determined that the slowness is due to recursive locking and buffer busy waits occurring during inserts into the SEG$ table as new segments are created by parallel CREATE TABLE AS SELECT statements. This is causing a nested locking ping-pong effect between the cache, transaction, and I/O layers as sessions repeatedly acquire and release locks and buffers.
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
Performance Tuning With Oracle ASH and AWR. Part 1 How And Whatudaymoogala
The document discusses various techniques for identifying and analyzing SQL performance issues in an Oracle database, including gathering diagnostic data from AWR reports, ASH reports, SQL execution plans, and real-time SQL monitoring reports. It provides an overview of how to use these tools to understand what is causing performance problems by identifying what is slow, quantifying the impact, determining the component involved, and analyzing the root cause.
Tuning SQL for Oracle Exadata: The Good, The Bad, and The Ugly Tuning SQL fo...Enkitec
This document discusses tuning SQL on Oracle Exadata. It makes three main points:
1. Gathering and displaying execution plan data differs slightly on Exadata compared to non-Exadata databases.
2. The general approach to optimization is similar to non-Exadata, focusing on features like smart scans, storage indexes, and parallelism that provide the most benefit.
3. Rewriting SQL queries can have a dramatic impact on performance by enabling offloading and reducing disk I/O, with examples showing savings of over 98% in run time.
SQLd360 is a free tool designed to help collecting and analyzing SQL Tuning-related info from an Oracle database.
Available for free on GitHub, just google "sqld360"
Stop the Chaos! Get Real Oracle Performance by Query Tuning Part 1SolarWinds
The document provides an overview and agenda for a presentation on optimizing Oracle database performance through query tuning. It discusses identifying performance issues, collecting wait event information, reviewing execution plans, and understanding how the Oracle optimizer works using features like adaptive plans and statistics gathering. The goal is to show attendees how to quickly find and focus on the queries most in need of tuning.
How a Developer can Troubleshoot a SQL performing poorly on a Production DBCarlos Sierra
This session is about some free small scripts you can execute from SQL*Plus, which provide you with some basics about a SQL statement, like the Execution Plan from multiple child cursors, their SQL Monitor report if your site has the Tuning Pack, and some useful Active Session History (ASH) summaries for your SQL if your site has the Diagnostics Pack. And if you have neither the Tuning nor the Diagnostics Pack then you may want to learn about some alternatives to collect important performance metrics.
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).
Oracle SQL tuning involves optimizing SQL statements for better performance. Key aspects of SQL tuning include identifying SQL statements with high resource consumption or response times using tools like ADDM, AWR, and V$SQL. Statements can then be tuned by gathering accurate optimizer statistics, adjusting the execution plan using hints, rewriting the SQL, or changing indexes and tables. Tuning is done at both the design and execution stages.
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.
The document is a presentation on the internals of Oracle's shared global area (SGA). It discusses the components of the SGA including granules, the fixed SGA, buffer cache, shared pool, and log buffer. It provides details on how the SGA is divided into granules and the sizes and operations of the different SGA pools.
This document provides an overview of Oracle Automatic Workload Repository (AWR) and Active Session History (ASH) analytics. It discusses the key components and architecture of AWR and ASH, how they collect and store database performance data, and how that data can be analyzed using tools like the Automatic Database Diagnostic Monitor (ADDM) and ASH Analytics. It also highlights new capabilities in Oracle 12c like Real-Time ADDM, AWR Compare Periods reporting, and enhanced dimensions and filters for the Top Activity page in ASH Analytics.
Top 10 tips for Oracle performance (Updated April 2015)Guy Harrison
This document provides a summary of Guy Harrison's top 10 Oracle database tuning tips presentation. The tips include being methodical and empirical in tuning, optimizing database design, indexing wisely, writing efficient code, optimizing the optimizer, tuning SQL and PL/SQL, monitoring and managing contention, optimizing memory to reduce I/O, and tuning I/O last but tuning it well. The document discusses each tip in more detail and provides examples and best practices for implementing them.
Tanel Poder - Troubleshooting Complex Oracle Performance Issues - Part 1Tanel Poder
The document describes troubleshooting a complex performance issue in an Oracle database. Key details:
- The problem was sporadic extreme slowness of the Oracle database and server lasting 1-20 minutes.
- Initial AWR reports and OS metrics showed a spike at 18:10 with CPU usage at 66.89%, confirming a problem occurred then.
- Further investigation using additional metrics was needed to fully understand the root cause, as initial diagnostics did not provide enough context about this brief problem period.
This is a high level presentation I delivered at BIWA Summit. It's just some high level thoughts related to today's NoSQL and Hadoop SQL engines (not deeply technical).
This document discusses connecting Hadoop and Oracle databases. It introduces the author Tanel Poder and his expertise in databases and big data. It then covers tools like Sqoop that can be used to load data between Hadoop and Oracle databases. It also discusses using query offloading to query Hadoop data directly from Oracle as if it were in an Oracle database.
Oracle Exadata Performance: Latest Improvements and Less Known FeaturesTanel Poder
This document discusses recent improvements to Oracle Exadata performance, including improved SQL monitoring in Oracle 12c, enhancements to storage indexes and flash caching, and additional metrics available in AWR. It provides details on new execution plan line level metrics in SQL monitoring reports and metrics for storage cell components now visible in AWR. The post outlines various flash cache features and behavior in earlier Oracle releases.
Modern Linux Performance Tools for Application TroubleshootingTanel Poder
Modern Linux Performance Tools for Application Troubleshooting.
Mostly demos and focused on application/process troubleshooting, not systemwide summaries.
GNW01: In-Memory Processing for DatabasesTanel Poder
This document discusses in-memory execution for databases. It begins with introductions and background on the author. It then discusses how databases can offload data to memory to improve query performance 2-24x by analyzing storage use and access patterns. It covers concepts like how RAM access is now the performance bottleneck and how CPU cache-friendly data structures are needed. It shows examples measuring performance differences when scanning data in memory versus disk. Finally, it discusses future directions like more integrated storage and memory and new data formats optimized for CPU caches.
Oracle LOB Internals and Performance TuningTanel Poder
The document discusses a presentation on tuning Oracle LOBs (Large Objects). It covers LOB architecture including inline vs out-of-line storage, LOB locators, inodes, indexes and segments. The presentation agenda includes introduction, storing large content, LOB internals, physical storage planning, caching tuning, loading LOBs, development strategies and temporary LOBs. Examples are provided to illustrate LOB structures like locators, inodes and indexes.
Oracle Latch and Mutex Contention TroubleshootingTanel Poder
This is an intro to latch & mutex contention troubleshooting which I've delivered at Hotsos Symposium, UKOUG Conference etc... It's also the starting point of my Latch & Mutex contention sections in my Advanced Oracle Troubleshooting online seminar - but we go much deeper there :-)
Tanel Poder - Performance stories from Exadata MigrationsTanel Poder
Tanel Poder has been involved in a number of Exadata migration projects since its introduction, mostly in the area of performance ensurance, troubleshooting and capacity planning.
These slides, originally presented at UKOUG in 2010, cover some of the most interesting challenges, surprises and lessons learnt from planning and executing large Oracle database migrations to Exadata v2 platform.
This material is not just repeating the marketing material or Oracle's official whitepapers.
Oracle Database In-Memory Option in ActionTanel Poder
The document discusses Oracle Database In-Memory option and how it improves performance of data retrieval and processing queries. It provides examples of running a simple aggregation query with and without various performance features like In-Memory, vector processing and bloom filters enabled. Enabling these features reduces query elapsed time from 17 seconds to just 3 seconds by minimizing disk I/O and leveraging CPU optimizations like SIMD vector processing.
A presentation divided into eight parts on the 'humble project management toolkit' - a set of tools which helps us to effectively manage projects in the face of uncertainty. In these presentations I describe the 'Planning Fallacy'- why projects always go over budget, over time, and fail to deliver to specification. I introduce two of the main causes of the Planning Fallacy: our cognitive biases or 'thinking errors' and complexity. I outline the 'humble project management toolkit,' describing some of the many approaches to project planning, implementation, and monitoring and evaluation that are stored in the toolkit's six 'compartments':
1. Hesitate to encourage reflection;
2. Understand the project's ecosystem;
3. Manage in alignment with the project's ecosystem;
4. Bring in diverse perspectives;
5. Learn constantly; and
6. Embrace uncertainty
A transaction is a collection of database operations that are reliably and efficiently processed as one unit of work. Transactions must have the ACID properties of atomicity, consistency, isolation, and durability. Serializability is an important concept for transactions - a schedule is serializable if it is equivalent to running the transactions in some serial order. Conflict serializability detects conflicting operations between transactions and enforces a serial-equivalent order.
Oracle uses locking to control concurrent access to tables by multiple users and transactions. There are two types of locks - shared locks which allow multiple users to read data simultaneously, and exclusive locks which prevent other users from accessing the data being written to by a transaction. Oracle applies the minimum level of locking required, such as row-level or page-level locks depending on the SQL statement criteria. Users can also explicitly lock tables or rows using LOCK TABLE or SELECT FOR UPDATE statements.
This presentation discusses several new features in Oracle Database 12c including:
1) Total Recall which allows querying historical data as of a past timestamp using Flashback Archive.
2) Context extension which captures additional context like user, client, and IP address with redo data in Flashback Archive.
3) TRUNCATE TABLE now supports cascading deletes to dependent child tables when referenced keys have ON DELETE CASCADE constraints.
This document outlines Oracle's general product direction for informational purposes only. It does not constitute a legal commitment and should not be relied upon for purchasing decisions. The development, release, and timing of any product features described remains at Oracle's sole discretion.
The document discusses database recovery techniques. It describes ARIES, an algorithm that recovers a database to consistency after a crash in three phases: analysis identifies dirty pages, redo repeats logged actions to restore state, and undo undoes uncommitted transactions. The write-ahead logging protocol forces log writes before data page updates to allow recovery using the log. Checkpointing records dirty pages to reduce redo work during recovery.
Suvendu presents on using Oracle CloneDB for fast database refreshes. CloneDB uses write-on-demand technology to create clones of databases over NFS, allowing full database clones to complete in under 10 minutes. This is significantly faster than traditional methods like EXPDP/IMPDP and saves storage space. A demo is shown and some known issues are discussed, such as needing to add a temporary tablespace. CloneDB works best for creating many targets from a single source and for short-lived testing clones.
The Challenge and Reward of Continuous Improvement and Change Management. Why it pays to be persistent with good ideas. Think outside the box... Eventually people will jump on board.
Locking is a concurrency control mechanism used by databases to control simultaneous access to data by multiple users. There are different types of locks like page, table, and row locks that can be applied at various levels of granularity. Locks prevent inconsistent data access and lost updates by blocking other transactions from modifying the same data that a transaction is currently accessing or modifying until that transaction is complete. The database's lock manager monitors all locks to detect and resolve any lock conflicts or deadlocks that may occur between transactions.
The document discusses how the author had an epiphany about using database virtualization to simplify patching and upgrades. It provides an example of how virtualizing databases with Delphix eliminates the need to repeatedly apply patches to each test environment and allows patches to be tested on virtual copies without impacting existing environments. It estimates this approach can save over 80% on storage usage and significantly reduce the time spent on routine database maintenance tasks.
The document discusses new features in Oracle Database 11g Release 1. Key points include:
1. Encrypted tablespaces allow encryption of data at the tablespace level while still supporting indexing and queries.
2. New caching capabilities improve performance by caching more results in memory, such as function results and query results.
3. Standby databases have enhanced capabilities and can now be used for more active purposes like development, testing and reporting for increased usability and value.
The document discusses several new features and enhancements in Oracle Database 11g Release 1. Key points include:
1) Encrypted tablespaces allow full encryption of data while maintaining functionality like indexing and foreign keys.
2) New caching capabilities improve performance by caching more results and metadata to avoid repeat work.
3) Standby databases have been enhanced and can now be used for more active purposes like development, testing, reporting and backups while still providing zero data loss protection.
Ash masters : advanced ash analytics on Oracle Kyle Hailey
The document discusses database performance tuning. It recommends using Active Session History (ASH) and sampling sessions to identify the root causes of performance issues like buffer busy waits. ASH provides key details on sessions, SQL statements, wait events, and durations to understand top resource consumers. Counting rows in ASH approximates time spent and is important for analysis. Sampling sessions in real-time can provide the SQL, objects, and blocking sessions involved in issues like buffer busy waits.
This document discusses using Active Session History (ASH) to analyze and troubleshoot performance issues in an Oracle database. It provides an example of using ASH to identify the top CPU-consuming session over the last 5 minutes. It shows how to group and count ASH data to calculate metrics like average active sessions (AAS) and percentage of time spent on CPU. The document also discusses using ASH to identify top waiting sessions and analyze specific wait events like buffer busy waits.
The document discusses monitoring and tuning Oracle databases on z/OS and z/Linux systems. It provides an overview of using Statspack to diagnose performance issues from high CPU usage, I/O utilization, or memory usage based on timed events, SQL statements, and tablespace I/O statistics. Potential causes and remedies are described for each area that could lead to bad response times.
Oracle Architecture document discusses:
1. The cost of an Oracle Enterprise Edition license is $47,500 per processor.
2. It provides an overview of key Oracle components like the instance, database, listener and cost based optimizer.
3. It demonstrates how to start an Oracle instance, check active processes, mount and open a database, and query it locally and remotely after starting the listener.
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.
The document discusses using Automatic Workload Repository (AWR) to analyze IO subsystem performance. It provides examples of AWR reports including foreground and background wait events, operating system statistics, wait histograms. The document recommends using this data to identify IO bottlenecks and guide tuning efforts like optimizing indexes to reduce full table scans.
Oracle Open World Thursday 230 ashmastersKyle Hailey
This document discusses database performance tuning using Oracle's ASH (Active Session History) feature. It provides examples of ASH queries to identify top wait events, long running SQL statements, and sessions consuming the most CPU. It also explains how to use ASH data to diagnose specific problems like buffer busy waits and latch contention by tracking session details over time.
This document discusses scaling natural language processing (NLP) tasks by distributing work across multiple processors and machines. It describes running UIMA pipelines on a local cluster managed by Sun Grid Engine (SGE) to parallelize processing of independent documents. The local cluster, called Colfax, has 6 machines with 48 CPU cores and 96GB RAM that can be utilized through SGE job scripts to split work into arrays processed in parallel.
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 as well as single-instance database and can be used in combination with top to get a more holistic view of system performance and identify any bottlenecks
The document outlines common problems and solutions for optimizing performance in Oracle Real Application Clusters (RAC). It discusses RAC fundamentals like architecture and cache fusion. Common problems discussed include lost blocks due to interconnect issues, disk I/O bottlenecks, and expensive queries. Diagnostics tools like AWR and ADDM can identify cluster-wide I/O and query plan issues impacting performance. Configuring the private interconnect, I/O, and addressing bad SQL can help resolve performance problems.
In Memory Database In Action by Tanel Poder and Kerry OsborneEnkitec
The document discusses Oracle Database In-Memory option and how it improves performance of data retrieval and processing queries. It provides examples of running a simple aggregation query with and without various performance features like In-Memory, vector processing and bloom filters enabled. Enabling these features reduces query elapsed time from 17 seconds to just 3 seconds by minimizing disk I/O and leveraging CPU optimizations like SIMD vector processing.
Working in Web Operations means dealing with production systems that in most cases needs to be operational 24×7x365.
To reach 99.99999% uptime, you must fail as little as possible.
This talk will go through a few real-world incidents and failures experienced by our small WebOps team, and outline what we are learning (the hard way), and how we’re trying to improve.
What could possibly go wrong? :-)
Quantifying Container Runtime Performance: OSCON 2017 Open Container DayPhil Estes
A talk given at Open Container Day at O'Reilly's OSCON convention in Austin, Texas on May 9th, 2017. This talk describes an open source project, bucketbench, which can be used to compare performance, stability, and throughput of various container engines. Bucketbench currently supports docker, containerd, and runc, but can be extended to support any container runtime. This work was done in response to performance investigations by the Apache OpenWhisk team in using containers as the execution vehicle for functions in their "Functions-as-a-Service" runtime. Find out more about bucketbench here: https://github.com/estesp/bucketbench
What do data center operators need to know when deploying Hadoop in the Data Center? Multi-tenancy, network topology, workload types, and myriad other factors affect the way applications run and perform in the data center. Understanding performance characteristics of the distributed system is key to not only optimize for Hadoop, but allows Hadoop to seamlessly operate side-by-side existing applications.
The document discusses optimization of Real Application Clusters (RAC) in Oracle 12c. It provides background on the author and outlines common root causes of RAC performance issues such as CPU/memory starvation, network issues, and excessive dynamic remastering. The document then presents golden rules for RAC diagnostics including avoiding focusing only on top wait events, eliminating infrastructure issues, identifying problem instances, examining both send and receive side metrics, and using histograms. Specific techniques are described for analyzing wait events like gc buffer busy.
The document is a presentation about new features in PostgreSQL 9.6. It discusses several major new features including parallel queries, avoiding VACUUM on all-frozen pages using freeze maps, monitoring the progress of VACUUM, phrase full text search, multiple synchronous replication, remote_apply synchronous commit, and improved capabilities of the postgres_fdw extension including pushing down sorts, joins, updates and deletes to remote servers.
Oratop is a tool that provides dynamic, near real-time monitoring of an Oracle database. It displays information on the database, instances, wait events, sessions/processes, and SQL. It can be run against RAC or non-RAC databases and provides both command line and interactive modes. In interactive mode, various options can be toggled using keyboard keys to customize the displayed information.
Pythian is a global leader in database administration and consulting services. The document discusses the speaker's first 100 days of experience with an Oracle Exadata database machine. It provides an overview of Exadata components and features like Hybrid Columnar Compression and Smart Scan, which offloads processing from database servers to storage cells.
What Do Contribution Guidelines Say About Software Testing? (MSR 2025)Andre Hora
Software testing plays a crucial role in the contribution process of open-source projects. For example, contributions introducing new features are expected to include tests, and contributions with tests are more likely to be accepted. Although most real-world projects require contributors to write tests, the specific testing practices communicated to contributors remain unclear. In this paper, we present an empirical study to understand better how software testing is approached in contribution guidelines. We analyze the guidelines of 200 Python and JavaScript open-source software projects. We find that 78% of the projects include some form of test documentation for contributors. Test documentation is located in multiple sources, including CONTRIBUTING files (58%), external documentation (24%), and README files (8%). Furthermore, test documentation commonly explains how to run tests (83.5%), but less often provides guidance on how to write tests (37%). It frequently covers unit tests (71%), but rarely addresses integration (20.5%) and end-to-end tests (15.5%). Other key testing aspects are also less frequently discussed: test coverage (25.5%) and mocking (9.5%). We conclude by discussing implications and future research.
How to Batch Export Lotus Notes NSF Emails to Outlook PST Easily?steaveroggers
Migrating from Lotus Notes to Outlook can be a complex and time-consuming task, especially when dealing with large volumes of NSF emails. This presentation provides a complete guide on how to batch export Lotus Notes NSF emails to Outlook PST format quickly and securely. It highlights the challenges of manual methods, the benefits of using an automated tool, and introduces eSoftTools NSF to PST Converter Software — a reliable solution designed to handle bulk email migrations efficiently. Learn about the software’s key features, step-by-step export process, system requirements, and how it ensures 100% data accuracy and folder structure preservation during migration. Make your email transition smoother, safer, and faster with the right approach.
Read More:- https://www.esofttools.com/nsf-to-pst-converter.html
This presentation explores code comprehension challenges in scientific programming based on a survey of 57 research scientists. It reveals that 57.9% of scientists have no formal training in writing readable code. Key findings highlight a "documentation paradox" where documentation is both the most common readability practice and the biggest challenge scientists face. The study identifies critical issues with naming conventions and code organization, noting that 100% of scientists agree readable code is essential for reproducible research. The research concludes with four key recommendations: expanding programming education for scientists, conducting targeted research on scientific code quality, developing specialized tools, and establishing clearer documentation guidelines for scientific software.
Presented at: The 33rd International Conference on Program Comprehension (ICPC '25)
Date of Conference: April 2025
Conference Location: Ottawa, Ontario, Canada
Preprint: https://arxiv.org/abs/2501.10037
Adobe After Effects Crack FREE FRESH version 2025kashifyounis067
🌍📱👉COPY LINK & PASTE ON GOOGLE http://drfiles.net/ 👈🌍
Adobe After Effects is a software application used for creating motion graphics, special effects, and video compositing. It's widely used in TV and film post-production, as well as for creating visuals for online content, presentations, and more. While it can be used to create basic animations and designs, its primary strength lies in adding visual effects and motion to videos and graphics after they have been edited.
Here's a more detailed breakdown:
Motion Graphics:
.
After Effects is powerful for creating animated titles, transitions, and other visual elements to enhance the look of videos and presentations.
Visual Effects:
.
It's used extensively in film and television for creating special effects like green screen compositing, object manipulation, and other visual enhancements.
Video Compositing:
.
After Effects allows users to combine multiple video clips, images, and graphics to create a final, cohesive visual.
Animation:
.
It uses keyframes to create smooth, animated sequences, allowing for precise control over the movement and appearance of objects.
Integration with Adobe Creative Cloud:
.
After Effects is part of the Adobe Creative Cloud, a suite of software that includes other popular applications like Photoshop and Premiere Pro.
Post-Production Tool:
.
After Effects is primarily used in the post-production phase, meaning it's used to enhance the visuals after the initial editing of footage has been completed.
TestMigrationsInPy: A Dataset of Test Migrations from Unittest to Pytest (MSR...Andre Hora
Unittest and pytest are the most popular testing frameworks in Python. Overall, pytest provides some advantages, including simpler assertion, reuse of fixtures, and interoperability. Due to such benefits, multiple projects in the Python ecosystem have migrated from unittest to pytest. To facilitate the migration, pytest can also run unittest tests, thus, the migration can happen gradually over time. However, the migration can be timeconsuming and take a long time to conclude. In this context, projects would benefit from automated solutions to support the migration process. In this paper, we propose TestMigrationsInPy, a dataset of test migrations from unittest to pytest. TestMigrationsInPy contains 923 real-world migrations performed by developers. Future research proposing novel solutions to migrate frameworks in Python can rely on TestMigrationsInPy as a ground truth. Moreover, as TestMigrationsInPy includes information about the migration type (e.g., changes in assertions or fixtures), our dataset enables novel solutions to be verified effectively, for instance, from simpler assertion migrations to more complex fixture migrations. TestMigrationsInPy is publicly available at: https://github.com/altinoalvesjunior/TestMigrationsInPy.
Secure Test Infrastructure: The Backbone of Trustworthy Software DevelopmentShubham Joshi
A secure test infrastructure ensures that the testing process doesn’t become a gateway for vulnerabilities. By protecting test environments, data, and access points, organizations can confidently develop and deploy software without compromising user privacy or system integrity.
How Valletta helped healthcare SaaS to transform QA and compliance to grow wi...Egor Kaleynik
This case study explores how we partnered with a mid-sized U.S. healthcare SaaS provider to help them scale from a successful pilot phase to supporting over 10,000 users—while meeting strict HIPAA compliance requirements.
Faced with slow, manual testing cycles, frequent regression bugs, and looming audit risks, their growth was at risk. Their existing QA processes couldn’t keep up with the complexity of real-time biometric data handling, and earlier automation attempts had failed due to unreliable tools and fragmented workflows.
We stepped in to deliver a full QA and DevOps transformation. Our team replaced their fragile legacy tests with Testim’s self-healing automation, integrated Postman and OWASP ZAP into Jenkins pipelines for continuous API and security validation, and leveraged AWS Device Farm for real-device, region-specific compliance testing. Custom deployment scripts gave them control over rollouts without relying on heavy CI/CD infrastructure.
The result? Test cycle times were reduced from 3 days to just 8 hours, regression bugs dropped by 40%, and they passed their first HIPAA audit without issue—unlocking faster contract signings and enabling them to expand confidently. More than just a technical upgrade, this project embedded compliance into every phase of development, proving that SaaS providers in regulated industries can scale fast and stay secure.
Agentic AI Use Cases using GenAI LLM modelsManish Chopra
This document presents specific use cases for Agentic AI (Artificial Intelligence), featuring Large Language Models (LLMs), Generative AI, and snippets of Python code alongside each use case.
Landscape of Requirements Engineering for/by AI through Literature ReviewHironori Washizaki
Hironori Washizaki, "Landscape of Requirements Engineering for/by AI through Literature Review," RAISE 2025: Workshop on Requirements engineering for AI-powered SoftwarE, 2025.
Solidworks Crack 2025 latest new + license codeaneelaramzan63
Copy & Paste On Google >>> https://dr-up-community.info/
The two main methods for installing standalone licenses of SOLIDWORKS are clean installation and parallel installation (the process is different ...
Disable your internet connection to prevent the software from performing online checks during installation
Copy & Past Link 👉👉
http://drfiles.net/
When you say Xforce with GTA 5, it sounds like you might be talking about Xforce Keygen — a tool that's often mentioned in connection with cracking software like Autodesk programs.
BUT, when it comes to GTA 5, Xforce isn't officially part of the game or anything Rockstar made.
If you're seeing "Xforce" related to GTA 5 downloads or cracks, it's usually some unofficial (and risky) tool for pirating the game — which can be super dangerous because:
Join Ajay Sarpal and Miray Vu to learn about key Marketo Engage enhancements. Discover improved in-app Salesforce CRM connector statistics for easy monitoring of sync health and throughput. Explore new Salesforce CRM Synch Dashboards providing up-to-date insights into weekly activity usage, thresholds, and limits with drill-down capabilities. Learn about proactive notifications for both Salesforce CRM sync and product usage overages. Get an update on improved Salesforce CRM synch scale and reliability coming in Q2 2025.
Key Takeaways:
Improved Salesforce CRM User Experience: Learn how self-service visibility enhances satisfaction.
Utilize Salesforce CRM Synch Dashboards: Explore real-time weekly activity data.
Monitor Performance Against Limits: See threshold limits for each product level.
Get Usage Over-Limit Alerts: Receive notifications for exceeding thresholds.
Learn About Improved Salesforce CRM Scale: Understand upcoming cloud-based incremental sync.
Societal challenges of AI: biases, multilinguism and sustainabilityJordi Cabot
Towards a fairer, inclusive and sustainable AI that works for everybody.
Reviewing the state of the art on these challenges and what we're doing at LIST to test current LLMs and help you select the one that works best for you
Douwan Crack 2025 new verson+ License codeaneelaramzan63
Copy & Paste On Google >>> https://dr-up-community.info/
Douwan Preactivated Crack Douwan Crack Free Download. Douwan is a comprehensive software solution designed for data management and analysis.
Scaling GraphRAG: Efficient Knowledge Retrieval for Enterprise AIdanshalev
If we were building a GenAI stack today, we'd start with one question: Can your retrieval system handle multi-hop logic?
Trick question, b/c most can’t. They treat retrieval as nearest-neighbor search.
Today, we discussed scaling #GraphRAG at AWS DevOps Day, and the takeaway is clear: VectorRAG is naive, lacks domain awareness, and can’t handle full dataset retrieval.
GraphRAG builds a knowledge graph from source documents, allowing for a deeper understanding of the data + higher accuracy.
Adobe Photoshop Lightroom CC 2025 Crack Latest Versionusmanhidray
Copy & Past Lank 👉👉
http://drfiles.net/
Adobe Photoshop Lightroom is a photo editing and organization software application primarily used by photographers. It's designed to streamline workflows, manage large photo collections, and make adjustments to images in a non-destructive way. Lightroom is available across various platforms, including desktop, mobile (iOS and Android), and web, allowing for consistent editing and organization across devices.
Proactive Vulnerability Detection in Source Code Using Graph Neural Networks:...Ranjan Baisak
As software complexity grows, traditional static analysis tools struggle to detect vulnerabilities with both precision and context—often triggering high false positive rates and developer fatigue. This article explores how Graph Neural Networks (GNNs), when applied to source code representations like Abstract Syntax Trees (ASTs), Control Flow Graphs (CFGs), and Data Flow Graphs (DFGs), can revolutionize vulnerability detection. We break down how GNNs model code semantics more effectively than flat token sequences, and how techniques like attention mechanisms, hybrid graph construction, and feedback loops significantly reduce false positives. With insights from real-world datasets and recent research, this guide shows how to build more reliable, proactive, and interpretable vulnerability detection systems using GNNs.
1. gluent.com 1
Troubleshooting
Another
Complex
Performance
Issue
(Part
4)
Tanel
Põder
Gluent,
Inc.
http://gluent.com
http://blog.tanelpoder.com
2. gluent.com 2
Intro:
About
me
• Tanel
Põder
• Oracle
Database
Performance
geek
(18+
years)
• Exadata
Performance
geek
• Linux
Performance
geek
• Hadoop
Performance
geek
• CEO
&
co-‐founder:
Expert
Oracle
Exadata
book
(2nd edition
is
out
now!)
Instant
promotion
3. gluent.com 3
Gluent:
All
Enterprise
Data
Available
in
Hadoop!
GluentHadoop
Gluent
MSSQL
Tera-‐
data
IBM
DB2
Big
Data
Sources
Oracle
App
X
App
Y
App
Z
8. gluent.com 8
A
Data
Warehouse
data
loading/preparation
• A
large
Exadata
/
RAC
/
Oracle
11.2.0.3
reporting
environment
• Lots
of
parallel
CTAS
and
direct
path
loads
• High
concurrency,
high
parallelism
• Throughput
bad,
all
kinds
of
waits
showing
up:
• Other,
Cluster,
Configuration,
Application,
Concurrency,
User
I/O,
CPU
12. gluent.com 12
Wait
event
explanation
• buffer
busy
waits
• Buffer
is
physically
available
in
local
instance,
but
is
pinned
by
some
other
local
session
(in
incompatible
mode)
• gc
buffer
busy
acquire
• Someone
has
already
requested
the
remote
block
into
local
instance
• gc
buffer
busy
release
• Block
is
local,
but
has
to
be
shipped
out
to
a
remote
instance
first
(as
someone
in
the
remote
instance
had
requested
it
first)
• enq:
TX
-‐ allocate
ITL
entry
• Can't
change
block
as
all
the
block's
ITL
entries
are
held
by
others
• Can't
dynamically
add
more
ITLs
(no
space
in
block)
15. gluent.com 15
Which
object?
• Translate
file#,
block#
into
segment
names/numbers:
• Assumes
the
blocks
are
in
buffer
cache
SQL> SELECT objd data_object_id, COUNT(*)
FROM v$bh
WHERE file#=1
AND block# IN
( 279634,279635,279629,279632,279638,279636,279613,279662,
279628,279608,279653,279627,279642,279637,279643,279631,
279646,279622,279582,279649
)
GROUP BY objd ORDER BY 2 DESC;
DATA_OBJECT_ID COUNT(*)
-------------- ----------
8 113 All
blocks
belong
to
a
segment
with
data_object_id
=
8
16. gluent.com 16
What
is
segment
#8?
• Look
up
the
object
names:
• Using
DBA_OBJECTS.DATA_OBJECT_ID
-‐>
OBJECT_ID
SQL> @doid 8
object_id owner object_name O_PARTITION object_type
--------- --------- ----------------- ------------- -----------
8 SYS C_FILE#_BLOCK# CLUSTER
14 SYS SEG$ TABLE
13 SYS UET$ TABLE
This
segment
#8
is
a
cluster
which
contains
SEG$
(DBA_SEGMENTS)
and
UET$
(DBA_EXTENTS),
but
UET$
isn't
used
anymore
thanks
to
LMT
tablespaces.
That
leaves
SEG$
17. gluent.com 17
Write
contention
on
SEG$?
• SEG$ is
modified
when:
1. A
new
segment
is
created
(table,
index,
partition,
etc)
2. An
existing
segment
extends
3. A
segment
is
dropped
/
moved
4. Parallel
direct
path
loads
(CTAS)
can
also
create
many
temporary
segments
(one
per
PX
slave)
• …and
merge
these
into
final
segment
in
the
end
of
loading
More
about
this
later…
19. gluent.com 19
AWR
1
• No
CPU
starvation
evident
(checked
all
RAC
nodes)
Top 5 Timed Foreground Events
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Event Waits Time(s) (ms) time Wait Class
---------------------------- ----------- -------- ----- ------ ----------
DB CPU 165,199 37.0
gc buffer busy acquire 1,260,128 68,399 54 15.3 Cluster
enq: TX - allocate ITL entry 354,496 40,583 114 9.1 Configurat
direct path write temp 4,632,946 37,455 8 8.4 User I/O
gc buffer busy release 213,750 22,683 106 5.1 Cluster
Host CPU (CPUs: 160 Cores: 80 Sockets: 8)
~~~~~~~~ Load Average
Begin End %User %System %WIO %Idle
--------- --------- --------- --------- --------- ---------
5.20 42.76 26.0 3.3 0.0 69.8
20. gluent.com 20
AWR
2
• AWR
also
listed
a
SEG$
insert
as
a
top
SQL:
Elapsed Elapsed Time
Time (s) Executions per Exec (s) %Total %CPU %IO SQL Id
----------- ------------- ------------- ------ ----- ----- -------------
100,669.1 4,444 22.65 22.6 .5 .0 g7mt7ptq286u7
insert into seg$ (file#,block#,type#,ts#,blocks,extents,minexts,maxexts,
extsize,extpct,user#,iniexts,lists,groups,cachehint,hwmincr, spare1,
scanhint, bitmapranges) values (:1,:2,:3,:4,:5,:6,:7,:8,:9,:10,:11,:12,
:13,:14,:15,:16,DECODE(:17,0,NULL,:17),:18,:19)
SNAP_ID NODE SQL_ID EXECS AVG_ETIME AVG_LIO AVG_PIO
------- ---- ------------- ------ ---------- -------- --------
24263 3 g7mt7ptq286u7 552 70.227 880.6 .0
• AWR
on
another
node
(same
insert
into
seq$):
Super-‐slow
single
row
inserts
into
SEG$
???
24. gluent.com 24
Checkpoint
1. Lots
of
parallel
CTAS
statements,
seem
to
wait
for
various
RAC
gc
buffer
busy
events
and
enq:
TX
– ITL
contention
2. CTAS
statements
create
new
segments,
new
segments
cause
inserts
into
SEG$
3. AWR
and
SQL
Trace
report
super-‐long
elapsed
times
for
single-‐row
SEG$
inserts
4. It's
actually
the
recursive
SEG$
inserts
that
wait
for
the
gc
buffer
busy and
enq:
TX
– ITL
contention
events
26. gluent.com 26
Multiple
layers
of
locking
&
coherency
ITL
2ITL
1
data2data1ccLH c2c1
ITL
4ITL
3
KCBH
-‐ block
common
header
KTBBH
-‐ transaction
common
header
KDBH
-‐ Data
header
Data block
Row
Level
0:
VOS/service
layer
-‐ Cache
buffers
chains
latch
Level
1:
Cache
layer
Buffer
pin
-‐ local
pin
-‐ global
cache
pin
Level
2:
Transaction
layer
-‐ ITL
entry
-‐ row
lock
byte
You
must
pin
(and
retrieve)
a
buffer
before
you
can
change
or
examine
it
What
if
you
pin
a
buffer
and
find
all
its
ITL
slots
busy?
(with
no
space
to
add
mode)
The
session
will
release
the
pin
and
start
waiting
for
enq:
TX
– ITL
contention event
And
re-‐get/pin
again
when
TX
–
ITL
wait
is
over!
28. gluent.com 28
OBJ
#9
and
#14
• Look
up
the
object
names:
• Using
DBA_OBJECTS.DATA_OBJECT_ID
-‐>
OBJECT_ID
SQL> @oid 9,14
owner object_name object_type
--------------- --------------------- ------------------
SYS I_FILE#_BLOCK# INDEX
SYS SEG$ TABLE
The
object
#9
is
a
cluster
index
for
cluster
C_FILE#_BLOCK#
(oid #8
on
a
previous
slide
SQL> @bclass 4
CLASS UNDO_SEGMENT_ID
------------------ ---------------
segment header
Bclass
#4
is
a
segment
header
block
that
also
stores
freelist
information
30. gluent.com 30
Conclusion
from
gathered
evidence
1. Lots
of
concurrent
+
highly
parallel
CTAS
statements
2. Each
PX
slave
created
its
own
temporary
segments
(in
spikes
when
PX
query
started
up)
3. Spikes
of
concurrent SEG$
inserts
simultaneously
on
4
RAC
nodes
4. SEG$
cluster
blocks
out
of
ITL
entries
5. This
caused
global
cache/TX
locking
trashing
– long
loops
of
unsuccessful
attempts
to
pin
and
insert
into
SEG$
blocks
31. gluent.com 31
Also
worth
noting
1. Resource
manager
a
possible
factor
• Plenty
of
resmgr:cpu quantum waits
• Lock
holders,
buffer
pin
holders
might
have
gone
to
sleep
– while
holding
the
pins/locks
under
contention
1. Freelist-‐based
block
space
allocation
• SEG$
is
a
SYS-‐owned
freelist-‐managed
index
cluster
• Many
cluster
table
blocks
walked
through
when
searching
for
space
2. ASH
doesn't
always
show
recursive
SQL
IDs
• Attributes
waits
to
parent
(top
level)
statement
SQL
ID
instead
• ASH
p1,
p2,
p3,
current_obj#
columns
are
useful
for
drilldown
32. gluent.com 32
How
to
fix
it?
• Do
it
less!
• What?
• Do
not
insert/update
SEG$
entries
so
frequently!
• How?
• Do
not
allow
parallel
direct
load
insert
to
create
a
temporary
loading
segment
for
each
slave (and
inserted
partition)!
• How?
• Make
sure
that
High
Water
Mark
Brokering
is
used!
• One
temporary
segment
-‐ thus
one
SEG$
insert/update/delete
-‐per
query
(and
inserted
partition)
=
much
less
SEG$
contention.
• More
in
following
slides
…
33. gluent.com 33
Why
is
High-‐Water-‐Mark
Brokering
needed?
• A
historical
problem
with
large
uniform
extent
sizes:
1. Each
data
loading
PX
slave
allocated
its
own
extents
(to
its
private
temporary
segment)
when
loading
data
2. When
the
load
was
completed
the
private
temporary
segments
were
merged
to
one
final
table
segment
3. The
last extent
of
each
private
segment
possibly
ended
up
not
fully
used
• Some
were
almost
full,
some
almost
empty
– half-‐empty
on
average
4. Wastage
=
0.5
x
extent_size x
PX_slaves
• The
more
PX
slaves,
the
more
wastage
• The
bigger
extent,
the
bigger
wastage
• References:
• https://blogs.oracle.com/datawarehousing/entry/parallel_load_uniform
_or_autoallocate
• http://www.oracle.com/technetwork/database/bi-‐
datawarehousing/twpdwbestpractices-‐for-‐loading-‐11g-‐404400.pdf
Problem
Solved
by
using
High-‐Water-‐Mark
Brokering!
But…
34. gluent.com 34
Parallel
Data
Loading
and
Large
Extents
– space
wastage?
SQL> @seg sales_parallel_ctas
SEG_MB OWNER SEGMENT_NAME SEG_TABLESPACE_NAME
------- ------- ------------------------- --------------------
9472 TANEL SALES_PARALLEL_CTAS TANEL_DEMO_LARGE
8896 TANEL SALES_PARALLEL_CTAS_FIX TANEL_DEMO_LARGE
SQL>SELECT * FROM TABLE(space_tools.get_space_usage('TANEL', 'SALES_PARALLEL_CTAS','TABLE'));
---------------------------------------------------------------------------------------
Full blocks /MB 1134669 8865
Unformatted blocks/MB 0 0
Free Space 0-25% 0 0
Free Space 25-50% 0 0
Free Space 50-75% 0 0
Free Space 75-100% 72963 570
SQL>SELECT * FROM TABLE(space_tools.get_space_usage('TANEL', 'SALES_PARALLEL_CTAS_FIX’,'TABLE'))
----------------------------------------------------------------------------------------
Full blocks /MB 1134669 8865
Unformatted blocks/MB 0 0
Free Space 0-25% 0 0
Free Space 25-50% 0 0
Free Space 50-75% 0 0
Free Space 75-100% 0 0
An
identical
table
PX
CTAS
in
the
same
tablespace
with
64MB
uniform
extent
(upper
table
6.4%
bigger)
570
MB
worth
of
blocks
unused
in
the
segment?
PX
DOP
16
x
64
*
~0.5
=
512MB
Same
table
loaded
with
INSERT
/*+
APPEND
*/
PX
DOP
16.
No
empty
blocks
35. gluent.com 35
Parallel
Data
Loading
and
Large
Extents
– HWM
brokering
• Instead
of
each
PX
slave
working
on
their
own
separate
segment…
1. Allocate
and
extend
only
one
segment
2. Slaves
allocate
space
within
the
single
segment
as
needed
3. No
“holes”
in
tables,
no
space
wastage
problem
anymore!
4. Serialized
via
the
HV
-‐ Direct
Loader
High
Water
Mark enqueue
• Parameter:
• _insert_enable_hwm_brokered =
true
(default)
• “during
parallel
inserts
high
water
marks
are
brokered”
• Problem:
• In
Oracle
11.2
(including
11.2.0.4)
this
only
works
with
INSERT
APPENDs
• …and
not
for
CTAS
nor
ALTER
TABLE
MOVE
• (in
one
case
it
worked
for
CTAS,
only
if
the
target
table
was
partitioned)
36. gluent.com 36
Parallel
Data
Loading
and
Large
Extents
– HWM
brokering
SQL> @fix 6941515
BUGNO VALUE DESCRIPTION IS_DEFAULT
------- ------ ------------------------------------------------------------ ----------
6941515 0 use high watermark brokering for insert into single segment 1
SQL> alter session set "_fix_control"='6941515:ON';
Session altered.
• Actually
this
is
a
bug,
and
Oracle
has
fixed
it
long
time
ago
• But
bugfix 6941515
is
not
enabled
by
default!
• After
enabling
the
bug-‐fix,
parallel
CTAS
and
parallel
ALTER
TABLE
MOVE
also
use
HWM
brokering…
• Unfortunately
it
didn’t
work
with
ALTER
TABLE
MOVE
if
moving
the
whole
table
if
the
table
was
partitioned.
DBMS_SPACE
/
space_tools helps
to
measure
this!
Thanks
to
Alex
Fatkulin for
spotting
this!
38. gluent.com 38
Case
Study:
Data
Loading
Performance
– Example
1
• Parallel
Create
Table
As
Select
from
Hadoop
to
Exadata
• Buffer
busy
waits
dominating
the
response
time
profile
(SQL
Monitoring)
http://blog.tanelpoder.com/2013/11/06/diagnosing-‐buffer-‐busy-‐waits-‐with-‐the-‐
ash_wait_chains-‐sql-‐script-‐v0-‐2/
39. gluent.com 39
Data
Loading
Performance:
ashtop.sql
SQL> @ash/ashtop session_state,event,p2text,p2,p3text,p3 sql_id='3rtbs9vqukc71'
"timestamp'2013-10-05 01:00:00'" "timestamp'2013-10-05 03:00:00'"
%This SESSION EVENT P2TEXT P2 P3TEXT P3
------ ------- --------------------------------- --------- -------- -------- -------
57% WAITING buffer busy waits block# 2 class# 13
31% ON CPU file# 0 size 524288
1% WAITING external table read file# 0 size 524288
1% ON CPU block# 2 class# 13
0% ON CPU consumer 12573 0
0% WAITING cell smart file creation 0 0
0% WAITING DFS lock handle id1 3 id2 2
0% ON CPU file# 41 size 41
0% WAITING cell single block physical read diskhash# 4695794 bytes 8192
0% WAITING control file parallel write block# 1 requests 2
0% WAITING control file parallel write block# 41 requests 2
0% WAITING change tracking file synchronous blocks 1 0
0% WAITING control file parallel write block# 42 requests 2
0% WAITING db file single write block# 1 blocks 1
0% ON CPU 0 0
• Break
the
(buffer
busy)
wait
events
down
by
block#/class#
block
#2
?
40. gluent.com 40
Case
Study:
Data
Loading
Performance
– Example
2
• Lots
of
serial
sessions
doing
single
row
inserts
– on
multiple
RAC
nodes
• “buffer
busy
waits”
and
“gc
buffer
busy
acquire”
waits
• file#
=
6
• block#
=
2
• class#
=
13
SQL> @bclass 13
CLASS UNDO_SEGMENT_ID
------------------ ---------------
file header block
SQL> select file#, block#, status
from v$bh where class# = 13;
FILE# BLOCK# STATUS
---------- ---------- ----------
5 2 xcur
4 2 xcur
...
Block dump from disk:
buffer tsn: 7 rdba: 0x00000002 (1024/2)
scn: 0x0000.010b6f9b seq: 0x02 flg: 0x04 tail:
0x6f9b1d02
frmt: 0x02 chkval: 0xd587 type: 0x1d=KTFB
Bitmapped File Space Header
Hex dump of block: st=0, typ_found=1
A
single
space
allocation
contention
point
per
LMT
file.
Bigfile
tablespaces
have
only
one
file!
42. gluent.com 42
Case
Study:
Parallel
Data
Loading
Performance
• Reduce
demand
on
the
LMT
bitmap
blocks
• By
allocating
bigger
extents
at
a
time
• Use
large
uniform
extents
for
fast-‐growing
tables(paces)
• The
customer
went
with
64MB
uniform
extent
size
• The
autoallocate extent
management
is
suboptimal
for
very
large
segments
• As
there’d
be
1
LMT
space
management
bit
per
64kB
regardless
of
your
INITIAL
extent
size
at
the
segment
level
• The
_partition_large_extents=
TRUE
doesn’t
change
this
either
• Large
uniform
extents
are
better
for
data
loading
and
scanning!