Icon View Thread

The following is the text of the current message along with any replies.
Messages 1 to 3 of 3 total
Thread Getting the data out of a memo field
Sun, Jan 31 2010 8:21 AMPermanent Link

Roy Lambert

NLH Associates

Team Elevate Team Elevate

I'm dumping the contents of a CLOB into a stringlist for further processing. Speed is fine whilst the CLOB is "reasonably" sized (say < 1Mb) but as size climbs it gets a lot worse. To give some idea

Chars    Lines   ms
204352   2850   46
324210   4464   78
452218   6204   141
542929   7462   203
699108   9809   171
819093   11145   218
884900   12061   250
1188894   16092   312
1309774   17814   327
2738211   37204   1107
3848943   52532   2013
4136634   55929   2294
5696786   77038   4166
15638443   211371   31497

I'm using the default settings for BLOB block size. There are 4 CLOB columns and 1 BLOB column and if I increase the BLOB block size I'm going to have a shed load of wasted space.

The table involved is my email table and this particular column is the email in encoded format. All I want out of is the headers (say max first 3k chars). Is there a fast way of getting those?

Roy Lambert

ps don't even suggest Copy - been there, done that, its just as slow.
Mon, Feb 1 2010 11:16 AMPermanent Link

Tim Young [Elevate Software]

Elevate Software, Inc.

Avatar

Email timyoung@elevatesoft.com

Roy,

<< I'm using the default settings for BLOB block size. There are 4 CLOB
columns and 1 BLOB column and if I increase the BLOB block size I'm going to
have a shed load of wasted space.

The table involved is my email table and this particular column is the
email in encoded format. All I want out of is the headers (say max first 3k
chars). Is there a fast way of getting those? >>

Due to the random-access nature of BLOB streams in Delphi, we have to read
the entire BLOB in order to avoid transactional issues.  What we do here in
our outgoing mail server table is store the headers separately from the
body, and it seems to work pretty well.

<< ps don't even suggest Copy - been there, done that, its just as slow. >>

What do you mean by "copy" ?

--
Tim Young
Elevate Software
www.elevatesoft.com

Tue, Feb 2 2010 4:50 AMPermanent Link

Roy Lambert

NLH Associates

Team Elevate Team Elevate

Tim

>Due to the random-access nature of BLOB streams in Delphi, we have to read
>the entire BLOB in order to avoid transactional issues. What we do here in
>our outgoing mail server table is store the headers separately from the
>body, and it seems to work pretty well.

That's what I did in my old app but I changed in the new one to holding the complete encoded email. I used to split headers, message and attachments but felt it was better to keep them together. I may have to revise the decision Frown

><< ps don't even suggest Copy - been there, done that, its just as slow. >>
>
>What do you mean by "copy" ?

Copy(TableField,AsString,1,3000)

I added that just in case some kindly soul suggested it as an approach.

Roy Lambert

Image