From eeb57a9c6bdd326100fadf0d5f95eb01e3dd2866 Mon Sep 17 00:00:00 2001 From: Brandon Sanchez Date: Fri, 31 Oct 2025 12:14:06 -0400 Subject: [PATCH] Troubleshooting Query Plan Regressions guide --- .../v25.4/sidebar-data/troubleshooting.json | 6 + ...oubleshooting-query-plan-regressions-1.png | Bin 0 -> 114709 bytes .../troubleshoot-query-plan-regressions.md | 141 ++++++++++++++++++ 3 files changed, 147 insertions(+) create mode 100644 src/current/images/v25.4/troubleshooting-query-plan-regressions-1.png create mode 100644 src/current/v25.4/troubleshoot-query-plan-regressions.md diff --git a/src/current/_includes/v25.4/sidebar-data/troubleshooting.json b/src/current/_includes/v25.4/sidebar-data/troubleshooting.json index 886d5297ac6..763534bff74 100644 --- a/src/current/_includes/v25.4/sidebar-data/troubleshooting.json +++ b/src/current/_includes/v25.4/sidebar-data/troubleshooting.json @@ -62,6 +62,12 @@ "/${VERSION}/detect-hotspots.html" ] }, + { + "title": "Troubleshoot Query Plan Regressions", + "urls": [ + "/${VERSION}/troubleshoot-query-plan-regressions.html" + ] + }, { "title": "Troubleshoot Replication Zones", "urls": [ diff --git a/src/current/images/v25.4/troubleshooting-query-plan-regressions-1.png b/src/current/images/v25.4/troubleshooting-query-plan-regressions-1.png new file mode 100644 index 0000000000000000000000000000000000000000..3df0a413bfa2df9182d2dd430a62a7da226ade9e GIT binary patch literal 114709 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

3Dx(H}B2t9NHkZYT-9k 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

c4y;1wdi$7nEU-dKc6}hJ{ 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 literal 0 HcmV?d00001 diff --git a/src/current/v25.4/troubleshoot-query-plan-regressions.md b/src/current/v25.4/troubleshoot-query-plan-regressions.md new file mode 100644 index 00000000000..74f87c5bd8a --- /dev/null +++ b/src/current/v25.4/troubleshoot-query-plan-regressions.md @@ -0,0 +1,141 @@ +--- +title: Troubleshoot Query Plan Regressions +summary: Troubleshooting guide for when the cost-based optimizer chooses a new query plan that slows performance. +keywords: query plan, cost-based optimizer, troubleshooting +toc: true +docs_area: manage +--- + +This page provides guidance on identifying the source of [query plan]({% link {{page.version.version}}/cost-based-optimizer.md %}) regressions. + +If the [cost-based optimizer]({% link {{page.version.version}}/cost-based-optimizer.md %}) chooses a new query plan that slows performance, you may observe an unexpected increase in query latency. There are several reasons that the optimizer might choose a plan that increases execution time. This guide will help you understand, identify, and diagnose query plan regressions using built-in CockroachDB tools. + +## Before you begin + +- [Understand how the cost-based optimizer chooses query plans]({% link {{page.version.version}}/cost-based-optimizer.md %}) based on table statistics, and how those statistics are refreshed. + +## Query plan regressions vs. suboptimal plans + +The DB Console's [**Insights** page]({% link {{page.version.version}}/ui-insights-page.md %}) keeps track of [suboptimal plans]({% link {{page.version.version}}/ui-insights-page.md %}#suboptimal-plan). A suboptimal plan is a query plan whose execution time exceeds a certain threshold (configurable with the `sql.insights.latency_threshold` cluster setting) and whose slow execution has caused CockroachDB to generate an index recommendation for the table. Table statistics that were once valid, but which are now stale, can lead to a suboptimal plan scenario. A suboptimal plan scenario does not imply that the query plan has changed, and in fact a failure to change the query plan is often the root problem. The **Insights** page identifies these scenarios and provides recommendations on how to fix them. + +A query plan regression occurs when the cost-based optimizer chooses an optimal query plan, but then later it changes that query plan to a less optimal one. It is not the same thing as a suboptimal plan, though it is possible that the conditions that triggered a suboptimal plan insight were caused by a query plan regression. + +A suboptimal plan scenario that is not a regression will not increase query latency, as the query plan has not changed. A suboptimal plan scenario is instead the system's failure to decrease latency when it could have. A query plan regression will likely increase query latency. + +Though these two scenarios are conceptually different, both scenarios will likely require an update to the problematic query plan. + +## What to look out for + +Query plan regressions only increase the execution time of SQL statements that use that plan. This means that the overall service latency of the cluster will only be affected during the execution of statements that are run with the problematic query plan. + +This might make those latency spikes harder to identify. For example, if the problematic plan only affects a query that's run on an infrequent, ad-hoc basis, it might be difficult to notice a pattern among the graphs on the [**Metrics** page]({% link {{page.version.version}}/ui-overview.md %}#metrics). + +In order to identify and fix query plan regressions, you must be able to identify that certain statement executions are associated with increased service latency. Then you need to notice that that statement's query plan has changed. Finally, you need to use CockroachDB's tools to understand why that query plan has changed, so that you can be confident that the query plan change has directly caused the latency increase. + +## Troubleshooting + +### Step 1. Observe high cluster latency + +You might not be certain that any particular SQL statement has had a query plan regression. However, if you've observed cluster activity that is slower than usual, noting specific time intervals or application uses that are associated with that latency can help you identify problematic statements. + +#### Notice a recent latency increase in your application + +If you observe that your application is responding more slowly than usual, and this behavior hasn't been explained by recent changes to table schemas or data, or by changes to cluster workloads, it's worth considering a query plan regression. + +If application activity slows at a particular time of day, note the time interval so that you can isolate SQL statements that tend to run in that interval. + +If instead the latency is associated with a particular action (for example, adding a new user), note the action. Then search through your application's codebase to isolate SQL statements associated with that action. + +#### Identify trends in cluster metrics + +Knowing what service latency to expect, based on your cluster's usual activity, makes it easier to notice deviations from healthy cluster activity. + +1. Open the [DB Console]({% link {{page.version.version}}/ui-overview.md %}). +2. Go to the [**Metrics** page]({% link {{page.version.version}}/ui-overview.md %}#metrics). +3. Look at the graphs on the [**Overview Dashboard**]({% link {{page.version.version}}/ui-overview-dashboard.md %}). By default, the graphs display cluster data from the past hour, but you can adjust this with the time interval selector. +4. Find the **Service Latency: SQL Statements, 99th percentile** graph. Use it to identify instances when service latency is higher than expected, based on typical use. This will depend on your own specific business and technical considerations. +5. If you notice an unexplained latency increase, it's worth considering a query plan regression. Hover your cursor on the line in the graph at the beginning of the increase. The box that appears will indicate the time when the increase began. + +Query Plan Regression metrics graph + +The above is a very clean example. Note that on a production cluster, an increase like this might be obscured by the normal latency of your cluster's many other statement executions. + +### Step 2. Identify high-latency statements + +One way of tracking down query plan regressions is to identify SQL statements whose executions are relatively high in latency. Use one or both of the following methods to identify queries that might be associated with a latency increase. + +#### Use workload insights + +1. Go to the [**Insights** page]({% link {{page.version.version}}/ui-insights-page.md %}) in the DB Console. +2. Go to the [**Workload Insights** tab]({% link {{page.version.version}}/ui-insights-page.md %}#workload-insights-tab). +3. If you've already identified specific time intervals or statements in Step 1, you can use the **Search Statements** input to find particular queries and the time interval selector to create a custom time interval. Otherwise, consider all of the statements in the table. +4. Use the filters to find statements whose **Workload Insight Type** is "Slow Execution" or "Suboptimal Plan." +5. Click on the **Statement Fingerprint ID** to get more information about the SQL statement and its executions. + +#### Sort SQL activity + +1. Go to the [**SQL Activity** page]({% link {{page.version.version}}/ui-overview.md %}#sql-activity) in the DB Console. +2. If you've already identified specific time intervals in Step 1, you can use the time interval selector to create a custom time interval. Click **Apply**. +3. Among the resulting Statement Fingerprints, look for those with high latency. Click on the column headers to sort the results by **Statement Time** or **Max Latency**. +4. Click on the Statement Fingerprint to go to the page that details the statement and its executions. +{{site.data.alerts.callout_success}} +Look for statements whose **Execution Count** is high. Statements that are run once, such as import statements, aren't likely to be the cause of increased latency due to query plan regressions. +{{site.data.alerts.end}} + +Whether you arrived via the Insights page or the SQL Activity page, once you're on the Statement Fingerprint page, scroll down to the **Statement Times** graph to see a visual representation of the statement's execution times, and how the latency of those executions has changed over time. A sudden increase with no clear explanation may be caused by a query plan regression. + +You should now have identified one or more statements that are associated with high execution time. Note that high latency is not necessarily caused by a query plan regression, and query plan regressions might not necessarily increase latency enough to be caught by these methods. These methods will, however, help identify a cluster's high-impact query plan regressions. + +### Step 3. Examine the query plans behind suspect statements + +For any of the suspect SQL statements that you've identified, it's important to determine the cause of the high latency. Repeat the following steps for any of the statements that you suspect may have had a query plan regression: + +1. On the Statement Fingerprint page, click on the [**Explain Plans** tab]({% link {{page.version.version}}/ui-statements-page.md %}#explain-plans). +2. If you've already identified specific time intervals in Step 1, you can use the time interval selector to create a custom time interval. Click **Apply**. +3. If there is only one plan in the resulting table, there was only one plan used for this statement fingerprint during this time interval, and therefore a query plan regression could not have occurred. If there are multiple plans listed in the resulting table, the query plan changed within the given time interval. By default, the table is sorted from most recent to least recent query plan. Compare the **Average Execution Time** of the different plans. + +If a plan in the table has a significantly higher average execution time than the one that preceded it, it's possible that this is a query plan regression. It's also possible that the increase in latency is coincidental, or that the plan change was not the actual cause. For example, if the average execution time of the latest query plan is significantly higher than the average execution time of the previous query plan, this could be explained by a significant increase in the **Average Rows Read** column. + +### Step 4. Understand why the query plan changed + +For any query plans whose increased execution time remains unexplained, investigate further to understand why the plan changed. + +1. In the **Explain Plans** tab, click on the Plan Gist of the more recent plan to see it in more detail. +2. Click on **All Plans** above to return to the list of plans. +3. Click on the Plan Gist of the previous plan to see it in more detail. Compare the two plans to understand what changed. Do the plans use different indexes? Are they scanning the different portions of the table? Do they use different join strategies? +4. Note the **Last Execution Time** of the older plan. This might give some indication of when the plan changed. + +#### Determine if the table indexes changed + +1. Look at the **Used Indexes** column for the older and the newer query plans. If these aren't the same, it's likely that the creation or deletion of an index resulted in a change to the statement's query plan. +2. In the **Explain Plans** tab, click on the Plan Gist of the more recent plan to see it in more detail. Identify the table used in the initial "scan" step of the plan. +3. In your SQL client, run `SHOW INDEXES FROM ;` using that table name. +4. Make sure that the query plan is using an index that makes sense, given the query and the table's full set of indexes. + +It's possible that the new index is well-chosen but that the schema change triggered a statistics refresh that is the root problem. It's also possible that the new index is not ideal. Think about how and when this table gets queried, to determine if the index should be reconsidered. Read more about [secondary index best practices]({% link {{ page.version.version }}/schema-design-indexes.md %}#best-practices). + +#### Determine if the table statistics changed + +1. In the **Explain Plans** tab, click on the Plan Gist of the more recent plan to see it in more detail. Identify the table used in the initial "scan" step of the plan. +2. In your SQL client, run `SHOW STATISTICS FOR TABLE ;` using that table name. + + The results will include statistics that were collected for each column in that table. The value in the "created" column of these results tells you when the statistics were collected. Compare the statistics of each table column across multiple timestamps. A change in the values of `row_count`, `distinct_count`, `null_count`, or other statistics may have affected planning. If the timestamp of the new statistics creation is associated with the time that the query plan changed, there may be a causal relationship between the two. + +If you suspect that the query plan change is the cause of the latency increase, and you suspect that the query plan changed due to stale statistics, you may want to [manually refresh the statistics for the table]({% link {{ page.version.version }}/create-statistics.md %}#examples). + +#### Determine if a literal in the SQL statement has changed + +[NOTE FROM BRANDON: I need more information on this case, mainly how to identify that this is the case, and what to do about it.] + +If you suspect that the query plan change is the cause of the latency increase, and you suspect that the query plan changed due to a changed query literal, [what should you do] + +

+ +If none of the above methods are conclusive, consider [activating diagnostics]({% link {{ page.version.version }}/ui-statements-page.md %}#diagnostics) for the suspect statement fingerprints, or [contact support]({% link {{ page.version.version }}/support-resources.md %}). + +## See also + +- [Cost-Based Optimizer]({% link {{page.version.version}}/cost-based-optimizer.md %}) +- [Insights Page]({% link {{page.version.version}}/ui-insights-page.md %}) +- [Troubleshooting Overview]({% link {{page.version.version}}/troubleshooting-overview.md %}) +- [Support Resources]({% link {{page.version.version}}/support-resources.md %})