Sql server 这很重要。它可能很大。(我的第一条评论。我想我必须得50分。)即使有索引,也会进行表扫描。no,服务器将cast(最后更新为日期)转换为范围搜索并使用索引。但它无法计算统计数据,因此很可能连接策略不会达到最佳状态。我使用了“覆盖”一词。我也许应该说这使得查
Sql server 这很重要。它可能很大。(我的第一条评论。我想我必须得50分。)即使有索引,也会进行表扫描。no,服务器将cast(最后更新为日期)转换为范围搜索并使用索引。但它无法计算统计数据,因此很可能连接策略不会达到最佳状态。我使用了“覆盖”一词。我也许应该说这使得查,sql-server,spring-boot,spring-jdbc,shedlock,Sql Server,Spring Boot,Spring Jdbc,Shedlock,这很重要。它可能很大。(我的第一条评论。我想我必须得50分。)即使有索引,也会进行表扫描。no,服务器将cast(最后更新为日期)转换为范围搜索并使用索引。但它无法计算统计数据,因此很可能连接策略不会达到最佳状态。我使用了“覆盖”一词。我也许应该说这使得查询不可搜索,以避免与覆盖索引混淆。但是如果它使用范围搜索和索引,它是可搜索的吗? jdbcTemplate.batchUpdate(purgeQueryArray) @Scheduled(cron = "${scheduler.e
这很重要。它可能很大。(我的第一条评论。我想我必须得50分。)
即使有索引,也会进行表扫描。
no,服务器将cast(最后更新为日期)
转换为范围搜索并使用索引。但它无法计算统计数据,因此很可能连接策略不会达到最佳状态。我使用了“覆盖”一词。我也许应该说这使得查询不可搜索,以避免与覆盖索引混淆。但是如果它使用范围搜索和索引,它是可搜索的吗?
jdbcTemplate.batchUpdate(purgeQueryArray)
@Scheduled(cron = "${scheduler.expression}", zone = "GMT")
@SchedulerLock(name = "SCHEDULER_LOCK", lockAtLeastFor = "10S", lockAtMostFor = "5M")
public void purge() {
// prepare array of queries purgeQueryArray
jdbcTemplate.batchUpdate(purgeQueryArray)
}
DELETE FROM BATCH_STEP_EXECUTION_CONTEXT WHERE STEP_EXECUTION_ID IN (SELECT BE.STEP_EXECUTION_ID FROM BATCH_STEP_EXECUTION BE
join BATCH_STEP_EXECUTION_CONTEXT BEC on BE.STEP_EXECUTION_ID = BEC.STEP_EXECUTION_ID
where CAST(LAST_UPDATED as date) < DATEADD(day, -7, GETDATE()));
DELETE FROM BATCH_STEP_EXECUTION WHERE JOB_EXECUTION_ID IN (SELECT JOB_EXECUTION_ID FROM BATCH_JOB_EXECUTION
where CAST(LAST_UPDATED as date) < DATEADD(day, -7, GETDATE()));
DELETE FROM BATCH_JOB_EXECUTION_CONTEXT WHERE JOB_EXECUTION_ID IN (SELECT JOB_EXECUTION_ID FROM BATCH_JOB_EXECUTION
where CAST(LAST_UPDATED as date) < DATEADD(day, -7, GETDATE()));
DELETE FROM BATCH_JOB_EXECUTION_PARAMS WHERE JOB_EXECUTION_ID IN (SELECT JOB_EXECUTION_ID FROM BATCH_JOB_EXECUTION
where CAST(LAST_UPDATED as date) < DATEADD(day, -7, GETDATE()));
DELETE FROM BATCH_JOB_EXECUTION WHERE CAST(LAST_UPDATED as date) < DATEADD(day, -7, GETDATE());
DELETE FROM BATCH_JOB_INSTANCE WHERE JOB_INSTANCE_ID NOT IN (SELECT JOB_INSTANCE_ID FROM BATCH_JOB_EXECUTION);
DELETE BEC
FROM BATCH_STEP_EXECUTION_CONTEXT BEC
INNER JOIN BATCH_STEP_EXECUTION BE
ON BE.STEP_EXECUTION_ID = BEC.STEP_EXECUTION_ID
WHERE LAST_UPDATED < @LAST_UPDATED_LIMIT -- uncover the column if possible