gpt4 book ai didi

monetdb - 同时运行多个 SQL 复制操作时,MonetDB 将如何执行?

转载 作者:行者123 更新时间:2023-12-02 16:52:28 24 4
gpt4 key购买 nike

我需要将一个大型 CSV 文件导入 MonetDB,我想知道是否可以将该文件分成两部分并运行两个脚本,例如:

mclient -u monetdb -d mydb < import1.sql
mclient -u monetdb -d mydb < import2.sql

哪里

  • import1.sql 使用 file1.csv 发出 SQL copy 指令,并且
  • import2.sql 使用 file2.csv 发出 SQL copy 指令

这样会更快吗?这会表现好吗?

谢谢

最佳答案

MonetDB 使用 Optimistic Concurrency Control对于并发事务(即对数据的任何修改)。这意味着许多线程可以操作相同的数据。然而,写冲突不是通过例如锁定来预期和避免的,而是仅在提交事务之前(即,当所有实际工作完成时)检测到。

您创建的场景本质上是该策略的最坏情况:两个并发事务修改完全相同的数据。两者都会运行一段时间,一个会被提交,另一个会回滚然后重新启动。

底线是:不要这样做:-)。您可以做的是将“LOCKED”后缀附加到 copy into 语句中,这可以在单用户模式下运行时显着加快加载速度(请参阅 the MonetDB Documentation )。

关于monetdb - 同时运行多个 SQL 复制操作时,MonetDB 将如何执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9179265/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com