Thread: How to use postgres 7.0.3 with -F?
Hi, someone gave me the tip to use the -F-flag to improve performance. Since I can't run the postmaster with -F but just postgres how do I do it, if I want to import a big amount of data? Konstantin -- Dipl-Inf. Konstantin Agouros aka Elwood Blues. Internet: elwood@agouros.de Otkerstr. 28, 81547 Muenchen, Germany. Tel +49 89 69370185 ---------------------------------------------------------------------------- "Captain, this ship will not sustain the forming of the cosmos." B'Elana Torres
elwood@agouros.de (Konstantinos Agouros) writes: > someone gave me the tip to use the -F-flag to improve performance. Since > I can't run the postmaster with -F but just postgres how do I do it, if I > want to import a big amount of data? In 7.0.* (but not prior versions) it is safe to run individual backends with -F; other backends will still fsync their changes. So, you can start a backend that's going to do an import with export PGOPTIONS="-F" psql mydb .... (adjust 'export' command syntax depending on your preferred shell.) libpq passes the value of the environment variable PGOPTIONS over to the backend, and away you go. -dN (debug level) is another backend command- line switch commonly set this way. regards, tom lane
In <12492.982346115@sss.pgh.pa.us> tgl@sss.pgh.pa.us (Tom Lane) writes: >elwood@agouros.de (Konstantinos Agouros) writes: >> someone gave me the tip to use the -F-flag to improve performance. Since >> I can't run the postmaster with -F but just postgres how do I do it, if I >> want to import a big amount of data? >In 7.0.* (but not prior versions) it is safe to run individual backends >with -F; other backends will still fsync their changes. So, you can >start a backend that's going to do an import with > export PGOPTIONS="-F" > psql mydb > .... >(adjust 'export' command syntax depending on your preferred shell.) >libpq passes the value of the environment variable PGOPTIONS over to the >backend, and away you go. -dN (debug level) is another backend command- >line switch commonly set this way. Ahhhh Ohhhh thanks for the help I was confused. Does this also work that way, if I use it from DBI::Pg from perl? Like setting $ENV{'PGOPTIONS'} Konstantin > regards, tom lane -- Dipl-Inf. Konstantin Agouros aka Elwood Blues. Internet: elwood@agouros.de Otkerstr. 28, 81547 Muenchen, Germany. Tel +49 89 69370185 ---------------------------------------------------------------------------- "Captain, this ship will not sustain the forming of the cosmos." B'Elana Torres
elwood@agouros.de (Konstantinos Agouros) writes: >> export PGOPTIONS="-F" >> psql mydb > Ahhhh Ohhhh thanks for the help I was confused. Does this also work > that way, if I use it from DBI::Pg from perl? Like setting > $ENV{'PGOPTIONS'} Yeah, I think that should work if you do it before opening a connection, but a more straightforward way is to set options=-F in the DBI->connect() command ... regards, tom lane
Tom Lane <tgl@sss.pgh.pa.us> writes: > elwood@agouros.de (Konstantinos Agouros) writes: > >> export PGOPTIONS="-F" > >> psql mydb > > > Ahhhh Ohhhh thanks for the help I was confused. Does this also work > > that way, if I use it from DBI::Pg from perl? Like setting > > $ENV{'PGOPTIONS'} > > Yeah, I think that should work if you do it before opening a connection, > but a more straightforward way is to set options=-F in the > DBI->connect() command ... I think Tom's suggestion is the way to go--I found a long time ago that Perl only puts the %ENV hash into the environment when it's about to call exec(). I was using DBD::Informix and found that my INFORMIXDIR variable, set in the Perl script, was not making it through to the Informix libraries (since no separate program was being called). I had to run the Perl script from a wrapper shell script that set INFORMIXDIR... This may have been fixed by now, though, it was five years ago or so. -Doug