Session I/O with Audit Duration (vsessioa.sql)
What This Script Does
Section titled “What This Script Does”This script analyzes session I/O statistics enhanced with accurate session duration information from the audit trail and calculates logical reads per second. By correlating session I/O metrics with audit session timestamps, it provides more accurate performance analysis than scripts relying solely on V$SESSION logon_time. This is essential for understanding session performance patterns, identifying resource-intensive sessions, and calculating meaningful I/O rates.
The Script
Section titled “The Script”rem vsessioa.sqlremset linesize 132remttitle 'Session I/O'remcol sid format 999 heading 'SID'col username format a12 heading 'USERNAME'col osuser format a12 heading 'OSUSER'col block_gets format 99999999 heading 'BLOCK|GETS'col consistent_gets format 999999999 heading 'CONSISTENT|GETS'col physical_reads format 99999999 heading 'PHYSICAL|READS'col block_changes format 99999999 heading 'BLOCK|CHANGES'col consistent_changes format 999999999 heading 'CONSISTENT|CHANGES'col duration format a8 heading 'DURATION'col log_sec format 99999 heading 'LOG|READ|SEC'remselect i.sid, s.username, s.osuser, to_char( trunc(sysdate) + ( sysdate - a.timestamp ), 'hh24:mi:ss' ) duration, block_gets, consistent_gets, ( block_gets + consistent_gets ) / ( ( sysdate - a.timestamp ) * 86400 ) log_sec, physical_reads, block_changes, consistent_changes from sys.dba_audit_session a, v$session s, v$sess_io i where i.sid = s.sid and a.sessionid = s.audsid and s.username like nvl(upper('&user'),'%') order by i.sid;remset linesize 80Key Features
Section titled “Key Features”- Accurate Duration Calculation: Uses audit trail timestamps for precise session duration
- I/O Rate Analysis: Calculates logical reads per second based on actual session duration
- Comprehensive I/O Metrics: Shows all major I/O statistics per session
- User Filtering: Supports filtering by specific usernames or patterns
- Resource Intensity Analysis: Identifies high I/O sessions and patterns
- Performance Baseline: Establishes session-level performance baselines
- Audit Trail Integration: Leverages audit information for enhanced analysis
@vsessioa.sqlInput Parameters:
- user: Username pattern (use % for all users, or specific username)
Required Privileges
Section titled “Required Privileges”SELECT on SYS.DBA_AUDIT_SESSIONSELECT on V$SESSIONSELECT on V$SESS_IOSample Output
Section titled “Sample Output” Session I/O
SID USERNAME OSUSER DURATION BLOCK CONSISTENT LOG PHYSICAL BLOCK CONSISTENT GETS GETS READ READS CHANGES CHANGES SEC--- ------------ ------------ -------- -------- ------------- ---- -------- -------- -------------123 HR_USER jsmith 02:34:56 123456 9876543210 1078 45678 234567 1234567890234 SALES_APP rjones 01:45:23 567890 5432109876 2890 89012 345678 2345678901345 BATCH_USER batch 04:12:45 2345678 19876543210 1345 234567 1234567 9876543210456 REPORT_USR sreports 00:23:45 89012 987654321 7234 5678 45678 123456789567 DBA_USER admin 12:34:56 45678 123456789 34 1234 2345 12345678Key Output Columns
Section titled “Key Output Columns”- SID: Session ID
- USERNAME: Database username
- OSUSER: Operating system username
- DURATION: Session duration in HH:MI:SS format
- BLOCK GETS: Number of blocks read in current mode (for modifications)
- CONSISTENT GETS: Number of blocks read in consistent mode (for queries)
- LOG READ SEC: Logical reads per second (block gets + consistent gets) / duration
- PHYSICAL READS: Number of blocks read from disk
- BLOCK CHANGES: Number of blocks modified
- CONSISTENT CHANGES: Number of consistent read blocks that were changed
Understanding Session I/O Metrics
Section titled “Understanding Session I/O Metrics”I/O Operation Types
Section titled “I/O Operation Types”Block Gets vs. Consistent Gets
Section titled “Block Gets vs. Consistent Gets”-- Block Gets (Current Mode):-- Used for INSERT, UPDATE, DELETE operations-- Reads most current version of blocks-- Higher values indicate DML-heavy sessions-- Associated with transaction processing-- Consistent Gets (Consistent Read Mode):-- Used for SELECT operations-- Reads consistent point-in-time data-- Higher values indicate query-heavy sessions-- May involve undo data reconstructionPerformance Rate Analysis
Section titled “Performance Rate Analysis”Logical Reads Per Second
Section titled “Logical Reads Per Second”-- I/O rate interpretation:-- <100 reads/sec: Low activity session-- 100-1000 reads/sec: Moderate activity-- 1000-5000 reads/sec: High activity-- >5000 reads/sec: Very high activity (investigate)Session Duration Context
Section titled “Session Duration Context”-- Duration-based analysis:-- Short sessions (<1 hour): May be batch operations-- Medium sessions (1-8 hours): Typical user sessions-- Long sessions (>8 hours): Long-running processes-- Very long sessions (>24 hours): Potential connection leaksCommon Use Cases
Section titled “Common Use Cases”-
Session Performance Analysis
- Identify resource-intensive sessions
- Analyze session I/O efficiency patterns
- Support individual session optimization
- Monitor user activity patterns
-
Capacity Planning
- Assess user resource consumption trends
- Plan infrastructure scaling based on usage
- Understand peak usage characteristics
- Support hardware sizing decisions
-
Application Monitoring
- Monitor application session behavior
- Identify performance bottlenecks by user type
- Support application optimization efforts
- Validate application efficiency
-
Security and Compliance
- Track user database access patterns
- Monitor unusual activity levels
- Support audit trail analysis
- Identify potential security issues
Advanced Analysis
Section titled “Advanced Analysis”Session Activity Patterns
Section titled “Session Activity Patterns”User Type Analysis
Section titled “User Type Analysis”-- Analyze patterns by user type:-- Interactive users: Variable I/O, moderate duration-- Batch processes: High I/O, predictable duration-- Application connections: Consistent patterns-- Administrative sessions: Variable, often high privilegeTemporal Analysis
Section titled “Temporal Analysis”-- Time-based pattern analysis:-- Business hours vs. off-hours activity-- Peak usage period identification-- Session duration distribution-- I/O rate variance over timePerformance Efficiency Assessment
Section titled “Performance Efficiency Assessment”I/O Efficiency Metrics
Section titled “I/O Efficiency Metrics”-- Calculate additional efficiency metrics:-- Physical read ratio: physical_reads / (block_gets + consistent_gets)-- Change ratio: block_changes / block_gets-- Read/write ratio: consistent_gets / block_gets-- Cache hit efficiency assessmentResource Utilization Correlation
Section titled “Resource Utilization Correlation”-- Correlate with other metrics:-- CPU usage per session-- Memory allocation patterns-- Lock and latch usage-- Wait event correlationsOptimization Applications
Section titled “Optimization Applications”Session-Level Optimization
Section titled “Session-Level Optimization”High I/O Session Investigation
Section titled “High I/O Session Investigation”-- For sessions with high logical reads per second:-- Analyze SQL statements being executed-- Review execution plans for inefficiencies-- Identify missing or suboptimal indexes-- Consider query optimization opportunitiesLong-Running Session Analysis
Section titled “Long-Running Session Analysis”-- For sessions with extended duration:-- Investigate if duration is appropriate-- Check for connection pooling issues-- Analyze transaction scope and design-- Consider session state optimizationApplication Performance Tuning
Section titled “Application Performance Tuning”Application Pattern Optimization
Section titled “Application Pattern Optimization”-- Application-level improvements:-- Connection pooling optimization-- Transaction scope reduction-- Query efficiency improvements-- Batch processing optimizationUser Experience Enhancement
Section titled “User Experience Enhancement”-- User experience improvements:-- Response time optimization-- Resource usage balancing-- Peak load distribution-- Service level optimizationFiltering Examples
Section titled “Filtering Examples”Specific User Analysis
Section titled “Specific User Analysis”-- Analyze specific user activity:Enter value for user: HR_USERApplication User Pattern
Section titled “Application User Pattern”-- Analyze application users:Enter value for user: %APP%All User Analysis
Section titled “All User Analysis”-- Comprehensive user analysis:Enter value for user: %System User Exclusion
Section titled “System User Exclusion”-- Exclude system users:Enter value for user: %-- Then filter out SYS, SYSTEM, etc. in WHERE clauseIntegration with Audit Analysis
Section titled “Integration with Audit Analysis”Audit Trail Correlation
Section titled “Audit Trail Correlation”Session Lifecycle Analysis
Section titled “Session Lifecycle Analysis”-- Enhanced analysis with audit data:-- Session start and end times-- Login success/failure correlation-- Privilege usage tracking-- Resource consumption accountabilityCompliance Reporting
Section titled “Compliance Reporting”-- Compliance support:-- User activity documentation-- Resource usage accountability-- Access pattern analysis-- Audit trail completeness validationHistorical Analysis
Section titled “Historical Analysis”Trend Identification
Section titled “Trend Identification”-- Long-term analysis capabilities:-- User activity evolution over time-- Resource consumption growth patterns-- Peak usage period identification-- Capacity planning data collectionPerformance Baseline Establishment
Section titled “Performance Baseline Establishment”-- Baseline development:-- Normal user activity levels-- Expected I/O rates by user type-- Typical session duration patterns-- Performance benchmark establishmentTroubleshooting Applications
Section titled “Troubleshooting Applications”High Resource Usage Investigation
Section titled “High Resource Usage Investigation”Excessive I/O Sessions
Section titled “Excessive I/O Sessions”-- Investigation steps for high I/O:-- Identify specific SQL causing high reads-- Analyze query execution plans-- Review indexing strategies-- Consider query optimizationLong Duration Sessions
Section titled “Long Duration Sessions”-- Long session investigation:-- Check for appropriate business justification-- Analyze transaction design efficiency-- Review connection management practices-- Consider session state optimizationPerformance Issues Resolution
Section titled “Performance Issues Resolution”Response Time Problems
Section titled “Response Time Problems”-- Response time optimization:-- Correlate I/O rates with response times-- Identify bottleneck sessions-- Optimize resource-intensive operations-- Implement session-level tuningCapacity Issues
Section titled “Capacity Issues”-- Capacity problem resolution:-- Identify peak usage contributors-- Plan workload distribution-- Optimize resource allocation-- Consider infrastructure scalingBest Practices
Section titled “Best Practices”Regular Monitoring
Section titled “Regular Monitoring”Monitoring Schedule
Section titled “Monitoring Schedule”-- Monitoring frequency:-- Real-time during peak periods-- Daily session activity reviews-- Weekly trend analysis-- Monthly capacity assessmentsAlert Criteria
Section titled “Alert Criteria”-- Alert thresholds:-- Logical reads per second > 5000-- Session duration > expected maximums-- Unusual activity patterns-- Resource consumption spikesPerformance Optimization
Section titled “Performance Optimization”Systematic Approach
Section titled “Systematic Approach”-- Optimization methodology:-- Identify highest impact sessions-- Analyze root causes systematically-- Implement targeted optimizations-- Validate improvement effectivenessPreventive Measures
Section titled “Preventive Measures”-- Prevention strategies:-- Regular performance health checks-- Proactive capacity planning-- Application design standards-- User education and guidelinesRelated Scripts
Section titled “Related Scripts”- vsessio.sql - Session I/O without audit correlation
- vuserbig.sql - Large user sessions analysis
- vsession.sql - Comprehensive session analysis
- vmyio.sql - Current session I/O analysis
Security Considerations
Section titled “Security Considerations”Audit Trail Dependency
Section titled “Audit Trail Dependency”Audit Configuration Requirements
Section titled “Audit Configuration Requirements”-- Required audit settings:-- AUDIT_TRAIL parameter must be enabled-- Session auditing must be configured-- Sufficient audit trail storage-- Regular audit trail maintenanceData Privacy
Section titled “Data Privacy”-- Privacy considerations:-- User activity visibility-- Resource usage disclosure-- Audit data sensitivity-- Access control requirementsSummary
Section titled “Summary”This script is essential for:
- Session Performance Analysis - Detailed analysis of session I/O patterns with accurate duration calculations
- Resource Monitoring - Understanding user resource consumption patterns and trends
- Capacity Planning - Supporting infrastructure planning with detailed usage data
- Application Optimization - Identifying and optimizing resource-intensive application sessions
- Audit Integration - Leveraging audit trail data for enhanced session analysis and accountability