> For the complete documentation index, see [llms.txt](https://docs.collibra.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.collibra.com/data-quality-self-hosted/core-concepts/reports/hardware-usage-report.md).

# Hardware Usage Report

## What is a Hardware Usage Report?

The Hardware Usage report provides a view of the Collibra DQ jobs that have consumed the most hardware.

You can generate a Hardware Usage report from the Reports page.

## Steps

{% stepper %}
{% step %}
Sign in to the Collibra DQ instance and click the <img src="https://4121921244-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FWCrP7Albs8DfJjIQxUxw%2Fuploads%2Fgit-blob-0c20a262939f347f6b5a8337f3a456ed9586b995%2Fdq-reports-icon.png?alt=media" alt="reports icon" data-size="line"> Reports icon in the left navigation pane.\ <i class="fa-chevrons-right">:chevrons-right:</i> The Reports page opens.
{% endstep %}

{% step %}
From the Reports page, click the **Hardware Usage Report** link.
{% endstep %}

{% step %}
For x-axis, select one of the following options from the dropdown:

* num\_executors
* **executor\_memory**
* **total\_memory**
* **total\_cores**
* **executor\_cores**
* **avg\_row\_count**
* **dataset**
  {% endstep %}

{% step %}
For y-axis, select one or more of the following options:

* **num\_executors**
* **executor\_memory**
* **total\_memory**
* **total\_cores**
* **executor\_cores**
* **avg\_row\_count**
* **dataset**
  {% endstep %}

{% step %}
For the type of chart you want to display, select one of the following options from the drop-down:

* **Line**
* **Area**
* **Column**
* **Scatter**
  {% endstep %}

{% step %}
Navigate the pages of your report by clicking the **Previous** and **Next** pagination buttons, located bottom-right of the columns.
{% endstep %}
{% endstepper %}

## Sample SQL query

You can use the following sample SQL query for a Hardware Usage report.

```
with most_current_dataset_scan as ( select dataset, avg(rc)::Int as avg_row_count from dataset_scan group by dataset )
 
     select opt.dataset, num_executors, executor_cores, executor_memory, (executor_cores * num_executors) total_cores,
            (NULLIF(regexp_replace(executor_memory, '\D', '', 'g'), '')::numeric * num_executors) as total_memory,
            ds.avg_row_count
     from opt_spark opt, most_current_dataset_scan ds
     where opt.dataset = ds.dataset
     order by total_cores desc limit 75
```
