New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
New index structures to eliminate data page reads [CORE5909] #6167
Comments
Modified by: Sean Leyne (seanleyne)description: Will be good to see index only operations in situation like this: table with index on SOURCE_ID and the query SELECT should go throught index only without visiting table data pages it is important when working with big databases same in other places join between tables (using indexed fields) without returning any other field values from some joined tables. => Will be good to see index only operations in situation like this: table with index on SOURCE_ID and the query SELECT should go throught index only without visiting table data pages it is important when working with big databases same in other places join between tables (using indexed fields) without returning any other field values from some joined tables. |
Commented by: Sean Leyne (seanleyne) Karol, I understand the goal you are trying to describe but the Summary of the issue is ... useless. far too vague to provide any meaning to third-parties. Please suggest an alternate description (eg. New index structures to eliminate data page reads). |
Modified by: Sean Leyne (seanleyne)summary: Index only operations => New index structures to eliminate data page reads |
Commented by: Ann Harrison (awharrison) Yes this is a big job and will significantly increase index size and degrade performance in many cases. Each index entry will need to identify the transaction number of the transaction that created the entry and the transaction that invalidated it. There are optimizations like dropping the identy of the creatimg index when an entry is fully mature and visible to all transactions but they cause even more index updates. On the other hand, this is not an "either or" choice and could be implemented as a new index type, dropping the optimization choice in the designers lap. |
Commented by: @pavel-zotov > will significantly increase index size and degrade performance in many cases > need to identify the transaction number |
Commented by: @pavel-zotov PS. When user does any kind of updates with GTT that was created 'on commit delete' then it is also no need to extract info from data pages if it is found in index key. |
Commented by: @livius2 if you consider implementing new index structure take also into account: |
Submitted by: @livius2
Votes: 1
Will be good to see index only operations in situation like this:
table with index on SOURCE_ID and the query
SELECT
GS.SOURCE_ID, COUNT(*)
FROM
GAIA_SOURCE GS
GROUP BY GS.SOURCE_ID
HAVING COUNT(*)>1
should go throught index only without visiting table data pages
it is important when working with big databases
e.g. index size can be relatively small compared to table itself.
In my real database index have only 18GB but table have 720GB.
As you can see accessing only 18GB is not the problem - but accessing 720GB is.
same in other places join between tables (using indexed fields) without returning any other field values from some joined tables.
I suppose this is big change and require REAL TRANSACTIONAL INDEXES.
Current indexes benefit only for intensive updating application.
The text was updated successfully, but these errors were encountered: