447 lines
27 KiB
SQL
447 lines
27 KiB
SQL
SET HEA ON LIN 2490 PAGES 100 TAB OFF FEED OFF ECHO OFF VER OFF TRIMS ON TRIM ON TI OFF TIMI OFF LONG 240000 LONGC 2400 NUM 20 SERVEROUT OFF;
|
|
SET PAGES 300 LONGC 120;
|
|
DEF aas_threshold = '0.3';
|
|
--
|
|
COL sql_type FOR A4 HEA '.|SQL|Type';
|
|
COL sql_hv FOR A5 HEA 'SQL|HV';
|
|
COL sql_id FOR A13 TRUNC;
|
|
COL row_number NOPRI;
|
|
COL sql_plan_hash_value FOR 9999999999 HEA 'Plan|Hash|Value';
|
|
COL aas_db FOR 9,990.000 HEA 'DB|Load(aas)';
|
|
COL aas_cpu FOR 9,990.000 HEA 'CPU|Load(aas)';
|
|
COL aas_io FOR 9,990.000 HEA 'I/O|Load(aas)';
|
|
COL sessions FOR 9990 HEA 'Dist|Sess';
|
|
COL sql_text FOR A90 TRUNC HEA 'SQL Text';
|
|
COL timed_event FOR A35 TRUNC HEA 'Timed Event';
|
|
COL pdb_name FOR A30 TRUNC HEA 'PDB Name';
|
|
COL module FOR A25 TRUNC HEA 'Module';
|
|
COL pdb_name_module FOR A30 TRUNC HEA 'PDB Name or Module';
|
|
COL version_count FOR 9990 HEA 'Ver|Cnt';
|
|
COL has_baseline FOR A2 HEA 'BL';
|
|
COL has_profile FOR A2 HEA 'PR';
|
|
COL has_patch FOR A2 HEA 'PA';
|
|
--
|
|
BREAK ON REPORT ON sql_type SKIP 1 DUPL;
|
|
COMPUTE SUM OF aas_db aas_cpu aas_io ON REPORT;
|
|
COMPUTE SUM OF aas_db aas_cpu aas_io ON sql_type;
|
|
--
|
|
PRO
|
|
PRO TOP Active SQL as per Average Active Sessions (AAS) on Timed Event for last &&cs_minutes. minute(s)
|
|
PRO ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
WITH
|
|
FUNCTION application_category (
|
|
p_sql_text IN VARCHAR2,
|
|
p_command_name IN VARCHAR2 DEFAULT NULL
|
|
)
|
|
RETURN VARCHAR2
|
|
IS
|
|
k_appl_handle_prefix CONSTANT VARCHAR2(30) := CHR(37)||'/*'||CHR(37);
|
|
k_appl_handle_suffix CONSTANT VARCHAR2(30) := CHR(37)||'*/'||CHR(37);
|
|
BEGIN
|
|
IF p_sql_text LIKE k_appl_handle_prefix||'Transaction Processing'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'addTransactionRow'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'checkEndRowValid'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'checkStartRowValid'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'deleteValue'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'exists'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'Fetch commit by idempotency token'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'Fetch latest transactions for cache'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'Find lower commit id for transaction cache warm up'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'findMatchingRow'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'getMaxTransactionCommitID'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'getNewTransactionID'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'getTransactionProgress'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'lockForCommit'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'lockKievTransactor'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'putBucket'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'readTransactionsSince'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'recordTransactionState'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'setValue'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'SPM:CP'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'updateIdentityValue'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'updateNextKievTransID'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'updateTransactorState'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'upsert_transactor_state'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'writeTransactionKeys'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'QueryTransactorHosts'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'WriteBucketValues'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'batch commit'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'batch mutation log'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'fetchAllIdentities'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'fetch_epoch'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'readFromTxorStateBeginTxn'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'readOnlyBeginTxn'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'validateTransactorState'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'getDataStoreMaxTransaction'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'legacyGetDataStoreMaxTransaction'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'isPartitionDropDisabled'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'getWithVersionOffsetSql'||k_appl_handle_suffix
|
|
OR LOWER(p_sql_text) LIKE CHR(37)||'lock table kievtransactions'||CHR(37)
|
|
--
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'Set ddl lock timeout for session'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'delete.leases'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'delete.workflow_instances'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'delete.step_instances'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'delete.historical_assignments'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'delete.workflow_definitions'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'delete.step_definitions'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'delete.leases_types'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'getForUpdate.dataplane_alias'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'insert.leases_types'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'insert.leases'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'insert.workflow_instances'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'insert.step_instances'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'insert.historical_assignments'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'insert.workflow_definitions'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'insert.step_definitions'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'update.dataplane_alias'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'update.leases'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'update.workflow_instances'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'update.step_instances'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'update.historical_assignments'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'update.workflow_definitions'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'Drop partition'||k_appl_handle_suffix
|
|
THEN RETURN 'TP'; /* Transaction Processing */
|
|
--
|
|
ELSIF p_sql_text LIKE k_appl_handle_prefix||'Read Only'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'bucketIndexSelect'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'bucketKeySelect'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'bucketValueSelect'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'countTransactions'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'Fetch snapshots'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'Get system time'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'getAutoSequences'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'getNextIdentityValue'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'getValues'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'Lock row Bucket_Snapshot'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'longFromDual'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'performContinuedScanValues'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'performFirstRowsScanQuery'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'performScanQuery'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'performSnapshotScanQuery'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'performStartScanValues'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'selectBuckets'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'Fetch latest revisions'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'Fetch max sequence for'||k_appl_handle_suffix -- streaming
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'Fetch partition interval for'||k_appl_handle_suffix -- streaming
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'Find High value for'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'Find partitions for'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'Init lock name for snapshot'||k_appl_handle_suffix -- snapshot
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'List snapshot tables.'||k_appl_handle_suffix -- snapshot
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'Tail read bucket'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'performSegmentedScanQuery'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'listArchiveStatusByIndexName'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'listAssignmentsByIndexName'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'listHosts'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'updateHost'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'updateArchiveStatus'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'updateOperationLock'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'get KIEVWORKFLOWS table indexes'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'GetOldestLsn'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'GetStreamRecords'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'Check if another workflow is running'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'Delete old workflows from'||k_appl_handle_suffix
|
|
--
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'getFutureWorkflowDefinition'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'getPriorWorkflowDefinition'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'enumerateLeases'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'enumerateLeaseTypes'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'getHistoricalAssignments'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'getAllWorkflowDefinitions'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'getVersionHistory'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'getInstances'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'Find interval partitions for schema'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'getStepInstances'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'getOldestGcWorkflowInstance'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'getNextRecordID'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'get.dataplane_alias'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'getLeaseNonce'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'get.leases_types'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'get.leases'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'get.workflow_instances'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'getByKey.workflow_instances'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'getRecordId.workflow_instances'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'getLast.historical_assignments'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'get.historical_assignments'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'isPartitionDropDisabled'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'Check if there are active rows for partition'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'getRunningInstancesCount'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'get.workflow_definitions'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'getLatestWorkflowDefinition'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'getLast.step_instances'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'get.workflow_instances'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'get.step_instances'||k_appl_handle_suffix
|
|
THEN RETURN 'RO'; /* Read Only */
|
|
--
|
|
ELSIF p_sql_text LIKE k_appl_handle_prefix||'Background'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'Bootstrap snapshot table Kiev_S'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'bucketIdentitySelect'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'checkMissingTables'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'countAllBuckets'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'countAllRows'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'countKievTransactionRows'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'countKtkRows'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'Delete garbage'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'Delete rows from'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'deleteBucketGarbage'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'enumerateSequences'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'Fetch config'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'fetch_leader_heartbeat'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'gcEventMaxId'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'gcEventTryInsert'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'Get txn at time'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'get_leader'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'getCurEndTime'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'getDBSchemaVersion'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'getEndTimeOlderThan'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'getGCLogEntries'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'getMaxTransactionOlderThan'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'getSchemaMetadata'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'getSupportedLibVersions'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'hashBucket'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'hashSnapshot'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'Populate workspace'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'populateBucketGCWorkspace'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'primeTxCache'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'readOnlyRoleExists'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'Row count between transactions'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'secondsSinceLastGcEvent'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'sync_leadership'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'Test if table Kiev_S'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'Update snapshot metadata'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'update_heartbeat'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'validateIfWorkspaceEmpty'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'verify_is_leader'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'Checking existence of Mutation Log Table'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'Checks if KIEVTRANSACTIONKEYS table is empty'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'Checks if KIEVTRANSACTIONS table is empty'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'Fetch partition interval for KT'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'Fetch partition interval for KTK'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'Insert dynamic config'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'createProxyUser'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'createSequence'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'deregister_host'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'dropAutoSequenceMetadata'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'dropBucketFromMetadata'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'dropSequenceMetadata'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'get KievTransactionKeys table indexes'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'get KievTransactions table indexes'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'get session count'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'initializeMetadata'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'isKtPartitioned'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'isPartitioned'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'log'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'register_host'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'updateSchemaVersionInDB'||k_appl_handle_suffix
|
|
--
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'getUnownedLeases'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'getFutureWorks'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'getMinorVersionsAtAndAfter'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'getLeaseDecorators'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'getUnownedLeasesByFiFo'||k_appl_handle_suffix
|
|
THEN RETURN 'BG'; /* Background */
|
|
--
|
|
ELSIF p_sql_text LIKE k_appl_handle_prefix||'Ignore'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'enumerateKievPdbs'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'getJDBCSuffix'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'MV_REFRESH'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'null'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'selectColumnsForTable'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'selectDatastoreMd'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'SQL Analyze('||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'validateDataStoreId'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'countMetadata'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'countSequenceInstances'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'iod-telemetry'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'insert snapshot metadata'||k_appl_handle_suffix
|
|
OR p_sql_text LIKE k_appl_handle_prefix||'OPT_DYN_SAMP'||k_appl_handle_suffix
|
|
THEN RETURN 'IG'; /* Ignore */
|
|
--
|
|
ELSIF p_command_name IN ('INSERT', 'UPDATE')
|
|
THEN RETURN 'TP'; /* Transaction Processing */
|
|
--
|
|
ELSIF p_command_name = 'DELETE'
|
|
THEN RETURN 'BG'; /* Background */
|
|
--
|
|
ELSIF p_command_name = 'SELECT'
|
|
THEN RETURN 'RO'; /* Read Only */
|
|
--
|
|
ELSE RETURN 'UN'; /* Unknown */
|
|
END IF;
|
|
END application_category;
|
|
/****************************************************************************************/
|
|
FUNCTION get_sql_hv (p_sqltext IN CLOB)
|
|
RETURN VARCHAR2
|
|
IS
|
|
l_sqltext CLOB := REGEXP_REPLACE(p_sqltext, '/\* REPO_[A-Z0-9]{1,25} \*/ '); -- removes "/* REPO_IFCDEXZQGAYDAMBQHAYQ */ " DBPERF-8819
|
|
BEGIN
|
|
IF l_sqltext LIKE '%/* %(%,%)% [%] */%' THEN l_sqltext := REGEXP_REPLACE(l_sqltext, '\[([[:digit:]]{4,5})\] '); END IF; -- removes bucket_id "[1001] "
|
|
RETURN LPAD(MOD(DBMS_SQLTUNE.sqltext_to_signature(l_sqltext),100000),5,'0');
|
|
END get_sql_hv;
|
|
/****************************************************************************************/
|
|
ash AS (
|
|
SELECT /*+ MATERIALIZE NO_MERGE */
|
|
ROUND(COUNT(*) / (&&cs_minutes. * 60), 3) AS aas_db,
|
|
ROUND(SUM(CASE a.session_state WHEN 'ON CPU' THEN 1 ELSE 0 END)/ (&&cs_minutes. * 60), 3) AS aas_cpu,
|
|
ROUND(SUM(CASE WHEN a.wait_class LIKE '% I/O' THEN 1 ELSE 0 END)/ (&&cs_minutes. * 60), 3) AS aas_io,
|
|
COUNT(DISTINCT a.session_id||','||a.session_serial#) AS sessions,
|
|
COALESCE(a.sql_id, '"null"') AS sql_id,
|
|
a.sql_plan_hash_value,
|
|
-- a.sql_child_number,
|
|
SUBSTR(CASE a.session_state WHEN 'ON CPU' THEN a.session_state ELSE a.wait_class||' - '||a.event END, 1, 35) AS timed_event,
|
|
SUBSTR(a.module, 1, 25) AS module,
|
|
c.con_id,
|
|
c.name AS pdb_name,
|
|
a.sql_opname,
|
|
a.user_id,
|
|
ROW_NUMBER() OVER (ORDER BY COUNT(*) DESC) AS row_number
|
|
FROM v$active_session_history a,
|
|
v$containers c
|
|
WHERE 1 = 1
|
|
AND a.sample_time > SYSDATE - (&&cs_minutes. / 24 / 60)
|
|
AND c.con_id = a.con_id
|
|
GROUP BY
|
|
COALESCE(a.sql_id, '"null"'),
|
|
a.sql_plan_hash_value,
|
|
-- a.sql_child_number,
|
|
SUBSTR(CASE a.session_state WHEN 'ON CPU' THEN a.session_state ELSE a.wait_class||' - '||a.event END, 1, 35),
|
|
SUBSTR(a.module, 1, 25),
|
|
c.con_id,
|
|
c.name,
|
|
a.sql_opname,
|
|
a.user_id
|
|
),
|
|
ash_extended AS (
|
|
SELECT CASE a.user_id WHEN 0 THEN 'SYS' ELSE application_category(s.sql_text, a.sql_opname) END AS sql_type,
|
|
a.row_number,
|
|
a.aas_db,
|
|
a.aas_cpu,
|
|
a.aas_io,
|
|
a.sessions,
|
|
s.sql_hv,
|
|
a.sql_id,
|
|
a.sql_plan_hash_value,
|
|
s.has_baseline,
|
|
s.has_profile,
|
|
s.has_patch,
|
|
s.sql_text,
|
|
a.module,
|
|
a.con_id,
|
|
a.timed_event,
|
|
a.pdb_name,
|
|
a.sql_opname,
|
|
a.user_id
|
|
FROM ash a
|
|
OUTER APPLY (
|
|
SELECT get_sql_hv(s.sql_fulltext) AS sql_hv,
|
|
-- REGEXP_REPLACE(s.sql_text, '[^[:print:]]') AS sql_text,
|
|
REGEXP_SUBSTR(s.sql_fulltext, '.*$', 1, 1, 'm') AS sql_text,
|
|
CASE WHEN s.sql_plan_baseline IS NULL THEN 'N' ELSE 'Y' END AS has_baseline,
|
|
CASE WHEN s.sql_profile IS NULL THEN 'N' ELSE 'Y' END AS has_profile,
|
|
CASE WHEN s.sql_patch IS NULL THEN 'N' ELSE 'Y' END AS has_patch
|
|
FROM v$sql s
|
|
WHERE s.sql_id = a.sql_id
|
|
AND s.con_id = a.con_id
|
|
AND s.plan_hash_value = a.sql_plan_hash_value
|
|
-- AND s.child_number = a.sql_child_number
|
|
ORDER BY
|
|
s.last_active_time DESC
|
|
FETCH FIRST 1 ROW ONLY
|
|
) s
|
|
WHERE (a.row_number <= &&cs_top. OR a.aas_db > &&aas_threshold.)
|
|
UNION ALL
|
|
SELECT CASE a.user_id WHEN 0 THEN 'SYS' ELSE application_category(s.sql_text, a.sql_opname) END AS sql_type,
|
|
999999 AS row_number,
|
|
SUM(a.aas_db) AS aas_db,
|
|
SUM(a.aas_cpu) AS aas_cpu,
|
|
SUM(a.aas_io) AS aas_io,
|
|
TO_NUMBER(NULL) AS sessions,
|
|
NULL AS sql_hv,
|
|
'"'||COUNT(DISTINCT a.sql_id)||' others"' AS sql_id,
|
|
TO_NUMBER(NULL) AS sql_plan_hash_value,
|
|
NULL AS has_baseline,
|
|
NULL AS has_profile,
|
|
NULL AS has_patch,
|
|
NULL AS sql_text,
|
|
NULL AS module,
|
|
TO_NUMBER(NULL) AS con_id,
|
|
a.timed_event,
|
|
'"'||COUNT(DISTINCT a.pdb_name)||' PDBs"' AS sql_text,
|
|
NULL AS sql_opname,
|
|
TO_NUMBER(NULL) AS user_id
|
|
FROM ash a
|
|
OUTER APPLY (
|
|
SELECT --get_sql_hv(s.sql_fulltext) AS sql_hv,
|
|
-- REGEXP_REPLACE(s.sql_text, '[^[:print:]]') AS sql_text,
|
|
REGEXP_SUBSTR(s.sql_fulltext, '.*$', 1, 1, 'm') AS sql_text,
|
|
CASE WHEN s.sql_plan_baseline IS NULL THEN 'N' ELSE 'Y' END AS has_baseline,
|
|
CASE WHEN s.sql_profile IS NULL THEN 'N' ELSE 'Y' END AS has_profile,
|
|
CASE WHEN s.sql_patch IS NULL THEN 'N' ELSE 'Y' END AS has_patch
|
|
FROM v$sql s
|
|
WHERE s.sql_id = a.sql_id
|
|
AND s.con_id = a.con_id
|
|
AND s.plan_hash_value = a.sql_plan_hash_value
|
|
-- AND s.child_number = a.sql_child_number
|
|
ORDER BY
|
|
s.last_active_time DESC
|
|
FETCH FIRST 1 ROW ONLY
|
|
) s
|
|
WHERE NOT (a.row_number <= &&cs_top. OR a.aas_db > &&aas_threshold.)
|
|
GROUP BY
|
|
CASE a.user_id WHEN 0 THEN 'SYS' ELSE application_category(s.sql_text, a.sql_opname) END,
|
|
a.timed_event
|
|
HAVING SUM(a.aas_db) > &&aas_threshold.
|
|
),
|
|
ash_extended2 AS (
|
|
SELECT a.sql_type,
|
|
a.row_number,
|
|
a.aas_db,
|
|
a.aas_cpu,
|
|
a.aas_io,
|
|
a.sessions,
|
|
a.sql_hv,
|
|
a.sql_id,
|
|
a.sql_plan_hash_value,
|
|
s.version_count,
|
|
a.has_baseline,
|
|
a.has_profile,
|
|
a.has_patch,
|
|
a.sql_text,
|
|
a.module,
|
|
a.con_id,
|
|
a.timed_event,
|
|
COALESCE(a.pdb_name, '"multiple"') AS pdb_name,
|
|
a.sql_opname,
|
|
a.user_id
|
|
FROM ash_extended a,
|
|
v$sqlstats s
|
|
WHERE s.sql_id(+) = a.sql_id
|
|
AND s.con_id(+) = a.con_id
|
|
)
|
|
SELECT a.sql_type,
|
|
a.row_number,
|
|
a.aas_db,
|
|
a.aas_cpu,
|
|
a.aas_io,
|
|
a.timed_event,
|
|
a.sessions,
|
|
a.sql_hv,
|
|
a.sql_id,
|
|
a.sql_plan_hash_value,
|
|
a.version_count,
|
|
a.has_baseline,
|
|
a.has_profile,
|
|
a.has_patch,
|
|
a.sql_text,
|
|
-- a.timed_event,
|
|
CASE SYS_CONTEXT('USERENV', 'CON_NAME') WHEN 'CDB$ROOT' THEN a.pdb_name ELSE a.module END AS pdb_name_module
|
|
-- a.pdb_name,
|
|
-- a.module
|
|
FROM ash_extended2 a
|
|
ORDER BY
|
|
CASE a.sql_type WHEN 'TP' THEN 1 WHEN 'RO' THEN 2 WHEN 'BG' THEN 3 WHEN 'UN' THEN 4 WHEN 'IG' THEN 5 WHEN 'SYS' THEN 6 ELSE 9 END,
|
|
a.row_number,
|
|
a.aas_db DESC
|
|
/
|
|
--
|
|
-- CLEAR BREAK COMPUTE; |