我尝试使用 voltdb,它是 python driver 我可以在 voltdb 中创建一个过程并使用 VoltProcedure 调用它。类似:
volt_procedure = VoltProcedure(volt, "Proc_name", [VoltConnection.VOLTTYPE_STRING])
result = volt_procedure.call(some_argument)
问题是 - 我可以用这个驱动程序运行原始 SQL 吗?
最佳答案
是的,您可以调用系统过程“@AdHoc”,它接受一个字符串参数,该参数是您要运行的 SQL 语句。
对 @AdHoc 的所有调用都有一些额外的开销,因为它们需要被解析并计划,或者在缓存中找到现有计划。之后,它们的执行方式与预编译的存储过程完全相同。集群中的每个服务器都有一个用于解析和规划的线程池,因此处理 @AdHoc 调用的能力将会扩展,但对于快速简单的 SQL 语句,它通常低于集群执行事务的能力。对于更复杂的SQL,执行事务通常需要更长的时间,因此根据执行时间,解析的能力可能会更快。
使用内置的“默认”过程进行插入,例如TABLE_NAME.插入。对于需要频繁执行的任何操作(例如每秒数千次),请尝试使用过程。您可以使用 java 类或使用仅 DDL“CREATE PROCEDURE ... AS”语法来定义过程。如果可能的话请记住对过程进行分区。但不要害怕使用 @AdHoc 调用,尤其是对于更动态生成的 SQL 语句。
免责声明:我为 VoltDB 工作。
关于python - 有没有办法在 voltdb python 驱动程序(voltdb-client-python)中运行原始 SQL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45955457/