<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Add Timestamp and Schema to Statement Performance Data Using DQL (Oracle Database Monitoring Extension) in DQL</title>
    <link>https://community.dynatrace.com/t5/DQL/Add-Timestamp-and-Schema-to-Statement-Performance-Data-Using-DQL/m-p/288230#M2689</link>
    <description>&lt;P&gt;Hi all,&lt;/P&gt;
&lt;P&gt;This is regarding the Statement Performance section in the 'Databases' section (Applicable to Oracle Database Monitoring extension only).&lt;/P&gt;
&lt;P&gt;In this section, when you click 'Pin to Dashboard' this code is produced:&lt;/P&gt;
&lt;LI-CODE lang="markup"&gt;fetch logs 
| filter dt.extension.name == "com.dynatrace.extension.sql-oracle"
| filter matchesValue(event.group, "query_performance")
| filter dt.cost.costcenter == "GROUP"
| sort timestamp desc
| filter not contains(content, "/*dt:ownQuery*/") | summarize {number = count(),
  sql_id = takeFirst(sql_id),
  fetch_exec_plan_for_sql_id = takeFirst(sql_id),
  event.group = takeFirst(event.group),
  endpoint = takeFirst(endpoint),
  device.port = takeFirst(device.port),
  device.name = takeFirst(device.name),
  device.address = takeFirst(device.address),
  device = takeFirst(device),
  instance.name = takeFirst(instance.name),
  database.identifier = takeFirst(database.identifier),
  loglevel = takeFirst(loglevel),
  dt.extension.config.id = takeFirst(dt.extension.config.id),
  dt.extension.endpoint.hints = takeFirst(dt.extension.endpoint.hints),
  dt.extension.name = takeFirst(dt.extension.name)},
  by:{content, container.name}
| fields
  sql_id,
  container.name,
  id = concat(sql_id, container.name),
  fetch_exec_plan_for_sql_id,
  event.group,
  endpoint,
  device.port,
  device.name,
  device.address,
  device,
  instance.name,
  database.identifier,
  loglevel,
  dt.extension.config.id,
  dt.extension.endpoint.hints,
  dt.extension.name,
  content
| join [
  fetch logs
| filter dt.extension.name == "com.dynatrace.extension.sql-oracle"
AND matchesValue(event.group, "query_performance")
| filter dt.cost.costcenter == "GROUP"
  | makeTimeseries {
      executions_timeseries=avg(toDouble(executions)), 
      elapsed_time_timeseries=avg(toDouble(elapsed_time)),
      application_wait_time_timeseries=avg(toDouble(application_wait_time)),
      concurrency_wait_time_timeseries=avg(toDouble(concurrency_wait_time)),
      user_io_wait_time_timeseries=avg(toDouble(user_io_wait_time)),
      cluster_wait_time_timeseries=avg(toDouble(cluster_wait_time)),
      cpu_time_timeseries=avg(toDouble(cpu_time)),
      rows_processed_timeseries=avg(toDouble(rows_processed)),
      parse_calls_timeseries=avg(toDouble(parse_calls)),
      direct_writes_timeseries=avg(toDouble(direct_writes)),
      disk_reads_timeseries=avg(toDouble(disk_reads))
    },
    by: {sql_id, container.name}, interval:5m
    | fieldsAdd 
      executions_delta = arrayDelta(executions_timeseries), 
      elapsed_time_delta = arrayDelta(elapsed_time_timeseries),
      application_wait_time_delta = arrayDelta(application_wait_time_timeseries),
      concurrency_wait_time_delta = arrayDelta(concurrency_wait_time_timeseries),
      user_io_wait_time_delta = arrayDelta(user_io_wait_time_timeseries),
      cluster_wait_time_delta = arrayDelta(cluster_wait_time_timeseries),
      cpu_time_delta = arrayDelta(cpu_time_timeseries),
      rows_processed_delta = arrayDelta(rows_processed_timeseries),
      parse_calls_delta = arrayDelta(parse_calls_timeseries),
      direct_writes_delta = arrayDelta(direct_writes_timeseries),
      disk_reads_delta = arrayDelta(disk_reads_timeseries)
    | fields executions = arraySum(iCollectArray(if(executions_delta[] &amp;gt; 0, executions_delta[], else: 0))),
      elapsed_time = arraySum(iCollectArray(if(elapsed_time_delta[] &amp;gt; 0, elapsed_time_delta[], else: 0))),
      application_wait_time = arraySum(iCollectArray(if(application_wait_time_delta[] &amp;gt; 0, application_wait_time_delta[], else: 0))),
      concurrency_wait_time = arraySum(iCollectArray(if(concurrency_wait_time_delta[] &amp;gt; 0, concurrency_wait_time_delta[], else: 0))),
      user_io_wait_time = arraySum(iCollectArray(if(user_io_wait_time_delta[] &amp;gt; 0, user_io_wait_time_delta[], else: 0))),
      cluster_wait_time = arraySum(iCollectArray(if(cluster_wait_time_delta[] &amp;gt; 0, cluster_wait_time_delta[], else: 0))),
      cpu_time = arraySum(iCollectArray(if(cpu_time_delta[] &amp;gt; 0, cpu_time_delta[], else: 0))),
      rows_processed = arraySum(iCollectArray(if(rows_processed_delta[] &amp;gt; 0, rows_processed_delta[], else: 0))),
      parse_calls = arraySum(iCollectArray(if(parse_calls_delta[] &amp;gt; 0, parse_calls_delta[], else: 0))),
      direct_writes = arraySum(iCollectArray(if(direct_writes_delta[] &amp;gt; 0, direct_writes_delta[], else: 0))),
      disk_reads = arraySum(iCollectArray(if(disk_reads_delta[] &amp;gt; 0, disk_reads_delta[], else: 0))),
      id = concat(sql_id, container.name)
], on:{id}, fields: {executions, elapsed_time, application_wait_time, concurrency_wait_time, user_io_wait_time, cluster_wait_time, cpu_time, rows_processed, parse_calls, direct_writes, disk_reads}
| filter isNotNull(elapsed_time)
| sort elapsed_time desc
| fields content, 
  sql_id,
  container.name,
  executions, elapsed_time, application_wait_time, concurrency_wait_time, user_io_wait_time, cluster_wait_time, cpu_time, rows_processed, parse_calls, direct_writes, disk_reads,
  mean_elapsed_time = elapsed_time/executions, 
  fetch_exec_plan_for_sql_id
| fields content, sql_id, container.name, executions, elapsed_time, mean_elapsed_time, fetch_exec_plan_for_sql_id
| filter elapsed_time &amp;gt;= 329709768&lt;/LI-CODE&gt;
&lt;P&gt;Its slightly edited to meet my requirements (see: filters at the top) but what I am trying to get as part of this DQL query is the timestamp and possibly the schema attached to the statement. I've been finding it quite difficult as I can't quite find where to input it.&lt;/P&gt;
&lt;P&gt;The obvious choice would be to use&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="markup"&gt;| fieldsAdd timestamp&lt;/LI-CODE&gt;
&lt;P&gt;...and then remove portions of the &lt;FONT face="courier new,courier"&gt;fields&lt;/FONT&gt; query (to not limit the field selection) but it still seems timestamp won't be ingested. Any ideas? It must be being closed off in the query somewhere.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Wed, 17 Dec 2025 10:09:45 GMT</pubDate>
    <dc:creator>badgerfifteen</dc:creator>
    <dc:date>2025-12-17T10:09:45Z</dc:date>
    <item>
      <title>Add Timestamp and Schema to Statement Performance Data Using DQL (Oracle Database Monitoring Extension)</title>
      <link>https://community.dynatrace.com/t5/DQL/Add-Timestamp-and-Schema-to-Statement-Performance-Data-Using-DQL/m-p/288230#M2689</link>
      <description>&lt;P&gt;Hi all,&lt;/P&gt;
&lt;P&gt;This is regarding the Statement Performance section in the 'Databases' section (Applicable to Oracle Database Monitoring extension only).&lt;/P&gt;
&lt;P&gt;In this section, when you click 'Pin to Dashboard' this code is produced:&lt;/P&gt;
&lt;LI-CODE lang="markup"&gt;fetch logs 
| filter dt.extension.name == "com.dynatrace.extension.sql-oracle"
| filter matchesValue(event.group, "query_performance")
| filter dt.cost.costcenter == "GROUP"
| sort timestamp desc
| filter not contains(content, "/*dt:ownQuery*/") | summarize {number = count(),
  sql_id = takeFirst(sql_id),
  fetch_exec_plan_for_sql_id = takeFirst(sql_id),
  event.group = takeFirst(event.group),
  endpoint = takeFirst(endpoint),
  device.port = takeFirst(device.port),
  device.name = takeFirst(device.name),
  device.address = takeFirst(device.address),
  device = takeFirst(device),
  instance.name = takeFirst(instance.name),
  database.identifier = takeFirst(database.identifier),
  loglevel = takeFirst(loglevel),
  dt.extension.config.id = takeFirst(dt.extension.config.id),
  dt.extension.endpoint.hints = takeFirst(dt.extension.endpoint.hints),
  dt.extension.name = takeFirst(dt.extension.name)},
  by:{content, container.name}
| fields
  sql_id,
  container.name,
  id = concat(sql_id, container.name),
  fetch_exec_plan_for_sql_id,
  event.group,
  endpoint,
  device.port,
  device.name,
  device.address,
  device,
  instance.name,
  database.identifier,
  loglevel,
  dt.extension.config.id,
  dt.extension.endpoint.hints,
  dt.extension.name,
  content
| join [
  fetch logs
| filter dt.extension.name == "com.dynatrace.extension.sql-oracle"
AND matchesValue(event.group, "query_performance")
| filter dt.cost.costcenter == "GROUP"
  | makeTimeseries {
      executions_timeseries=avg(toDouble(executions)), 
      elapsed_time_timeseries=avg(toDouble(elapsed_time)),
      application_wait_time_timeseries=avg(toDouble(application_wait_time)),
      concurrency_wait_time_timeseries=avg(toDouble(concurrency_wait_time)),
      user_io_wait_time_timeseries=avg(toDouble(user_io_wait_time)),
      cluster_wait_time_timeseries=avg(toDouble(cluster_wait_time)),
      cpu_time_timeseries=avg(toDouble(cpu_time)),
      rows_processed_timeseries=avg(toDouble(rows_processed)),
      parse_calls_timeseries=avg(toDouble(parse_calls)),
      direct_writes_timeseries=avg(toDouble(direct_writes)),
      disk_reads_timeseries=avg(toDouble(disk_reads))
    },
    by: {sql_id, container.name}, interval:5m
    | fieldsAdd 
      executions_delta = arrayDelta(executions_timeseries), 
      elapsed_time_delta = arrayDelta(elapsed_time_timeseries),
      application_wait_time_delta = arrayDelta(application_wait_time_timeseries),
      concurrency_wait_time_delta = arrayDelta(concurrency_wait_time_timeseries),
      user_io_wait_time_delta = arrayDelta(user_io_wait_time_timeseries),
      cluster_wait_time_delta = arrayDelta(cluster_wait_time_timeseries),
      cpu_time_delta = arrayDelta(cpu_time_timeseries),
      rows_processed_delta = arrayDelta(rows_processed_timeseries),
      parse_calls_delta = arrayDelta(parse_calls_timeseries),
      direct_writes_delta = arrayDelta(direct_writes_timeseries),
      disk_reads_delta = arrayDelta(disk_reads_timeseries)
    | fields executions = arraySum(iCollectArray(if(executions_delta[] &amp;gt; 0, executions_delta[], else: 0))),
      elapsed_time = arraySum(iCollectArray(if(elapsed_time_delta[] &amp;gt; 0, elapsed_time_delta[], else: 0))),
      application_wait_time = arraySum(iCollectArray(if(application_wait_time_delta[] &amp;gt; 0, application_wait_time_delta[], else: 0))),
      concurrency_wait_time = arraySum(iCollectArray(if(concurrency_wait_time_delta[] &amp;gt; 0, concurrency_wait_time_delta[], else: 0))),
      user_io_wait_time = arraySum(iCollectArray(if(user_io_wait_time_delta[] &amp;gt; 0, user_io_wait_time_delta[], else: 0))),
      cluster_wait_time = arraySum(iCollectArray(if(cluster_wait_time_delta[] &amp;gt; 0, cluster_wait_time_delta[], else: 0))),
      cpu_time = arraySum(iCollectArray(if(cpu_time_delta[] &amp;gt; 0, cpu_time_delta[], else: 0))),
      rows_processed = arraySum(iCollectArray(if(rows_processed_delta[] &amp;gt; 0, rows_processed_delta[], else: 0))),
      parse_calls = arraySum(iCollectArray(if(parse_calls_delta[] &amp;gt; 0, parse_calls_delta[], else: 0))),
      direct_writes = arraySum(iCollectArray(if(direct_writes_delta[] &amp;gt; 0, direct_writes_delta[], else: 0))),
      disk_reads = arraySum(iCollectArray(if(disk_reads_delta[] &amp;gt; 0, disk_reads_delta[], else: 0))),
      id = concat(sql_id, container.name)
], on:{id}, fields: {executions, elapsed_time, application_wait_time, concurrency_wait_time, user_io_wait_time, cluster_wait_time, cpu_time, rows_processed, parse_calls, direct_writes, disk_reads}
| filter isNotNull(elapsed_time)
| sort elapsed_time desc
| fields content, 
  sql_id,
  container.name,
  executions, elapsed_time, application_wait_time, concurrency_wait_time, user_io_wait_time, cluster_wait_time, cpu_time, rows_processed, parse_calls, direct_writes, disk_reads,
  mean_elapsed_time = elapsed_time/executions, 
  fetch_exec_plan_for_sql_id
| fields content, sql_id, container.name, executions, elapsed_time, mean_elapsed_time, fetch_exec_plan_for_sql_id
| filter elapsed_time &amp;gt;= 329709768&lt;/LI-CODE&gt;
&lt;P&gt;Its slightly edited to meet my requirements (see: filters at the top) but what I am trying to get as part of this DQL query is the timestamp and possibly the schema attached to the statement. I've been finding it quite difficult as I can't quite find where to input it.&lt;/P&gt;
&lt;P&gt;The obvious choice would be to use&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="markup"&gt;| fieldsAdd timestamp&lt;/LI-CODE&gt;
&lt;P&gt;...and then remove portions of the &lt;FONT face="courier new,courier"&gt;fields&lt;/FONT&gt; query (to not limit the field selection) but it still seems timestamp won't be ingested. Any ideas? It must be being closed off in the query somewhere.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 17 Dec 2025 10:09:45 GMT</pubDate>
      <guid>https://community.dynatrace.com/t5/DQL/Add-Timestamp-and-Schema-to-Statement-Performance-Data-Using-DQL/m-p/288230#M2689</guid>
      <dc:creator>badgerfifteen</dc:creator>
      <dc:date>2025-12-17T10:09:45Z</dc:date>
    </item>
    <item>
      <title>Re: How do I add timestamp and schema to a statement performance tile I have? (Oracle Database Monitoring Extension)</title>
      <link>https://community.dynatrace.com/t5/DQL/Add-Timestamp-and-Schema-to-Statement-Performance-Data-Using-DQL/m-p/291660#M2886</link>
      <description>&lt;P&gt;Hey&amp;nbsp;&lt;a href="https://community.dynatrace.com/t5/user/viewprofilepage/user-id/67521"&gt;@badgerfifteen&lt;/a&gt;&amp;nbsp;,&lt;BR /&gt;&lt;SPAN&gt;I just wanted to check in and see if you still need help with this. If so, I’d be happy to look into it for you!&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN class="lia-unicode-emoji" title=":smiling_face_with_smiling_eyes:"&gt;&lt;span class="lia-unicode-emoji" title=":smiling_face_with_smiling_eyes:"&gt;😊&lt;/span&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Please let me know what works best for you.&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 17 Dec 2025 10:08:41 GMT</pubDate>
      <guid>https://community.dynatrace.com/t5/DQL/Add-Timestamp-and-Schema-to-Statement-Performance-Data-Using-DQL/m-p/291660#M2886</guid>
      <dc:creator>IzabelaRokita</dc:creator>
      <dc:date>2025-12-17T10:08:41Z</dc:date>
    </item>
  </channel>
</rss>

