Andrew Dunstan wrote:
Joshua D. Drake wrote:
Heikki Linnakangas wrote:
We read 64 KB at a time, and then CopyReadLineText returns one line
at a time from that buffer.
O.k. I am sure I am oversimplifying things but why are we returning
one line at a time? That reads expensive to me. Just following the
general, don't do inserts one at a time, do them in batch idea for
example.
Quite simply because one line corresponds to one record. And yes, I
believe you are oversimplifying, or under several misapprehensions about
what can be done at this level.
Well I find without questioning, I won't get the answers so :).
> It would be simple enough to change. Try it and see if it actually
makes
a difference. All you have to change is the define of RAW_BUF_SIZE.
Fair enough. May I assume this is the only place I need to change it?
http://doxygen.postgresql.org/backend_2commands_2copy_8c-source.html#l00158
It looks like CopyReadAttributesText is used as part of the column
breakup. It also appears that this happens "before" insert right? So
if that is the case we are going to pay an additional penalty on the
data checking.
What? I don't understand what you are talking about.
Data checking on insert to the DB itself. I have no doubt that I may be
wrong on this.
Joshua D. Drake
---------------------------(end of broadcast)---------------------------
TIP 9: In versions below 8.0, the planner will ignore your desire to
choose an index scan if your joining column's datatypes do not
match