Icon View Thread

The following is the text of the current message along with any replies.
Messages 1 to 4 of 4 total
Thread Large BLOB updating performance
Tue, May 26 2009 8:53 PMPermanent Link

David Michael
I'm using Delphi 2007 and EDB 2 Build #11. Unicode. Large Files.

I've noticed a ballooning performance problem when I update a blob field with a large stream. I use TEDBBlobStream and write directly
to the blob stream.

If the stream exceeds ~2 MB, the time required for EDB to finish a "Post" begins to get noticeably longer. At ~12 MB, the time required
for the "Post" to finish takes about 1 minute (which is about 2X as long as it takes for 10MB, which is 2X as long as it takes for 8MB).
Writing the same stream straight to disk takes less than a second. And stepping through the code, nothing gets laggy until I hit
the "TEDBTable.Post" call.

Is there some configuration setting I've missed? I expect a bit of delay saving a 12MB blob, but not that much.

The table has an integer ID field and 3 BLOB fields. The other blobs will seldom get more than a few KB total. Would the interaction of
small and large blobs cause this?

Thanks.

-David
Wed, May 27 2009 2:25 AMPermanent Link

Roy Lambert

NLH Associates

Team Elevate Team Elevate

David


Have you tried experimenting with different blobblocksizes. If you have wildly varying sizes of blobs for the different columns you're going to have to balance disk space against performance.

Roy Lambert [Team Elevate]
Wed, May 27 2009 3:03 PMPermanent Link

David Michael
Roy Lambert wrote:
Have you tried experimenting with different blobblocksizes. If you have wildly varying sizes of blobs for the different columns you're
going to have to balance disk space against performance.


Ah, good. Something simple I overlooked. =)

I set the blob block size for the table to 8192 and suddenly everything is peachy. I'll play with a few other sizes (smaller and bigger) and
see what seems the best fit.

Thanks!

-David
Thu, May 28 2009 4:07 PMPermanent Link

Tim Young [Elevate Software]

Elevate Software, Inc.

Avatar

Email timyoung@elevatesoft.com

David,

<< I set the blob block size for the table to 8192 and suddenly everything
is peachy. I'll play with a few other sizes (smaller and bigger) and see
what seems the best fit. >>

Coming in late here, but yes, the BLOB block size makes a huge difference in
performance, and the default size of 512 bytes is sufficient for most text,
but not for very large BLOBs.  8k is a good choice, but if all of the BLOBs
in the table are very large (MB or higher), then it might pay to go up to
16k.

--
Tim Young
Elevate Software
www.elevatesoft.com

Image