2017-02-02 1 views
0

최대한 빨리 postgres 테이블에 많은 매개 변수를 삽입하고 싶습니다.libpqxx : 매개 변수 배열을 바인딩하는 방법

이제 바인딩 매개 변수를 하나씩 너무 많이 낭비하고 있습니다.

pqxx::connection my_connection(c_string); 
my_connection.prepare("insert_to_db", "INSERT INTO t (id, name) VALUES ($1, $2)); 

pqxx::work W(my_connection); 
for (int i = 0; i < 10000; i++) 
{ 
    W.prepared("insert_to_db")(i)("Max").exec(); 
} 
W.commit(); 

내가 볼 수 있듯이, commit 10 000 요소가 0.001 s 또는 더 적은을하지만, 바인딩은 약 10 초 정도 소요 : 코드는 거의 다음과 같습니다.

모든 매개 변수를 값 배열로 바인딩하고 싶습니다. pqxx를 사용하여 그것을 수행하는 방법? 또는 시간을 최소화하기위한 더 나은 방법이 있습니까?

+0

[복사 명령과 관련된 기능 (https://www.postgresql.org/docs/current/static/libpq-copy.html) – Abelisto

답변

0
pqxx::connection c; 
pqxx::work w(c); 
c.prepare("prep", "select stored_proc($1::text[])"); 
auto r = w.prepared("prep")("{v1, v2}").exec(); 
+0

는 일부 제한된을 제공 할 수있는,이 코드 주셔서 감사합니다 즉각적인 도움. [적절한 설명] (https://meta.stackexchange.com/q/114762)은 이것이 왜이 문제에 대한 좋은 해결책인지를 보여줌으로써 장기적인 가치를 크게 향상시킬 것이며 미래의 다른 독자들에게 더 유용하게 만들 것입니다 , 비슷한 질문. 가정을 포함하여 몇 가지 설명을 추가하려면 답변을 [edit] (https://meta.stackoverflow.com/posts/360251/edit)하십시오. [ref] (https://meta.stackoverflow.com/a/360251/8371915) – user8371915

관련 문제