# [FAQ] Placeholder 过多造成 Prepare 失效

## Key Words

kettle, 解析耗时, 生成执行计划耗时

## Description

使用 kettle 抽数时，整体效率偏低，发现默认配置下每 5000 条数据提交一次的 SQL 在 Dashboard 中显示解析和生成执行计划耗时需要秒级。
已使用 JDBC option rewriteBatchedStatements=true useServerPrepStmts=true cachePrepStmts=true prepStmtCacheSize=1000 prepStmtCacheSqlLimit=3000000 useConfigs=maxPerformance

## Content

通过排查，发现 Insert 的 SQL 并没有正确采用 Prepare 的方式执行，同时在相关日志中发现 "Prepared statement contains too many placeholders" 的报错。
原因是在执行 Insert SQL 时，由于配置的 batch commit 5000，所有数据的字段数加起来，超过了 placeholder 的 65535 限制。
解决办法是调小 commit 的批次大小，经过验证，从 5000 下调至 250 后，对应 SQL 的解析和生成执行计划的时间从之前的 2s 下降至 100ms 以内。

## Affected Versions

N/A
