How to quickly store large records in Extensible Storage Engine

222 views Asked by At

I'm using Extensible Storage Engine to cache a number of large records - these records tend to be about 2MB in size (each)

Often they will be deleted within a few hours, it's rare that they live for more than this amount of time

I'm in a tight loop of JetBeginTransaction/JetPrepareUpdate/JetSetColums/Update/JetCommitTransaction - each iteration of this loop writes a 2MB record. the data being written has been preallocated and is in RAM - my producer shouldnt be taking any CPU or disk time

I'm measuring very slow performance, on the order of 2megabytes a second.

using procmon I see lots and lots of tiny reads and writes (512 bytes, 4096bytes, and lots of writes ~30K). The largest writes I see are 393,216bytes which I believe is the default for JET_paramMaxCoalesceWriteSize.

This feels like a tuning thing, what can I do to increase performance of large writes? I'm off almost two orders of magnitude from what this hardware should be capable of delivering.

0

There are 0 answers