Descending index could be very inefficient for some keys
--------------------------------------------------------
Key: CORE-4302
URL: http://tracker.firebirdsql.org/browse/CORE-4302
Project: Firebird Core
Issue Type: Bug
Components: Engine
Affects Versions: 3.0 Alpha 1, 2.5.2 Update 1
Reporter: Vlad Khorsun
Using FB3, default config (SS, page cache 2048, database page size is 4096).
Prepare data
set term ^;
create table t1 (id int, val int)
^
execute block as
declare i int = 0;
begin
while (i < 1000000) do
begin
insert into t1 values (:i, mod(:i, 10));
i = i + 1;
end
end
^
commit
^
create descending index t1_desc_idx on t1 (val)
^
set stat on
^
Issue 1: insert three records and look at stats
insert into t1 values (100, 1)^
Buffers = 2048
Reads = 0
Writes 0
Fetches = 7
SQL> insert into t1 values (100, 2)^
Buffers = 2048
Reads = 0
Writes 0
Fetches = 386
SQL> insert into t1 values (100, 3)^
Buffers = 2048
Reads = 0
Writes 0
Fetches = 7
There was 7 fetches for keys "1" and "3" while 386 fetches for key "2" !
Another example (on the same data):
select * from t1 where val <= 1 order by val desc rows 1^
ID VAL
============ ============
1 1
Elapsed time= 0.00 sec
Buffers = 2048
Reads = 2
Writes 0
Fetches = 7
select * from t1 where val <= 2 order by val desc rows 1^
ID VAL
============ ============
2 2
Elapsed time= 0.64 sec
Buffers = 2048
Reads = 28576
Writes 4
Fetches = 645359
select * from t1 where val <= 3 order by val desc rows 1^
ID VAL
============ ============
3 3
Elapsed time= 0.00 sec
Buffers = 2048
Reads = 4
Writes 0
Fetches = 7
Again, key "2" produced very poor performance comparing with another keys
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://tracker.firebirdsql.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
------------------------------------------------------------------------------
Rapidly troubleshoot problems before they affect your business. Most IT
organizations don't have a clear picture of how application performance
affects their revenue. With AppDynamics, you get 100% visibility into your
Java,.NET, & PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro!
http://pubads.g.doubleclick.net/gampad/clk?id=84349831&iu=/4140/ostg.clktrk
Firebird-Devel mailing list, web interface at
https://lists.sourceforge.net/lists/listinfo/firebird-devel