我需要加速插入到VectorWise数据库中,文档显示了以下内容:
http://docs.actian.com/ingres-vectorwise/2.5/sql-language-guide/5315-insert
The INSERT statement inserts rows into a table.
This statement has the following format:
[REPEATED]]INSERT INTO [schema.]table_name
[(column {, column})]
[OVERRIDING SYSTEM VALUE | OVERRIDING USER VALUE]
[VALUES (expr{, expr}) {,(expr{ ,expr})} |
[WITH common_table_expression] subselect];并说:
faster :保存insert的执行计划,这样可以使后续的执行更快。
在我的一生中,我无法获得一个使用“重复”来成功执行的查询,也无法在网上找到任何使用直接向上SQL进行查询的示例。有没有人对如何使它在语法上起作用有任何建议?
发布于 2012-08-13 07:51:02
@w00te :忽略重复。如果多插入性能是必要的,我宁愿做一些更“激进”的事情。-我将创建一个临时堆表(当涉及插入时,它们是最快的存储类型),一旦我插入完整串(可以是数百万行),然后我要么将表修改为维托维塞,要么从它中选择一个vectorwise表。如果您只是选择,那么该表可能不一定是临时的,它可以是一个普通的表,您可以临时存储数据。取决于用例。
当插入到上面的堆表时,如果可能的话使用批处理 (Ingres >= 4.0.1),它可以显著提高插入数百万行的速度(事实上,我很少做测试)。
编辑:显然,不适用于VectorWise。最好的方法是直接插入到VectorWise表,最好是非索引的.使用JDBC准备语句和批处理执行,您就可以了。格兰特提出的使用CACHE_DYNAMIC的建议也应予以考虑。
https://stackoverflow.com/questions/11873016
复制相似问题