-
Notifications
You must be signed in to change notification settings - Fork 92
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
Performance improvements when query includes sys.indexes.is_primary_key predicate #2917
Performance improvements when query includes sys.indexes.is_primary_key predicate #2917
Conversation
…ast without function from boolean to sys.bit. Using it in various views. Signed-off-by: Tanya Gupta <[email protected]>
Signed-off-by: Tanya Gupta <[email protected]>
Pull Request Test Coverage Report for Build 11056938720Details
💛 - Coveralls |
Signed-off-by: Tanya Gupta <[email protected]>
Signed-off-by: Tanya Gupta <[email protected]>
Signed-off-by: Tanya Gupta <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please follow the guidelines for good PR title and description.
contrib/babelfishpg_common/sql/upgrades/babelfish_common_helper--4.3.0--4.4.0.sql
Outdated
Show resolved
Hide resolved
cast upgrade script Signed-off-by: Tanya Gupta <[email protected]>
Signed-off-by: Tanya Gupta <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please add a table in description for achieved performance improvements.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
Signed-off-by: Tanya Gupta <[email protected]>
Signed-off-by: Tanya Gupta <[email protected]>
Signed-off-by: Tanya Gupta <[email protected]>
Signed-off-by: Tanya Gupta <[email protected]>
tsql schemas Signed-off-by: Tanya Gupta <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM with test changes.
Signed-off-by: Tanya Gupta <[email protected]>
Signed-off-by: Tanya Gupta <[email protected]>
Signed-off-by: Tanya Gupta <[email protected]>
2bb7f70
into
babelfish-for-postgresql:BABEL_4_X_DEV
…ey predicate (babelfish-for-postgresql#2917) Previously for a query we were observing a performance degradation when it included a join between sys.indexes, sys.index_columns, sys.columns, sys.tables, and sys.schemas views with sys.indexes.is_primary_key = 1 predicate in where clause. We identified that there was the issue with a case statement due to which there was an incorrect row estimation so we have implemented a direct cast by defining new IMPLICIT cast without function from boolean to sys.bit. Another issue was the use of redundant has_schema_privilege in sys views and functions, as we explicitly grant usage to public beforehand, so we have removed the redundant has_schema_privilege check. Issues Resolved: BABEL-5215 Signed-off-by: Tanya Gupta <[email protected]>
…ey predicate (#2917) (#2989) Previously for a query we were observing a performance degradation when it included a join between sys.indexes, sys.index_columns, sys.columns, sys.tables, and sys.schemas views with sys.indexes.is_primary_key = 1 predicate in where clause. We identified that there was the issue with a case statement due to which there was an incorrect row estimation so we have implemented a direct cast by defining new IMPLICIT cast without function from boolean to sys.bit. Another issue was the use of redundant has_schema_privilege in sys views and functions, as we explicitly grant usage to public beforehand, so we have removed the redundant has_schema_privilege check. Issues Resolved: BABEL-5215 Signed-off-by: Tanya Gupta <[email protected]>
…ey predicate (babelfish-for-postgresql#2917) Previously for a query we were observing a performance degradation when it included a join between sys.indexes, sys.index_columns, sys.columns, sys.tables, and sys.schemas views with sys.indexes.is_primary_key = 1 predicate in where clause. We identified that there was the issue with a case statement due to which there was an incorrect row estimation so we have implemented a direct cast by defining new IMPLICIT cast without function from boolean to sys.bit. Another issue was the use of redundant has_schema_privilege in sys views and functions, as we explicitly grant usage to public beforehand, so we have removed the redundant has_schema_privilege check. Issues Resolved: BABEL-5215 Signed-off-by: Tanya Gupta <[email protected]>
Description
Previously for a query we were observing a performance degradation when it included a join between sys.indexes, sys.index_columns, sys.columns, sys.tables, and sys.schemas views with sys.indexes.is_primary_key = 1 predicate in where clause. We identified that there was the issue with a case statement due to which there was an incorrect row estimation so we have implemented a direct cast by defining new IMPLICIT cast without function from boolean to sys.bit.
Another issue was the use of redundant has_schema_privilege in sys views and functions, as we explicitly grant usage to public beforehand, so we have removed the redundant
has_schema_privilege
check.Signed-off-by: Tanya Gupta [email protected]
Issues Resolved
BABEL-5215
Performance test:
Overall execution time(in sec) for 102 schemas, 2319 tables, 2535 key_constraints, 5885 indexes and 2034 types
Test Scenarios Covered
Use case based - Yes
Boundary conditions - Yes
Arbitrary inputs - Yes
Negative test cases - Yes
Minor version upgrade tests - Yes
Major version upgrade tests - Yes
Performance tests - Yes
Tooling impact - N/A
Client tests - N/A
Check List
By submitting this pull request, I confirm that my contribution is under the terms of the Apache 2.0 and PostgreSQL licenses, and grant any person obtaining a copy of the contribution permission to relicense all or a portion of my contribution to the PostgreSQL License solely to contribute all or a portion of my contribution to the PostgreSQL open source project.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.