Excessive disk space consumption on BLOB concatenation
------------------------------------------------------
Key: CORE-3948
URL: http://tracker.firebirdsql.org/browse/CORE-3948
Project: Firebird Core
Issue Type: Bug
Components: Engine
Affects Versions: 2.5.1
Environment: Windows 7 Professional 64bit
Reporter: Jörg Fröber
When a blob is being concatenated mulitple times, the disk space for the
database file grows massively. The only way to get the file size back to normal
is a backup and restore of the database.
The issue can be reproduced as described below:
- Create an empty database
- Create the following procedure:
SET TERM ^ ;
CREATE OR ALTER PROCEDURE P_TEST (
TEST VARCHAR(200),
ITERATIONS INTEGER)
RETURNS (
BLOBTEXT BLOB SUB_TYPE 0 SEGMENT SIZE 80)
AS
DECLARE COUNTER INTEGER;
BEGIN
COUNTER = 0;
BLOBTEXT = '';
WHILE (COUNTER < ITERATIONS)
DO
BEGIN
BLOBTEXT = BLOBTEXT || ' ' || TEST;
COUNTER = COUNTER + 1;
END
SUSPEND;
END^
SET TERM ; ^
GRANT EXECUTE ON PROCEDURE P_TEST TO "PUBLIC";
GRANT EXECUTE ON PROCEDURE P_TEST TO SYSDBA;
- run the procedure:
SELECT BLOBTEXT FROM P_TEST('This is a test sentence, which is going to be
concatenated.', 4000);
After the procedure has been executed, the disk space used by the database file
increases to over 1 GB. It makes no difference, if the transaction is committed
or not.
When you run the procedure another time using the SQL-command EXECUTE PROCEDURE
P_TEST('This is a test sentence, which is going to be concatenated.', 4000);
the file size increases again.
--
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
------------------------------------------------------------------------------
Don't let slow site performance ruin your business. Deploy New Relic APM
Deploy New Relic app performance management and know exactly
what is happening inside your Ruby, Python, PHP, Java, and .NET app
Try New Relic at no cost today and get our sweet Data Nerd shirt too!
http://p.sf.net/sfu/newrelic-dev2dev
Firebird-Devel mailing list, web interface at
https://lists.sourceforge.net/lists/listinfo/firebird-devel