首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >一次执行多条语句

问一次执行多条语句
EN

Stack Overflow用户
提问于 2012-06-05 22:59:42
回答 1查看 394关注 0票数 1

在我看来,Flyway在给出一个包含一些语句的SQL文件时,使用;作为分隔符(这就是我从SqlScript.execute()中理解的),逐个执行它们。因此,在远程服务器上应用补丁需要花费大量时间,因为文件的每条语句都是单独发送的。

我想知道是否有可能通过将整个文件完整发送并立即应用它来进行“批量更新”。或者可能是我们在这里遇到的一些JDBC约束?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-06-06 04:34:17

你的观察是正确的。

Flyway目前在单个语句中拆分文件,然后使用JDBC将这些文件发送到DBMS。

一些DBMSs驱动程序,例如来自H2和PostgreSQL的驱动程序,实际上本机支持每个Jdbc调用发送多个语句。

我选择不使用它的原因是,您可以用错误报告质量来换取潜在的性能收益。最重要的是,这个解决方案只对一小部分用户可用。

批量更新确实可以成为解决此问题的跨DBMS解决方案。由于潜在的大小爆炸和回报递减规律,批处理整个文件可能不是理想的。批量处理几个语句(比如20、50或任何最佳点)可能会被证明是有价值的。这应该不会对代码产生太大影响。如果错误报告质量(哪条语句失败)没有受到可测量的影响,性能改进是明显的,添加这一点应该是显而易见的。

如果您希望看到此功能受支持,请在问题跟踪器中提出问题。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10899727

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档