有没有办法在voltdb python驱动程序(voltdb-client-python)中运行原始SQL?

时间:2017-08-30 08:24:18

标签: python voltdb

我尝试使用voltdb,它是python driver 我可以在voltdb中创建一个过程并用VoltProcedure调用它。 Smth喜欢:

 volt_procedure = VoltProcedure(volt, "Proc_name", [VoltConnection.VOLTTYPE_STRING])

 result = volt_procedure.call(some_argument)

问题是 - 我可以用这个驱动程序以某种方式运行原始SQL吗?

1 个答案:

答案 0 :(得分:3)

是的,您可以拨打系统程序" @ AdHoc"它接受一个String参数,它是您要运行的SQL语句。

对@AdHoc的所有调用都有一些额外的开销,因为需要对它们进行解析并进行规划,或者在缓存中找到现有的计划。之后,它们的执行方式与预编译的存储过程完全相同。集群中的每个服务器都有一个用于解析和规划的线程池,因此处理@AdHoc调用的容量将会扩展,但对于快速简单的SQL语句,它通常低于集群执行事务的容量。对于更复杂的SQL,执行事务通常需要更长的时间,因此根据执行时间,解析的容量可能会更快。

使用内置"默认"插入程序,例如TABLE_NAME.insert。对于任何需要频繁执行的操作,如每秒数千次,请尝试使用过程。您可以使用java类或仅使用DDL来定义过程" CREATE PROCEDURE ... AS"句法。如果可能,请记住分区程序。但是不要害怕使用@AdHoc调用,特别是对于更动态生成的SQL语句。

免责声明:我为VoltDB工作。