oracle.oci.oci_opsi_sql_statistics_facts – Fetches details about one or multiple SqlStatistics resources in Oracle Cloud Infrastructure

Note

This plugin is part of the oracle.oci collection (version 4.11.0).

You might already have this collection installed if you are using the ansible package. It is not included in ansible-core. To check whether it is installed, run ansible-galaxy collection list.

To install it, use: ansible-galaxy collection install oracle.oci.

To use it in a playbook, specify: oracle.oci.oci_opsi_sql_statistics_facts.

New in version 2.9.0: of oracle.oci

Synopsis

  • Fetches details about one or multiple SqlStatistics resources in Oracle Cloud Infrastructure

  • Query SQL Warehouse to get the performance statistics for SQLs taking greater than X% database time for a given time period across the given databases or database types in a compartment and in all sub-compartments if specified.

Requirements

The below requirements are needed on the host that executes this module.

Parameters

Parameter Choices/Defaults Comments
analysis_time_interval
string
Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months), . Maximum value allowed is 25 months prior to current time (P25M).
api_user
string
The OCID of the user, on whose behalf, OCI APIs are invoked. If not set, then the value of the OCI_USER_ID environment variable, if any, is used. This option is required if the user is not specified through a configuration file (See config_file_location). To get the user's OCID, please refer https://docs.us-phoenix-1.oraclecloud.com/Content/API/Concepts/apisigningkey.htm.
api_user_fingerprint
string
Fingerprint for the key pair being used. If not set, then the value of the OCI_USER_FINGERPRINT environment variable, if any, is used. This option is required if the key fingerprint is not specified through a configuration file (See config_file_location). To get the key pair's fingerprint value please refer https://docs.us-phoenix-1.oraclecloud.com/Content/API/Concepts/apisigningkey.htm.
api_user_key_file
string
Full path and filename of the private key (in PEM format). If not set, then the value of the OCI_USER_KEY_FILE variable, if any, is used. This option is required if the private key is not specified through a configuration file (See config_file_location). If the key is encrypted with a pass-phrase, the api_user_key_pass_phrase option must also be provided.
api_user_key_pass_phrase
string
Passphrase used by the key referenced in api_user_key_file, if it is encrypted. If not set, then the value of the OCI_USER_KEY_PASS_PHRASE variable, if any, is used. This option is required if the key passphrase is not specified through a configuration file (See config_file_location).
auth_purpose
string
    Choices:
  • service_principal
The auth purpose which can be used in conjunction with 'auth_type=instance_principal'. The default auth_purpose for instance_principal is None.
auth_type
string
    Choices:
  • api_key ←
  • instance_principal
  • instance_obo_user
  • resource_principal
The type of authentication to use for making API requests. By default auth_type="api_key" based authentication is performed and the API key (see api_user_key_file) in your config file will be used. If this 'auth_type' module option is not specified, the value of the OCI_ANSIBLE_AUTH_TYPE, if any, is used. Use auth_type="instance_principal" to use instance principal based authentication when running ansible playbooks within an OCI compute instance.
category
list / elements=string
    Choices:
  • DEGRADING
  • VARIANT
  • INEFFICIENT
  • CHANGING_PLANS
  • IMPROVING
  • DEGRADING_VARIANT
  • DEGRADING_INEFFICIENT
  • DEGRADING_CHANGING_PLANS
  • DEGRADING_INCREASING_IO
  • DEGRADING_INCREASING_CPU
  • DEGRADING_INCREASING_INEFFICIENT_WAIT
  • DEGRADING_CHANGING_PLANS_AND_INCREASING_IO
  • DEGRADING_CHANGING_PLANS_AND_INCREASING_CPU
  • DEGRADING_CHANGING_PLANS_AND_INCREASING_INEFFICIENT_WAIT
  • VARIANT_INEFFICIENT
  • VARIANT_CHANGING_PLANS
  • VARIANT_INCREASING_IO
  • VARIANT_INCREASING_CPU
  • VARIANT_INCREASING_INEFFICIENT_WAIT
  • VARIANT_CHANGING_PLANS_AND_INCREASING_IO
  • VARIANT_CHANGING_PLANS_AND_INCREASING_CPU
  • VARIANT_CHANGING_PLANS_AND_INCREASING_INEFFICIENT_WAIT
  • INEFFICIENT_CHANGING_PLANS
  • INEFFICIENT_INCREASING_INEFFICIENT_WAIT
  • INEFFICIENT_CHANGING_PLANS_AND_INCREASING_INEFFICIENT_WAIT
Filter sqls by one or more performance categories.
cdb_name
list / elements=string
Filter by one or more cdb name.
cert_bundle
string
The full path to a CA certificate bundle to be used for SSL verification. This will override the default CA certificate bundle. If not set, then the value of the OCI_ANSIBLE_CERT_BUNDLE variable, if any, is used.
compartment_id
string / required
The OCID of the compartment.
compartment_id_in_subtree
boolean
    Choices:
  • no
  • yes
A flag to search all resources within a given compartment and all sub-compartments.
config_file_location
string
Path to configuration file. If not set then the value of the OCI_CONFIG_FILE environment variable, if any, is used. Otherwise, defaults to ~/.oci/config.
config_profile_name
string
The profile to load from the config file referenced by config_file_location. If not set, then the value of the OCI_CONFIG_PROFILE environment variable, if any, is used. Otherwise, defaults to the "DEFAULT" profile in config_file_location.
database_id
list / elements=string
Optional list of database OCIDs of the associated DBaaS entity.
database_time_pct_greater_than
float
Filter sqls by percentage of db time.
database_type
list / elements=string
    Choices:
  • ADW-S
  • ATP-S
  • ADW-D
  • ATP-D
  • EXTERNAL-PDB
  • EXTERNAL-NONCDB
  • COMANAGED-VM-CDB
  • COMANAGED-VM-PDB
  • COMANAGED-VM-NONCDB
  • COMANAGED-BM-CDB
  • COMANAGED-BM-PDB
  • COMANAGED-BM-NONCDB
  • COMANAGED-EXACS-CDB
  • COMANAGED-EXACS-PDB
  • COMANAGED-EXACS-NONCDB
Filter by one or more database type. Possible values are ADW-S, ATP-S, ADW-D, ATP-D, EXTERNAL-PDB, EXTERNAL-NONCDB.
defined_tag_equals
list / elements=string
A list of tag filters to apply. Only resources with a defined tag matching the value will be returned. Each item in the list has the format "{namespace}.{tagName}.{value}". All inputs are case-insensitive. Multiple values for the same key (i.e. same namespace and tag name) are interpreted as "OR". Values for different keys (i.e. different namespaces, different tag names, or both) are interpreted as "AND".
defined_tag_exists
list / elements=string
A list of tag existence filters to apply. Only resources for which the specified defined tags exist will be returned. Each item in the list has the format "{namespace}.{tagName}.true" (for checking existence of a defined tag) or "{namespace}.true". All inputs are case-insensitive. Currently, only existence ("true" at the end) is supported. Absence ("false" at the end) is not supported. Multiple values for the same key (i.e. same namespace and tag name) are interpreted as "OR". Values for different keys (i.e. different namespaces, different tag names, or both) are interpreted as "AND".
exadata_insight_id
list / elements=string
Optional list of exadata insight resource OCIDs.
freeform_tag_equals
list / elements=string
A list of tag filters to apply. Only resources with a freeform tag matching the value will be returned. The key for each tag is "{tagName}.{value}". All inputs are case-insensitive. Multiple values for the same tag name are interpreted as "OR". Values for different tag names are interpreted as "AND".
freeform_tag_exists
list / elements=string
A list of tag existence filters to apply. Only resources for which the specified freeform tags exist the value will be returned. The key for each tag is "{tagName}.true". All inputs are case-insensitive. Currently, only existence ("true" at the end) is supported. Absence ("false" at the end) is not supported. Multiple values for different tag names are interpreted as "AND".
host_name
list / elements=string
Filter by one or more hostname.
id
list / elements=string
Optional list of database insight resource OCIDs.
region
string
The Oracle Cloud Infrastructure region to use for all OCI API requests. If not set, then the value of the OCI_REGION variable, if any, is used. This option is required if the region is not specified through a configuration file (See config_file_location). Please refer to https://docs.us-phoenix-1.oraclecloud.com/Content/General/Concepts/regions.htm for more information on OCI regions.
sort_by
string
    Choices:
  • databaseTimeInSec
  • executionsPerHour
  • executionsCount
  • cpuTimeInSec
  • ioTimeInSec
  • inefficientWaitTimeInSec
  • responseTimeInSec
  • planCount
  • variability
  • averageActiveSessions
  • databaseTimePct
  • inefficiencyInPct
  • changeInCpuTimeInPct
  • changeInIoTimeInPct
  • changeInInefficientWaitTimeInPct
  • changeInResponseTimeInPct
  • changeInAverageActiveSessionsInPct
  • changeInExecutionsPerHourInPct
  • changeInInefficiencyInPct
The field to use when sorting SQL statistics. Example: databaseTimeInSec
sort_order
string
    Choices:
  • ASC
  • DESC
The sort order to use, either ascending (`ASC`) or descending (`DESC`).
sql_identifier
list / elements=string
One or more unique SQL_IDs for a SQL Statement. Example: `6rgjh9bjmy2s7`
tenancy
string
OCID of your tenancy. If not set, then the value of the OCI_TENANCY variable, if any, is used. This option is required if the tenancy OCID is not specified through a configuration file (See config_file_location). To get the tenancy OCID, please refer https://docs.us-phoenix-1.oraclecloud.com/Content/API/Concepts/apisigningkey.htm
time_interval_end
string
Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.
time_interval_start
string
Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.

Examples

- name: List sql_statistics
  oci_opsi_sql_statistics_facts:
    # required
    compartment_id: "ocid1.compartment.oc1..xxxxxxEXAMPLExxxxxx"

    # optional
    database_type: [ "ADW-S" ]
    database_id: [ "ocid1.database.oc1..xxxxxxEXAMPLExxxxxx" ]
    id: [ "ocid1.resource.oc1..xxxxxxEXAMPLExxxxxx" ]
    exadata_insight_id: [ "ocid1.exadatainsight.oc1..xxxxxxEXAMPLExxxxxx" ]
    cdb_name: [ "cdb_name_example" ]
    host_name: [ "host_name_example" ]
    database_time_pct_greater_than: 1.0
    sql_identifier: [ "sql_identifier_example" ]
    analysis_time_interval: analysis_time_interval_example
    time_interval_start: 2013-10-20T19:20:30+01:00
    time_interval_end: 2013-10-20T19:20:30+01:00
    sort_order: ASC
    sort_by: databaseTimeInSec
    category: [ "DEGRADING" ]
    defined_tag_equals: [ "defined_tag_equals_example" ]
    freeform_tag_equals: [ "freeform_tag_equals_example" ]
    defined_tag_exists: [ "defined_tag_exists_example" ]
    freeform_tag_exists: [ "freeform_tag_exists_example" ]
    compartment_id_in_subtree: true

Return Values

Common return values are documented here, the following are the fields unique to this module:

Key Returned Description
sql_statistics
complex
on success
List of SqlStatistics resources

Sample:
[{'category': [], 'database_details': {'cdb_name': 'cdb_name_example', 'compartment_id': 'ocid1.compartment.oc1..xxxxxxEXAMPLExxxxxx', 'database_display_name': 'database_display_name_example', 'database_id': 'ocid1.database.oc1..xxxxxxEXAMPLExxxxxx', 'database_name': 'database_name_example', 'database_type': 'database_type_example', 'database_version': 'database_version_example', 'id': 'ocid1.resource.oc1..xxxxxxEXAMPLExxxxxx', 'instances': [{'host_name': 'host_name_example', 'instance_name': 'instance_name_example'}]}, 'sql_identifier': 'sql_identifier_example', 'statistics': {'average_active_sessions': 1.2, 'change_in_average_active_sessions_in_pct': 1.2, 'change_in_cpu_time_in_pct': 1.2, 'change_in_executions_per_hour_in_pct': 1.2, 'change_in_inefficiency_in_pct': 1.2, 'change_in_inefficient_wait_time_in_pct': 1.2, 'change_in_io_time_in_pct': 1.2, 'change_in_response_time_in_pct': 1.2, 'cpu_time_in_sec': 1.2, 'database_time_in_sec': 1.2, 'database_time_pct': 1.2, 'executions_count': 56, 'executions_per_hour': 1.2, 'inefficiency_in_pct': 1.2, 'inefficient_wait_time_in_sec': 1.2, 'io_time_in_sec': 1.2, 'plan_count': 56, 'response_time_in_sec': 1.2, 'variability': 1.2}}]
 
