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
Increasing memory usage [CORE2904] #3288
Comments
Commented by: Grzegorz Skoczylas (gskoczylas) The test database with test data imported into it. |
Modified by: Grzegorz Skoczylas (gskoczylas)Attachment: DATABASE.FDB [ 11588 ] |
Commented by: @asfernandes This is because UPPER(blob) creates a temporary blob on the database. Temporary blobs could be created on temp space too. If temporary blobs are switched to temp space, an operation like "update t1 set p2 = upper(p2)" will be slow. |
Commented by: Grzegorz Skoczylas (gskoczylas) OK, I understand that, but: After every execution of above SQL statement the database file size is growing. It seems that the server is never used again working memory from the previous query, even if the transaction is commited. |
Commented by: @hvlad Are you sure you have no stuck OST ? |
Commented by: Grzegorz Skoczylas (gskoczylas) I have no idea what does it means "stuck OST". I'm sorry. I have Firebird 2.5 RC2 SuperServer (standard installation). Both Firebird and client application are on the same computer, Windows Vista Business. Tested both with Local protocol and with remote TCP protocol (host=127.0.0.1). I'm using IBExpert Personal for testing, but if I'm using own simple application written with Delphi 2007, using InterBase Express components, the database file is growing too. With ISQL (local protocol) - the database file is growing too. The InterBase has been never installed in my OS. The test database and description of the problem have been sent to me by the new user of the Firebird with request for help. He is using the Firebird 2.1.3 SuperServer. |
Commented by: @hvlad Reproduced and investigating |
Modified by: @hvladassignee: Vlad Khorsun [ hvlad ] |
We have created a UDF functions which resolves the problem, really much faster, eg: function CiContains(const AText, ASubText: PAnsiChar): Integer; cdecl; implementation function CiContains(const AText, ASubText: PAnsiChar): Integer; cdecl; Albert Mulder, |
Submitted by: Grzegorz Skoczylas (gskoczylas)
Attachments:
DATABASE.FDB
Votes: 2
Initial size of the database (167 records imported into empty database): 5,4 MB.
SQL: SELECT * FROM T1 WHERE UPPER(P2) LIKE '%'
After every execution of above SQL statement size of the database file is increasing. Even if I commit transaction after every execution of the SQL statement, the database file is still increasing.
The database has been successfully (fully) validated.
The text was updated successfully, but these errors were encountered: