diff --git a/verticapy/performance/vertica/qprof.py b/verticapy/performance/vertica/qprof.py
index 94932b879..f6224072a 100755
--- a/verticapy/performance/vertica/qprof.py
+++ b/verticapy/performance/vertica/qprof.py
@@ -1883,6 +1883,7 @@ def _set_request_qd(self):
self.start_timestamp = []
self.end_timestamp = []
self.query_successes = []
+ self.queue_times = []
# Extracting transaction_ids and statement_ids from the list of tuples
transaction_ids = [t[0] for t in self.transactions]
statement_ids = [t[1] for t in self.transactions]
@@ -1906,7 +1907,8 @@ def _set_request_qd(self):
query_duration_us,
q2.start_time,
q2.end_time,
- q2.success
+ q2.success,
+ ROUND(EXTRACT(EPOCH FROM (q3.acquisition_timestamp - q3.queue_entry_timestamp)), 3) AS queue_time_sec
FROM
v_internal.dc_requests_issued AS q0
FULL JOIN
@@ -1915,10 +1917,13 @@ def _set_request_qd(self):
FULL JOIN
v_monitor.query_consumption AS q2
USING (transaction_id, statement_id)
+ LEFT JOIN
+ v_monitor.resource_acquisitions AS q3
+ USING (transaction_id, statement_id)
WHERE
{transaction_id_condition}
AND {statement_id_condition};
- """
+ """
query = self._replace_schema_in_query(query)
res = _executeSQL(
query,
@@ -1934,6 +1939,7 @@ def _set_request_qd(self):
"query_start_timestamp": row[5],
"query_end_timestamp": row[6],
"query_success": row[7],
+ "queue_time_sec": row[8],
}
for tr_id, st_id in self.transactions:
if (tr_id, st_id) not in transactions_dict:
@@ -1950,9 +1956,11 @@ def _set_request_qd(self):
self.start_timestamp += [info["query_start_timestamp"]]
self.end_timestamp += [info["query_end_timestamp"]]
self.query_successes += [info["query_success"]]
+ self.queue_times += [info["queue_time_sec"]]
self.request = self.requests[self.transactions_idx]
self.qduration = self.qdurations[self.transactions_idx]
self.query_success = self.query_successes[self.transactions_idx]
+ self.queue_time = self.queue_times[self.transactions_idx]
def _get_current_nodes(self):
"""
@@ -2090,6 +2098,7 @@ def set_position(self, idx: Union[int, tuple]) -> None:
self.request = self.requests[idx]
self.qduration = self.qdurations[idx]
self.query_success = self.query_successes[idx]
+ self.queue_time = self.queue_times[idx]
try:
self.session_params_non_default_current = (
self.session_params_non_default[idx]
diff --git a/verticapy/performance/vertica/qprof_interface.py b/verticapy/performance/vertica/qprof_interface.py
index f18d8f992..e24484aca 100644
--- a/verticapy/performance/vertica/qprof_interface.py
+++ b/verticapy/performance/vertica/qprof_interface.py
@@ -111,13 +111,42 @@ def __init__(
# Query Inofrmation - Query Text & Time
self._query_display_info = widgets.HTML(
value=f"""
- Query Execution Success: {self._success_html if self.query_success else self._failure_html}
- Execution Time: {self.get_qduration()} (seconds)
- Target Schema: {self.target_schema["v_internal"] if self.target_schema else ''}
- Transaction ID: {self.transaction_id}
- Statement ID: {self.statement_id}
- Key ID: {self.key_id}
- """
+