category
list / elements=string
on success
SQL belongs to one or more categories based on the insights.

 
database_details
complex
on success

   
cdb_name
string
on success
Name of the CDB.Only applies to PDB.

Sample:
cdb_name_example
   
compartment_id
string
on success
The OCID of the compartment.

Sample:
ocid1.compartment.oc1..xxxxxxEXAMPLExxxxxx
   
database_display_name
string
on success
The user-friendly name for the database. The name does not have to be unique.

Sample:
database_display_name_example
   
database_id
string
on success
The OCID of the database.

Sample:
ocid1.database.oc1..xxxxxxEXAMPLExxxxxx
   
database_name
string
on success
The database name. The database name is unique within the tenancy.

Sample:
database_name_example
   
database_type
string
on success
Operations Insights internal representation of the database type.

Sample:
database_type_example
   
database_version
string
on success
The version of the database.

Sample:
database_version_example
   
id
string
on success
The OCID of the database insight resource.

Sample:
ocid1.resource.oc1..xxxxxxEXAMPLExxxxxx
   
instances
complex
on success
Array of hostname and instance name.

     
host_name
string
on success
The hostname of the database insight resource.

Sample:
host_name_example
     
instance_name
string
on success
The instance name of the database insight resource.

Sample:
instance_name_example
 
sql_identifier
string
on success
Unique SQL_ID for a SQL Statement.

Sample:
sql_identifier_example
 
statistics
complex
on success

   
average_active_sessions
float
on success
Average Active Sessions represent the average active sessions at a point in time. It is the number of sessions that are either working or waiting.

Sample:
1.2
   
change_in_average_active_sessions_in_pct
float
on success
Percent change in Average Active Sessions based on linear regression

Sample:
1.2
   
change_in_cpu_time_in_pct
float
on success
Percent change in CPU Time based on linear regression

Sample:
1.2
   
change_in_executions_per_hour_in_pct
float
on success
Percent change in Executions per hour based on linear regression

Sample:
1.2
   
change_in_inefficiency_in_pct
float
on success
Percent change in Inefficiency based on linear regression

Sample:
1.2
   
change_in_inefficient_wait_time_in_pct
float
on success
Percent change in Inefficient Wait Time based on linear regression

Sample:
1.2
   
change_in_io_time_in_pct
float
on success
Percent change in IO Time based on linear regression

Sample:
1.2
   
change_in_response_time_in_pct
float
on success
Percent change in Response Time based on linear regression

Sample:
1.2
   
cpu_time_in_sec
float
on success
CPU Time in seconds

Sample:
1.2
   
database_time_in_sec
float
on success
Database Time in seconds

Sample:
1.2
   
database_time_pct
float
on success
Percentage of Database Time

Sample:
1.2
   
executions_count
integer
on success
Total number of executions

Sample:
56
   
executions_per_hour
float
on success
Number of executions per hour

Sample:
1.2
   
inefficiency_in_pct
float
on success
Percentage of Inefficiency. It is calculated by Total Database Time divided by Total Wait Time

Sample:
1.2
   
inefficient_wait_time_in_sec
float
on success
Inefficient Wait Time in seconds

Sample:
1.2
   
io_time_in_sec
float
on success
I/O Time in seconds

Sample:
1.2
   
plan_count
integer
on success
Number of SQL execution plans used by the SQL

Sample:
56
   
response_time_in_sec
float
on success
Response time is the average elaspsed time per execution. It is the ratio of Total Database Time to the number of executions

Sample:
1.2
   
variability
float
on success
Variability is the ratio of the standard deviation in response time to the mean of response time of the SQL

Sample:
1.2


Authors

  • Oracle (@oracle)