The Queries page in the Database section of the Admin menu lists information about the last 50 queries that Looker submitted to your database. For information about queries that are older than the most recent 50 queries, see the Usage section of Looker.
Basic query information
| Column | Definition |
|---|---|
| Time | The start time of the query, displayed in your application time zone. |
| Status | The status of the query, which can include:
|
| Connection | The Looker connection under which this query was run. |
| User | The user who ran this query, if that can be determined. Some queries are not executed by a specific user, such as when Looker creates a persistent derived table or when an unknown user accesses a public Look. |
| Source | The source of the query in Looker, such as the Explore page or SQL Runner. If possible, a link to the saved Look, or the query ID along with the name of the model and Explore, is also displayed. Some queries don't have additional information, such as those that are run in SQL Runner. Queries that are issued from the Open SQL Interface have a Source value of Sql_interface. |
| Runtime | The time it took to run the query. This includes the construction of the query, any time the query spent in the queue, transit to and from the database, and database execution of the query.If the query is running, the runtime will show how long the query has been running. For queries that were run previously, the runtime will also show an estimate of how much time the query will take to finish running. The estimate is based on the duration of the last run of the query and will say something like "of about 2s". |
| Details Button | See The Details Button subsection on this page for additional details. |
The Details button
Clicking the Details button to the right of any query will bring up additional information about that query. The Query Details menu includes the following:
- An Info section that includes details about the query (see the following table).
- A SQL section that shows the raw SQL that was executed against the database. Context Comments will not appear in the Query Details information. To prevent comments from affecting query caching, Looker adds the context comments to outgoing SQL commands right before the SQL is sent to the database.
- A SQL Interface query section that appears when a query has been issued through the Open SQL Interface. This section displays the SQL query that was sent to Looker from the external BI tool and can aid in troubleshooting and reproducing issues.
- An Open in SQL Runner link that will open the query in SQL Runner.
The Info section includes the following information:
| Section | Definition |
|---|---|
| History ID | The history ID of the query, if available. |
| Status | The status of the query, as described in the basic query information table. |
| Message | If the query contains a PDT, the PDT generation comment appears in this field. If the query does not contain a PDT, the field does not appear. |
| Connection | The Looker connection under which this query was run. |
| User | The user who ran this query, if that can be determined. Some queries are not executed by a specific user, such as when Looker creates a persistent derived table or when an unknown user accesses a public Look. |
| Source | The source of the query in Looker, such as the Explore page or SQL Runner. If possible, additional information is displayed, such as a link to the saved Look, the query ID, model name, Explore name, or the fields that were selected. |
| Start Time | The start time of the query, displayed in your application time zone. |
| End Time | The finish time of the query, displayed in your application time zone. |
| Runtime | The length of time it took to run the query. |
Query killing
For dialects that support query killing, Looker can stop a running query in two ways:
- Looker automatically stops a query if the user closes the browser tab in which the query is running.
- Looker admins can stop a running query from the Queries admin page by clicking the Stop button for the query. (Users with the
see_queriespermission can view the Queries page, but only Looker admins can stop a running query.)
For Looker to kill queries, either by closing the browser tab in which a query is running or by stopping the query in the Queries page, your database dialect must support query killing. The following table shows which dialects support query killing in the latest release of Looker:
| Dialect | Supported? |
|---|---|
| Actian Avalanche | Yes |
| Amazon Athena | Yes |
| Amazon Aurora MySQL | Yes |
| Amazon Redshift | Yes |
| Amazon Redshift 2.1+ | Yes |
| Amazon Redshift Serverless 2.1+ | Yes |
| Apache Druid | No |
| Apache Druid 0.13+ | No |
| Apache Druid 0.18+ | No |
| Apache Hive 2.3+ | Yes |
| Apache Hive 3.1.2+ | Yes |
| Apache Spark 3+ | Yes |
| ClickHouse | Yes |
| Cloudera Impala 3.1+ | Yes |
| Cloudera Impala 3.1+ with Native Driver | Yes |
| Cloudera Impala with Native Driver | Yes |
| DataVirtuality | Yes |
| Databricks | Yes |
| Denodo 7 | Yes |
| Denodo 8 & 9 | Yes |
| Dremio | Yes |
| Dremio 11+ | Yes |
| Exasol | Yes |
| Google BigQuery Legacy SQL | Yes |
| Google BigQuery Standard SQL | Yes |
| Google Cloud PostgreSQL | Yes |
| Google Cloud SQL | No |
| Google Spanner | Yes |
| Greenplum | Yes |
| HyperSQL | No |
| IBM Netezza | Yes |
| MariaDB | Yes |
| Microsoft Azure PostgreSQL | Yes |
| Microsoft Azure SQL Database | Yes |
| Microsoft Azure Synapse Analytics | Yes |
| Microsoft SQL Server 2008+ | Yes |
| Microsoft SQL Server 2012+ | Yes |
| Microsoft SQL Server 2016 | Yes |
| Microsoft SQL Server 2017+ | Yes |
| MongoBI | Yes |
| MySQL | Yes |
| MySQL 8.0.12+ | Yes |
| Oracle | Yes |
| Oracle ADWC | Yes |
| PostgreSQL 9.5+ | Yes |
| PostgreSQL pre-9.5 | Yes |
| PrestoDB | Yes |
| PrestoSQL | Yes |
| SAP HANA | Yes |
| SAP HANA 2+ | Yes |
| SingleStore | Yes |
| SingleStore 7+ | Yes |
| Snowflake | Yes |
| Teradata | Yes |
| Trino | Yes |
| Vector | Yes |
| Vertica | Yes |
Query timeouts and queueing
Looker kills queries that have been waiting in queue for too long. This operation is called a timeout. Several timeouts may apply to your query:
Connection pool timeout and maximum concurrent queries: To prevent overloading of your database with concurrent queries, Looker holds excess concurrent queries in the Looker query queue, and will kill queries that remain in queue for too long. By default, 75 maximum concurrent queries are allowed per connection. Additional queries beyond the connection limit will be timed out after 0 seconds. To change these defaults, configure the Max connections, Max concurrent queries for this connection, and Connection pool timeout settings on a connection's Connections Settings page.
Per-user query limit and timeout: To prevent any single user from filling up the Looker query queue, each user has a maximum number of allowed concurrent queries and a corresponding queue timeout for queries that are queued because of concurrent query limit. The per-user limit applies to both users who log in to Looker using the regular authentication process, and to users who log in using API user credentials. There are two ways you can define the maximum number of per-user concurrent queries for connections on your Looker instance:
- The
per-user-query-limitstartup option. This is an instance-wide setting that sets the default for connections on your instance. Theper-user-query-limitstartup option limits the number of concurrent queries per user, per connection, per node on the Looker instance. The default maximum of 15 concurrent queries per user applies to each valid connection and, if your Looker instance is clustered, to each node in the cluster. By default, each user can run a maximum of 15 concurrent queries per connection, per node, with a timeout of 600 seconds. For example, if you have a 5-node cluster with aper-user-query-limitof 15, each node will allow 15 concurrent queries per user for this connection, for a total of 75 queries across all nodes (15 * 5 = 75).
You can change the per-user query limit for a connection by using the Max concurrent queries per user for this connection setting on the connection's Connection Settings page. If your Looker instance is customer-hosted, you can change the default maximum number of per-user concurrent queries by configuring the
--per-user-query-limitstartup option, and you can configure the queue timeout by using the--per-user-query-timeoutstartup option.- The Max concurrent queries per user for this connection option in the Connections Settings for a connection. The Max concurrent queries per user for this connection setting has a default of 25, and is per user and per connection, but not per node. For example, if you have a 5-node cluster and you set this value to 15, each node will allow 3 concurrent queries per user for this connection (15 / 5 = 3), for a total of 15 queries across all nodes. For a connection, if a value is provided for the Max concurrent queries per user for this connection setting, the Max concurrent queries per user for this connection value will override the
per-user-query-limitstartup option for the connection.
- The
Scheduler query limit and timeout: To prevent overloading of the Looker scheduler process, a Looker instance can run a maximum of 10 concurrent scheduled queries, and the timeout for queries in the scheduler queue is 1,200 seconds. If your Looker instance is customer-hosted, you can change these defaults by configuring the
--scheduler-query-limitand--scheduler-query-timeoutstartup options.Renderer query limit and timeout: To prevent overloading of the Looker renderer process, a Looker instance can render a maximum of 2 concurrent image-based downloads, such as PDF and PNG formats. If your Looker instance is customer-hosted, you can change this default by configuring the
--concurrent-render-jobsstartup option.
Proxy timeout: Customer-hosted instances often use proxies with a default timeout of 60 seconds. We recommend that this timeout be increased to 60 minutes. See the Running Looker behind a proxy server or load balancer Looker Community post for more information.
Database timeout: Most databases have rules for queueing and timeouts that are independent of Looker's queues and timeouts. For example, a query may have left the Looker queue, but it can still be queued on your database. Check the documentation for your database for more information on customizing database query timeouts.