Subject Re: Why it's soo slow ? it's just a very simple select ...
Author nathanelrick
> Just run this query and show us results:
>
> SELECT R.RDB$RELATION_NAME, COUNT(*)
> FROM RDB$PAGES PG JOIN RDB$RELATIONS R
> ON PG.RDB$RELATION_ID = R.RDB$RELATION_ID
> WHERE PG.RDB$PAGE_TYPE = 4
> AND R.RDB$RELATION_NAME IN ('DESC_VARCHAR', 'DESC_EMPTY')
> GROUP BY R.RDB$RELATION_NAME

DESC_BLOB: 1872
DESC_EMPTY: 135
DESC_VARCHAR: 2166


> Also, could you repeat the test using bigger page cache, say > 1200 pages ?

With page buffer to 1200 pages, nothing change too much, but with a buffer of around 3000 page yes stat become to be better (but not for the first select, we need to do several select to see the speed go down, i thing the time to read the page from disk to the cache)

with 1200 pages buffer => 23 ms / select
with 3000 pages buffer => 10 ms / select (so 2x more faster)

the problem with superclassic architecture not so easy to increase the page buffer without taking the risk to use an huge amount of memory during peak activity time

select
IDObj
From
desc_varchar
where
IDObj='NOT_EXIST'

********************************

1rt select

PREPARE :

Time Taken: 31 ms

page_reads: 2182
page_writes: 0
page_fetches: 2287
page_marks: 0

record_idx_reads: 20
record_seq_reads: 0

EXECUTE :

Time Taken: 0 ms

page_reads: 4
page_writes: 0
page_fetches: 4
page_marks: 0

record_idx_reads: 0
record_seq_reads: 0


********************************

2nd time

PREPARE :

Time Taken: 16 ms

page_reads: 0
page_writes: 0
page_fetches: 2169
page_marks: 0

record_idx_reads: 0
record_seq_reads: 0

select

Time Taken: 0 ms

page_reads: 0
page_writes: 0
page_fetches: 4
page_marks: 0

record_idx_reads: 0
record_seq_reads: 0