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

Reply via email to