-
-
Notifications
You must be signed in to change notification settings - Fork 234
Performance issue with time zones #7854
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
Comments
Starting with Firebird 4.0, current_timestamp returns a timestamp with time zone type value. Therefore, the compare is not quite correct. Replace with default localtimestamp and compare again. |
Could you provide runtime statistics for both servers also ? |
I have the server running in compatibility mode with DataTypeCompatibility = 3.0 When using localtimestamp the problem does go away. 10000000 record(s) was(were) inserted into GTT_TEST firebird 5.0 (localtimestamp) firebird 5.0 (current_timestamp) |
Parameter DataTypeCompatibility = 3.0 in this case, it does not play any role. It only affects the data sent to the client. In this case, execution takes place on the server. Current_timestamp returns a type with a timezone, and then it is converted to a type without a timezone. There is a performance loss on this. I would compare the different options: |
The problem is definitely not related with GTT's |
The error is related to the speed of converting the "timestamp with time zone" format to "timestamp" |
Here is test case
My results:
|
I think there is something to investigation here. Overhead costs due to type conversion are unavoidable, but perhaps they can be made significantly lower. I suggest renaming the ticket according to the real problem. |
The most time consuming operation is creating ICU's |
I'm looking at it. Will cache |
I have a patch, would you like to look at it? |
You'd better assign items to yourself when you are actively implementing a fix. |
Ok. But note - I don't assign myself until I'm sure I have the proper solution.
Just ask. |
Here it is #7858. |
So you are using it wrong.
"Assign" is a form of communication. When I look at unassigned issue, nobody is implementing it. As there was previous case of wrong usage of it, I overly communicated my intention with "I'm looking at it. Will cache UCalendar instances as it's done with other ICU objects." But please from now, assign tickets and if you were not going to fix anymore, unasign. |
I've identified a performance issue related to the execution speed when working with a global temporary table in 5.0.0.1271-RC2 Below is a simplified example to reproduce the problem:
The problem occurs during the insertion of a large number of rows, and the performance has significantly decreased compared to Firebird 3.0.10. The insertion speed has dropped by approximately 2 times.
Here is an example of inserting a large number of rows:
The text was updated successfully, but these errors were encountered: