Subject | Re[2]: [Firebird-Architect] blobs causes table fragmentation. |
---|---|
Author | Dmitry Kuzmenko |
Post date | 2004-10-04T21:00:29Z |
Hello, Ann!
Monday, October 4, 2004, 6:39:18 PM, you wrote:
AWH> stored on a data page, preferably the page with the record,
AWH> assuming it has space. There's no hard coded limit.
This is bad, and I think I'm right suggesting this feature.
AWH> Storing small blobs on page with the record reduces I/O if the
AWH> blob data is referenced -- and small blobs are more likely to be
AWH> referenced than large blobs.
Client components don't differ is this large blob or not.
Remembering BDE, using SELECT * FROM TABLE (it's way to hell,
of course) loads all blobs in that table to cache.
So, it depends on client components/driver - it load all blobs
into cache or doesn't load any blobs at all.
AWH> based on a (questionable) understanding of the implementation?
I had when this idea came during Yaffil tests. Right now I don't
have test case, sorry.
AWH> based on a (questionable) understanding of the implementation?
Why not? SQZ_block in yaffil was made on the same basis. It was
made (very little code changes), tested, and produced good results.
--
Dmitri Kouzmenko
Monday, October 4, 2004, 6:39:18 PM, you wrote:
>>As I understand current behavior, blobs less than 256 bytes areAWH> That's not correct. Any blob that will fit on a data page is
>>stored at the same data page, in record.
AWH> stored on a data page, preferably the page with the record,
AWH> assuming it has space. There's no hard coded limit.
This is bad, and I think I'm right suggesting this feature.
AWH> Storing small blobs on page with the record reduces I/O if the
AWH> blob data is referenced -- and small blobs are more likely to be
AWH> referenced than large blobs.
Client components don't differ is this large blob or not.
Remembering BDE, using SELECT * FROM TABLE (it's way to hell,
of course) loads all blobs in that table to cache.
So, it depends on client components/driver - it load all blobs
into cache or doesn't load any blobs at all.
>>There are some systems that store blobs with different size,AWH> Do you have any evidence of that? Other than a hypothesis
>>so blob data is spreaded between data and blob pages.
>>This makes table more "fragmented" and seriously slowdown
>>record retrieval if 'select' does not selects blob fields.
AWH> based on a (questionable) understanding of the implementation?
I had when this idea came during Yaffil tests. Right now I don't
have test case, sorry.
AWH> based on a (questionable) understanding of the implementation?
Why not? SQZ_block in yaffil was made on the same basis. It was
made (very little code changes), tested, and produced good results.
--
Dmitri Kouzmenko