diff --git a/src/current/v23.2/row-level-ttl.md b/src/current/v23.2/row-level-ttl.md
index eb024ccc7ac..2c3284beef8 100644
--- a/src/current/v23.2/row-level-ttl.md
+++ b/src/current/v23.2/row-level-ttl.md
@@ -149,8 +149,8 @@ The settings that control the behavior of Row-Level TTL are provided using [stor
| `ttl` | Signifies if a TTL is active. Automatically set. | N/A |
| `ttl_select_batch_size` | How many rows to [select]({% link {{ page.version.version }}/select-clause.md %}) at one time during the row expiration check. Defaults to the value of the associated cluster setting if unset. | `sql.ttl.default_select_batch_size`
Default: 500. Minimum: 1. |
| `ttl_delete_batch_size` | How many rows to [delete]({% link {{ page.version.version }}/delete.md %}) at a time. Defaults to the value of the associated cluster setting if unset.| `sql.ttl.default_delete_batch_size`
Default: 100. Minimum: 1. |
-| `ttl_select_rate_limit` | Maximum number of rows to be selected per second (rate limit). Defaults to the value of the associated cluster setting if unset.
Note: The rate limit is applied per leaseholder per table. In practice, it will vary based on the number of [ranges]({% link {{ page.version.version }}/architecture/overview.md %}#architecture-range) and [leaseholders]({% link {{ page.version.version }}/architecture/overview.md %}#architecture-leaseholder).
For example, if this variable is set to 500, and a table `public.foo` has its ranges spread across 3 leaseholders, then the cluster-wide rate limit for `public.foo` is 500 x 3 = 1500.
To determine the number of leaseholders for some table `public.bar` on CockroachDB v23.1+, issue the following query against the output of [`SHOW RANGES ... WITH DETAILS`]({% link {{ page.version.version }}/show-ranges.md %}#show-ranges-for-a-table-with-details):
`SELECT count(DISTINCT lease_holder) FROM [SHOW RANGES FROM TABLE public.bar WITH DETAILS];` | `sql.ttl.default_select_rate_limit`
Default: 0. Minimum: 0 (unlimited).|
-| `ttl_delete_rate_limit` | Maximum number of rows to be deleted per second (rate limit). Defaults to the value of the associated cluster setting if unset.
Note: The rate limit is applied per leaseholder per table. In practice, it will vary based on the number of [ranges]({% link {{ page.version.version }}/architecture/overview.md %}#architecture-range) and [leaseholders]({% link {{ page.version.version }}/architecture/overview.md %}#architecture-leaseholder).
For example, if this variable is set to 500, and a table `public.foo` has its ranges spread across 3 leaseholders, then the cluster-wide rate limit for `public.foo` is 500 x 3 = 1500.
To determine the number of leaseholders for some table `public.bar` on CockroachDB v23.1+, issue the following query against the output of [`SHOW RANGES ... WITH DETAILS`]({% link {{ page.version.version }}/show-ranges.md %}#show-ranges-for-a-table-with-details):
`SELECT count(DISTINCT lease_holder) FROM [SHOW RANGES FROM TABLE public.bar WITH DETAILS];` | `sql.ttl.default_delete_rate_limit`
Default: 100. Minimum: 0 (unlimited).|
+| `ttl_select_rate_limit` | Maximum number of rows to be selected per second (rate limit). Defaults to the value of the associated cluster setting if unset.
Note: The rate limit is applied per node per table. The TTL job prefers to assign work to the leaseholder of each range, but this is not guaranteed. In some cases, non-leaseholder nodes may be assigned work.
As a result, the effective cluster-wide rate depends on how many nodes end up processing TTL work for the table. | `sql.ttl.default_select_rate_limit`
Default: 0. Minimum: 0 (unlimited). |
+| `ttl_delete_rate_limit` | Maximum number of rows to be deleted per second (rate limit). Defaults to the value of the associated cluster setting if unset.
Note: The rate limit is applied per node per table, with the same leaseholder preference and fallback behavior as `ttl_select_rate_limit`.
The actual cluster-wide rate will vary depending on which nodes execute TTL work. | `sql.ttl.default_delete_rate_limit`
Default: 100. Minimum: 0 (unlimited). |
| `ttl_row_stats_poll_interval` | If set, counts rows and expired rows on the table to report as Prometheus metrics while the TTL job is running. Unset by default, meaning no stats are fetched and reported. | N/A |
| `ttl_pause` | If set, stops the TTL job from executing. | N/A |
| `ttl_job_cron` | Frequency at which the TTL job runs, specified using [CRON syntax](https://cron.help). New in v23.2: Default: `'@daily'` (was `'@hourly'`). | N/A |
diff --git a/src/current/v24.1/row-level-ttl.md b/src/current/v24.1/row-level-ttl.md
index 8d33724c462..3fef44a31e9 100644
--- a/src/current/v24.1/row-level-ttl.md
+++ b/src/current/v24.1/row-level-ttl.md
@@ -148,8 +148,8 @@ The settings that control the behavior of Row-Level TTL are provided using [stor
| `ttl` | Signifies if a TTL is active. Automatically set. | N/A |
| `ttl_select_batch_size` | How many rows to [select]({% link {{ page.version.version }}/select-clause.md %}) at one time during the row expiration check. Defaults to the value of the associated cluster setting if unset. | `sql.ttl.default_select_batch_size`
Default: 500. Minimum: 1. |
| `ttl_delete_batch_size` | How many rows to [delete]({% link {{ page.version.version }}/delete.md %}) at a time. Defaults to the value of the associated cluster setting if unset. | `sql.ttl.default_delete_batch_size`
Default: 100. Minimum: 1. |
-| `ttl_select_rate_limit` | Maximum number of rows to be selected per second (rate limit). Defaults to the value of the associated cluster setting if unset.
Note: The rate limit is applied per leaseholder per table. In practice, it will vary based on the number of [ranges]({% link {{ page.version.version }}/architecture/overview.md %}#architecture-range) and [leaseholders]({% link {{ page.version.version }}/architecture/overview.md %}#architecture-leaseholder).
For example, if this variable is set to 500, and a table `public.foo` has its ranges spread across 3 leaseholders, then the cluster-wide rate limit for `public.foo` is 500 x 3 = 1500.
To determine the number of leaseholders for some table `public.bar` on CockroachDB v23.1+, issue the following query against the output of [`SHOW RANGES ... WITH DETAILS`]({% link {{ page.version.version }}/show-ranges.md %}#show-ranges-for-a-table-with-details):
`SELECT count(DISTINCT lease_holder) FROM [SHOW RANGES FROM TABLE public.bar WITH DETAILS];` | `sql.ttl.default_select_rate_limit`
Default: 0. Minimum: 0 (unlimited). |
-| `ttl_delete_rate_limit` | Maximum number of rows to be deleted per second (rate limit). Defaults to the value of the associated cluster setting if unset.
Note: The rate limit is applied per leaseholder per table. In practice, it will vary based on the number of [ranges]({% link {{ page.version.version }}/architecture/overview.md %}#architecture-range) and [leaseholders]({% link {{ page.version.version }}/architecture/overview.md %}#architecture-leaseholder).
For example, if this variable is set to 500, and a table `public.foo` has its ranges spread across 3 leaseholders, then the cluster-wide rate limit for `public.foo` is 500 x 3 = 1500.
To determine the number of leaseholders for some table `public.bar` on CockroachDB v23.1+, issue the following query against the output of [`SHOW RANGES ... WITH DETAILS`]({% link {{ page.version.version }}/show-ranges.md %}#show-ranges-for-a-table-with-details):
`SELECT count(DISTINCT lease_holder) FROM [SHOW RANGES FROM TABLE public.bar WITH DETAILS];` | `sql.ttl.default_delete_rate_limit`
Default: 100. Minimum: 0 (unlimited). |
+| `ttl_select_rate_limit` | Maximum number of rows to be selected per second (rate limit). Defaults to the value of the associated cluster setting if unset.
Note: The rate limit is applied per node per table. The TTL job prefers to assign work to the leaseholder of each range, but this is not guaranteed. In some cases, non-leaseholder nodes may be assigned work.
As a result, the effective cluster-wide rate depends on how many nodes end up processing TTL work for the table. | `sql.ttl.default_select_rate_limit`
Default: 0. Minimum: 0 (unlimited). |
+| `ttl_delete_rate_limit` | Maximum number of rows to be deleted per second (rate limit). Defaults to the value of the associated cluster setting if unset.
Note: The rate limit is applied per node per table, with the same leaseholder preference and fallback behavior as `ttl_select_rate_limit`.
The actual cluster-wide rate will vary depending on which nodes execute TTL work. | `sql.ttl.default_delete_rate_limit`
Default: 100. Minimum: 0 (unlimited). |
| `ttl_row_stats_poll_interval` | If set, counts rows and expired rows on the table to report as Prometheus metrics while the TTL job is running. Unset by default, meaning no stats are fetched and reported. | N/A |
| `ttl_pause` | If set, stops the TTL job from executing. | N/A |
| `ttl_job_cron` | Frequency at which the TTL job runs, specified using [CRON syntax](https://cron.help). Default: `'@daily'` (was `'@hourly'`). | N/A |
diff --git a/src/current/v24.2/row-level-ttl.md b/src/current/v24.2/row-level-ttl.md
index aaec52dafb3..74422e454c0 100644
--- a/src/current/v24.2/row-level-ttl.md
+++ b/src/current/v24.2/row-level-ttl.md
@@ -148,8 +148,8 @@ The settings that control the behavior of Row-Level TTL are provided using [stor
| `ttl` | Signifies if a TTL is active. Automatically set. | N/A |
| `ttl_select_batch_size` | How many rows to [select]({% link {{ page.version.version }}/select-clause.md %}) at one time during the row expiration check. Defaults to the value of the associated cluster setting if unset. | `sql.ttl.default_select_batch_size`
Default: 500. Minimum: 1. |
| `ttl_delete_batch_size` | How many rows to [delete]({% link {{ page.version.version }}/delete.md %}) at a time. Defaults to the value of the associated cluster setting if unset. | `sql.ttl.default_delete_batch_size`
Default: 100. Minimum: 1. |
-| `ttl_select_rate_limit` | Maximum number of rows to be selected per second (rate limit). Defaults to the value of the associated cluster setting if unset.
Note: The rate limit is applied per leaseholder per table. In practice, it will vary based on the number of [ranges]({% link {{ page.version.version }}/architecture/overview.md %}#architecture-range) and [leaseholders]({% link {{ page.version.version }}/architecture/overview.md %}#architecture-leaseholder).
For example, if this variable is set to 500, and a table `public.foo` has its ranges spread across 3 leaseholders, then the cluster-wide rate limit for `public.foo` is 500 x 3 = 1500.
To determine the number of leaseholders for some table `public.bar` on CockroachDB v23.1+, issue the following query against the output of [`SHOW RANGES ... WITH DETAILS`]({% link {{ page.version.version }}/show-ranges.md %}#show-ranges-for-a-table-with-details):
`SELECT count(DISTINCT lease_holder) FROM [SHOW RANGES FROM TABLE public.bar WITH DETAILS];` | `sql.ttl.default_select_rate_limit`
Default: 0. Minimum: 0 (unlimited). |
-| `ttl_delete_rate_limit` | Maximum number of rows to be deleted per second (rate limit). Defaults to the value of the associated cluster setting if unset.
Note: The rate limit is applied per leaseholder per table. In practice, it will vary based on the number of [ranges]({% link {{ page.version.version }}/architecture/overview.md %}#architecture-range) and [leaseholders]({% link {{ page.version.version }}/architecture/overview.md %}#architecture-leaseholder).
For example, if this variable is set to 500, and a table `public.foo` has its ranges spread across 3 leaseholders, then the cluster-wide rate limit for `public.foo` is 500 x 3 = 1500.
To determine the number of leaseholders for some table `public.bar` on CockroachDB v23.1+, issue the following query against the output of [`SHOW RANGES ... WITH DETAILS`]({% link {{ page.version.version }}/show-ranges.md %}#show-ranges-for-a-table-with-details):
`SELECT count(DISTINCT lease_holder) FROM [SHOW RANGES FROM TABLE public.bar WITH DETAILS];` | `sql.ttl.default_delete_rate_limit`
Default: 100. Minimum: 0 (unlimited). |
+| `ttl_select_rate_limit` | Maximum number of rows to be selected per second (rate limit). Defaults to the value of the associated cluster setting if unset.
Note: The rate limit is applied per node per table. The TTL job prefers to assign work to the leaseholder of each range, but this is not guaranteed. In some cases, non-leaseholder nodes may be assigned work.
As a result, the effective cluster-wide rate depends on how many nodes end up processing TTL work for the table. | `sql.ttl.default_select_rate_limit`
Default: 0. Minimum: 0 (unlimited). |
+| `ttl_delete_rate_limit` | Maximum number of rows to be deleted per second (rate limit). Defaults to the value of the associated cluster setting if unset.
Note: The rate limit is applied per node per table, with the same leaseholder preference and fallback behavior as `ttl_select_rate_limit`.
The actual cluster-wide rate will vary depending on which nodes execute TTL work. | `sql.ttl.default_delete_rate_limit`
Default: 100. Minimum: 0 (unlimited). |
| `ttl_row_stats_poll_interval` | If set, counts rows and expired rows on the table to report as Prometheus metrics while the TTL job is running. Unset by default, meaning no stats are fetched and reported. | N/A |
| `ttl_pause` | If set, stops the TTL job from executing. | N/A |
| `ttl_job_cron` | Frequency at which the TTL job runs, specified using [CRON syntax](https://cron.help). Default: `'@daily'` (was `'@hourly'`). | N/A |
diff --git a/src/current/v24.3/row-level-ttl.md b/src/current/v24.3/row-level-ttl.md
index aaec52dafb3..74422e454c0 100644
--- a/src/current/v24.3/row-level-ttl.md
+++ b/src/current/v24.3/row-level-ttl.md
@@ -148,8 +148,8 @@ The settings that control the behavior of Row-Level TTL are provided using [stor
| `ttl` | Signifies if a TTL is active. Automatically set. | N/A |
| `ttl_select_batch_size` | How many rows to [select]({% link {{ page.version.version }}/select-clause.md %}) at one time during the row expiration check. Defaults to the value of the associated cluster setting if unset. | `sql.ttl.default_select_batch_size`
Default: 500. Minimum: 1. |
| `ttl_delete_batch_size` | How many rows to [delete]({% link {{ page.version.version }}/delete.md %}) at a time. Defaults to the value of the associated cluster setting if unset. | `sql.ttl.default_delete_batch_size`
Default: 100. Minimum: 1. |
-| `ttl_select_rate_limit` | Maximum number of rows to be selected per second (rate limit). Defaults to the value of the associated cluster setting if unset.
Note: The rate limit is applied per leaseholder per table. In practice, it will vary based on the number of [ranges]({% link {{ page.version.version }}/architecture/overview.md %}#architecture-range) and [leaseholders]({% link {{ page.version.version }}/architecture/overview.md %}#architecture-leaseholder).
For example, if this variable is set to 500, and a table `public.foo` has its ranges spread across 3 leaseholders, then the cluster-wide rate limit for `public.foo` is 500 x 3 = 1500.
To determine the number of leaseholders for some table `public.bar` on CockroachDB v23.1+, issue the following query against the output of [`SHOW RANGES ... WITH DETAILS`]({% link {{ page.version.version }}/show-ranges.md %}#show-ranges-for-a-table-with-details):
`SELECT count(DISTINCT lease_holder) FROM [SHOW RANGES FROM TABLE public.bar WITH DETAILS];` | `sql.ttl.default_select_rate_limit`
Default: 0. Minimum: 0 (unlimited). |
-| `ttl_delete_rate_limit` | Maximum number of rows to be deleted per second (rate limit). Defaults to the value of the associated cluster setting if unset.
Note: The rate limit is applied per leaseholder per table. In practice, it will vary based on the number of [ranges]({% link {{ page.version.version }}/architecture/overview.md %}#architecture-range) and [leaseholders]({% link {{ page.version.version }}/architecture/overview.md %}#architecture-leaseholder).
For example, if this variable is set to 500, and a table `public.foo` has its ranges spread across 3 leaseholders, then the cluster-wide rate limit for `public.foo` is 500 x 3 = 1500.
To determine the number of leaseholders for some table `public.bar` on CockroachDB v23.1+, issue the following query against the output of [`SHOW RANGES ... WITH DETAILS`]({% link {{ page.version.version }}/show-ranges.md %}#show-ranges-for-a-table-with-details):
`SELECT count(DISTINCT lease_holder) FROM [SHOW RANGES FROM TABLE public.bar WITH DETAILS];` | `sql.ttl.default_delete_rate_limit`
Default: 100. Minimum: 0 (unlimited). |
+| `ttl_select_rate_limit` | Maximum number of rows to be selected per second (rate limit). Defaults to the value of the associated cluster setting if unset.
Note: The rate limit is applied per node per table. The TTL job prefers to assign work to the leaseholder of each range, but this is not guaranteed. In some cases, non-leaseholder nodes may be assigned work.
As a result, the effective cluster-wide rate depends on how many nodes end up processing TTL work for the table. | `sql.ttl.default_select_rate_limit`
Default: 0. Minimum: 0 (unlimited). |
+| `ttl_delete_rate_limit` | Maximum number of rows to be deleted per second (rate limit). Defaults to the value of the associated cluster setting if unset.
Note: The rate limit is applied per node per table, with the same leaseholder preference and fallback behavior as `ttl_select_rate_limit`.
The actual cluster-wide rate will vary depending on which nodes execute TTL work. | `sql.ttl.default_delete_rate_limit`
Default: 100. Minimum: 0 (unlimited). |
| `ttl_row_stats_poll_interval` | If set, counts rows and expired rows on the table to report as Prometheus metrics while the TTL job is running. Unset by default, meaning no stats are fetched and reported. | N/A |
| `ttl_pause` | If set, stops the TTL job from executing. | N/A |
| `ttl_job_cron` | Frequency at which the TTL job runs, specified using [CRON syntax](https://cron.help). Default: `'@daily'` (was `'@hourly'`). | N/A |
diff --git a/src/current/v25.1/row-level-ttl.md b/src/current/v25.1/row-level-ttl.md
index aaec52dafb3..74422e454c0 100644
--- a/src/current/v25.1/row-level-ttl.md
+++ b/src/current/v25.1/row-level-ttl.md
@@ -148,8 +148,8 @@ The settings that control the behavior of Row-Level TTL are provided using [stor
| `ttl` | Signifies if a TTL is active. Automatically set. | N/A |
| `ttl_select_batch_size` | How many rows to [select]({% link {{ page.version.version }}/select-clause.md %}) at one time during the row expiration check. Defaults to the value of the associated cluster setting if unset. | `sql.ttl.default_select_batch_size`
Default: 500. Minimum: 1. |
| `ttl_delete_batch_size` | How many rows to [delete]({% link {{ page.version.version }}/delete.md %}) at a time. Defaults to the value of the associated cluster setting if unset. | `sql.ttl.default_delete_batch_size`
Default: 100. Minimum: 1. |
-| `ttl_select_rate_limit` | Maximum number of rows to be selected per second (rate limit). Defaults to the value of the associated cluster setting if unset.
Note: The rate limit is applied per leaseholder per table. In practice, it will vary based on the number of [ranges]({% link {{ page.version.version }}/architecture/overview.md %}#architecture-range) and [leaseholders]({% link {{ page.version.version }}/architecture/overview.md %}#architecture-leaseholder).
For example, if this variable is set to 500, and a table `public.foo` has its ranges spread across 3 leaseholders, then the cluster-wide rate limit for `public.foo` is 500 x 3 = 1500.
To determine the number of leaseholders for some table `public.bar` on CockroachDB v23.1+, issue the following query against the output of [`SHOW RANGES ... WITH DETAILS`]({% link {{ page.version.version }}/show-ranges.md %}#show-ranges-for-a-table-with-details):
`SELECT count(DISTINCT lease_holder) FROM [SHOW RANGES FROM TABLE public.bar WITH DETAILS];` | `sql.ttl.default_select_rate_limit`
Default: 0. Minimum: 0 (unlimited). |
-| `ttl_delete_rate_limit` | Maximum number of rows to be deleted per second (rate limit). Defaults to the value of the associated cluster setting if unset.
Note: The rate limit is applied per leaseholder per table. In practice, it will vary based on the number of [ranges]({% link {{ page.version.version }}/architecture/overview.md %}#architecture-range) and [leaseholders]({% link {{ page.version.version }}/architecture/overview.md %}#architecture-leaseholder).
For example, if this variable is set to 500, and a table `public.foo` has its ranges spread across 3 leaseholders, then the cluster-wide rate limit for `public.foo` is 500 x 3 = 1500.
To determine the number of leaseholders for some table `public.bar` on CockroachDB v23.1+, issue the following query against the output of [`SHOW RANGES ... WITH DETAILS`]({% link {{ page.version.version }}/show-ranges.md %}#show-ranges-for-a-table-with-details):
`SELECT count(DISTINCT lease_holder) FROM [SHOW RANGES FROM TABLE public.bar WITH DETAILS];` | `sql.ttl.default_delete_rate_limit`
Default: 100. Minimum: 0 (unlimited). |
+| `ttl_select_rate_limit` | Maximum number of rows to be selected per second (rate limit). Defaults to the value of the associated cluster setting if unset.
Note: The rate limit is applied per node per table. The TTL job prefers to assign work to the leaseholder of each range, but this is not guaranteed. In some cases, non-leaseholder nodes may be assigned work.
As a result, the effective cluster-wide rate depends on how many nodes end up processing TTL work for the table. | `sql.ttl.default_select_rate_limit`
Default: 0. Minimum: 0 (unlimited). |
+| `ttl_delete_rate_limit` | Maximum number of rows to be deleted per second (rate limit). Defaults to the value of the associated cluster setting if unset.
Note: The rate limit is applied per node per table, with the same leaseholder preference and fallback behavior as `ttl_select_rate_limit`.
The actual cluster-wide rate will vary depending on which nodes execute TTL work. | `sql.ttl.default_delete_rate_limit`
Default: 100. Minimum: 0 (unlimited). |
| `ttl_row_stats_poll_interval` | If set, counts rows and expired rows on the table to report as Prometheus metrics while the TTL job is running. Unset by default, meaning no stats are fetched and reported. | N/A |
| `ttl_pause` | If set, stops the TTL job from executing. | N/A |
| `ttl_job_cron` | Frequency at which the TTL job runs, specified using [CRON syntax](https://cron.help). Default: `'@daily'` (was `'@hourly'`). | N/A |
diff --git a/src/current/v25.2/row-level-ttl.md b/src/current/v25.2/row-level-ttl.md
index 32f146e3668..a4e17d0a5b0 100644
--- a/src/current/v25.2/row-level-ttl.md
+++ b/src/current/v25.2/row-level-ttl.md
@@ -148,8 +148,8 @@ The settings that control the behavior of Row-Level TTL are provided using [stor
| `ttl` | Signifies if a TTL is active. Automatically set. | N/A |
| `ttl_select_batch_size` | How many rows to [select]({% link {{ page.version.version }}/select-clause.md %}) at one time during the row expiration check. Defaults to the value of the associated cluster setting if unset. | `sql.ttl.default_select_batch_size`
Default: 500. Minimum: 1. |
| `ttl_delete_batch_size` | How many rows to [delete]({% link {{ page.version.version }}/delete.md %}) at a time. Defaults to the value of the associated cluster setting if unset.| `sql.ttl.default_delete_batch_size`
Default: 100. Minimum: 1. |
-| `ttl_select_rate_limit` | Maximum number of rows to be selected per second (rate limit). Defaults to the value of the associated cluster setting if unset.
Note: The rate limit is applied per leaseholder per table. In practice, it will vary based on the number of [ranges]({% link {{ page.version.version }}/architecture/overview.md %}#architecture-range) and [leaseholders]({% link {{ page.version.version }}/architecture/overview.md %}#architecture-leaseholder).
For example, if this variable is set to 500, and a table `public.foo` has its ranges spread across 3 leaseholders, then the cluster-wide rate limit for `public.foo` is 500 x 3 = 1500.
To determine the number of leaseholders for some table `public.bar` on CockroachDB v23.1+, issue the following query against the output of [`SHOW RANGES ... WITH DETAILS`]({% link {{ page.version.version }}/show-ranges.md %}#show-ranges-for-a-table-with-details):
`SELECT count(DISTINCT lease_holder) FROM [SHOW RANGES FROM TABLE public.bar WITH DETAILS];` | `sql.ttl.default_select_rate_limit`
Default: 0. Minimum: 0 (unlimited).|
-| `ttl_delete_rate_limit` | Maximum number of rows to be deleted per second (rate limit). Defaults to the value of the associated cluster setting if unset.
Note: The rate limit is applied per leaseholder per table. In practice, it will vary based on the number of [ranges]({% link {{ page.version.version }}/architecture/overview.md %}#architecture-range) and [leaseholders]({% link {{ page.version.version }}/architecture/overview.md %}#architecture-leaseholder).
For example, if this variable is set to 500, and a table `public.foo` has its ranges spread across 3 leaseholders, then the cluster-wide rate limit for `public.foo` is 500 x 3 = 1500.
To determine the number of leaseholders for some table `public.bar` on CockroachDB v23.1+, issue the following query against the output of [`SHOW RANGES ... WITH DETAILS`]({% link {{ page.version.version }}/show-ranges.md %}#show-ranges-for-a-table-with-details):
`SELECT count(DISTINCT lease_holder) FROM [SHOW RANGES FROM TABLE public.bar WITH DETAILS];` | `sql.ttl.default_delete_rate_limit`
Default: 100. Minimum: 0 (unlimited).|
+| `ttl_select_rate_limit` | Maximum number of rows to be selected per second (rate limit). Defaults to the value of the associated cluster setting if unset.
Note: The rate limit is applied per node per table. The TTL job prefers to assign work to the leaseholder of each range, but this is not guaranteed. In some cases, non-leaseholder nodes may be assigned work.
As a result, the effective cluster-wide rate depends on how many nodes end up processing TTL work for the table. | `sql.ttl.default_select_rate_limit`
Default: 0. Minimum: 0 (unlimited). |
+| `ttl_delete_rate_limit` | Maximum number of rows to be deleted per second (rate limit). Defaults to the value of the associated cluster setting if unset.
Note: The rate limit is applied per node per table, with the same leaseholder preference and fallback behavior as `ttl_select_rate_limit`.
The actual cluster-wide rate will vary depending on which nodes execute TTL work. | `sql.ttl.default_delete_rate_limit`
Default: 100. Minimum: 0 (unlimited). |
| `ttl_row_stats_poll_interval` | If set, counts rows and expired rows on the table to report as Prometheus metrics while the TTL job is running. Unset by default, meaning no stats are fetched and reported. | N/A |
| `ttl_pause` | If set, stops the TTL job from executing. | N/A |
| `ttl_job_cron` | Frequency at which the TTL job runs, specified using [CRON syntax](https://cron.help). Default: `'@daily'` (was `'@hourly'`). | N/A |
diff --git a/src/current/v25.3/row-level-ttl.md b/src/current/v25.3/row-level-ttl.md
index 9e549d9ab6f..aeb42724d07 100644
--- a/src/current/v25.3/row-level-ttl.md
+++ b/src/current/v25.3/row-level-ttl.md
@@ -148,8 +148,8 @@ The settings that control the behavior of Row-Level TTL are provided using [stor
| `ttl` | Signifies if a TTL is active. Automatically set. | N/A |
| `ttl_select_batch_size` | How many rows to [select]({% link {{ page.version.version }}/select-clause.md %}) at one time during the row expiration check. Defaults to the value of the associated cluster setting if unset. | `sql.ttl.default_select_batch_size`
Default: 500. Minimum: 1. |
| `ttl_delete_batch_size` | How many rows to [delete]({% link {{ page.version.version }}/delete.md %}) at a time. Defaults to the value of the associated cluster setting if unset.| `sql.ttl.default_delete_batch_size`
Default: 100. Minimum: 1. |
-| `ttl_select_rate_limit` | Maximum number of rows to be selected per second (rate limit). Defaults to the value of the associated cluster setting if unset.
Note: The rate limit is applied per leaseholder per table. In practice, it will vary based on the number of [ranges]({% link {{ page.version.version }}/architecture/overview.md %}#architecture-range) and [leaseholders]({% link {{ page.version.version }}/architecture/overview.md %}#architecture-leaseholder).
For example, if this variable is set to 500, and a table `public.foo` has its ranges spread across 3 leaseholders, then the cluster-wide rate limit for `public.foo` is 500 x 3 = 1500.
To determine the number of leaseholders for some table `public.bar` on CockroachDB v23.1+, issue the following query against the output of [`SHOW RANGES ... WITH DETAILS`]({% link {{ page.version.version }}/show-ranges.md %}#show-ranges-for-a-table-with-details):
`SELECT count(DISTINCT lease_holder) FROM [SHOW RANGES FROM TABLE public.bar WITH DETAILS];` | `sql.ttl.default_select_rate_limit`
Default: 0. Minimum: 0 (unlimited).|
-| `ttl_delete_rate_limit` | Maximum number of rows to be deleted per second (rate limit). Defaults to the value of the associated cluster setting if unset.
Note: The rate limit is applied per leaseholder per table. In practice, it will vary based on the number of [ranges]({% link {{ page.version.version }}/architecture/overview.md %}#architecture-range) and [leaseholders]({% link {{ page.version.version }}/architecture/overview.md %}#architecture-leaseholder).
For example, if this variable is set to 500, and a table `public.foo` has its ranges spread across 3 leaseholders, then the cluster-wide rate limit for `public.foo` is 500 x 3 = 1500.
To determine the number of leaseholders for some table `public.bar` on CockroachDB v23.1+, issue the following query against the output of [`SHOW RANGES ... WITH DETAILS`]({% link {{ page.version.version }}/show-ranges.md %}#show-ranges-for-a-table-with-details):
`SELECT count(DISTINCT lease_holder) FROM [SHOW RANGES FROM TABLE public.bar WITH DETAILS];` | `sql.ttl.default_delete_rate_limit`
Default: 100. Minimum: 0 (unlimited).|
+| `ttl_select_rate_limit` | Maximum number of rows to be selected per second (rate limit). Defaults to the value of the associated cluster setting if unset.
Note: The rate limit is applied per node per table. The TTL job prefers to assign work to the leaseholder of each range, but this is not guaranteed. In some cases, non-leaseholder nodes may be assigned work.
As a result, the effective cluster-wide rate depends on how many nodes end up processing TTL work for the table. | `sql.ttl.default_select_rate_limit`
Default: 0. Minimum: 0 (unlimited). |
+| `ttl_delete_rate_limit` | Maximum number of rows to be deleted per second (rate limit). Defaults to the value of the associated cluster setting if unset.
Note: The rate limit is applied per node per table, with the same leaseholder preference and fallback behavior as `ttl_select_rate_limit`.
The actual cluster-wide rate will vary depending on which nodes execute TTL work. | `sql.ttl.default_delete_rate_limit`
Default: 100. Minimum: 0 (unlimited). |
| `ttl_row_stats_poll_interval` | If set, counts rows and expired rows on the table to report as Prometheus metrics while the TTL job is running. Unset by default, meaning no stats are fetched and reported. | N/A |
| `ttl_pause` | If set, stops the TTL job from executing. | N/A |
| `ttl_job_cron` | Frequency at which the TTL job runs, specified using [CRON syntax](https://cron.help). Default: `'@daily'` (was `'@hourly'`). | N/A |