Firebird 2.1.3 #HDD vs #SSD Benchmarks

The forum post with the results are in Spanish but here are the results and translation in English:
1. The computer was as below :

  • Intel Core i7 930 2.93 @ 4.0 Ghz
  • 6GB DDR3 1600 Cas 7
  • Mobo Gigabyte x58-UD3R
  • Professional 64-bit Windows 7
  • Firebird 2.1.3
  • 2. Hard Drives :
    a. Western Digital 1TB 64MB Cache Sata III Black
    b. Crucial 128GB RealSSD C300

    The test consisted in the creation of a database with 1 table :

    CREATE TABLE COR_PRUEBA (
    INTEGER INTEGER NOT NULL,
    CHARACTER CHAR (20),
    CARACTER2 CHAR (10),
    “DOUBLE” DECIMAL (15, 2),
    INTEGER1 INTEGER);
    ALTER TABLE COR_PRUEBA
    PK_COR_PRUEBA ADD CONSTRAINT PRIMARY KEY (INT);

    The test is done with the IBExpert 2009.08.19 and consisted of the insertion of 500,000 records (Insert operations) with random data.
    Results:

    Disc A (HDD): 1hr 11m 40s 43ms
    Disc B (SSD): 3m 42s 224ms

    What really stunned me was the Big difference and both tests were performed with exactly the same parameters.
    Judge yourself whether it is worth mounting a SSD for storage xD.

    Firebirdsql website down – do not panic

    Please do not panic , the line upgrade went wrong so it will be soon fixed

    Message from Helen :

    >I will put SQL script into rabbit hole tomorrow (provided WEB server
    >will be alife). Currently non of new/old IPs do not ping.

    Message from Sean indicates things went wrong with the migration to the new subnet of the hosting provider. The current situation is that the Tracker is up, while the webserver is not serving pages. Can’t give more info at present as Sean is not at his desk today.

    Firebird Web/Tracker may be unavailable on Wednesday January 12

    Leyne, Sean announced on firebird-support list:

    The company hosting the Firebird servers is migrating to a higher speed net
    connection, which will require a change to the IP addresses. This means that
    the addresses of the Firebird servers will also be changing.

    Tips : create/alter/drop user in firebird 2.5 , or howto get rid of gsec

    On .net provider list Rick Roen is writing a utility to change user password , the best way to change it is from sql :).
    Read the user create/delete/update notes.
    Now a regular user can change it’s own password without the need for sysdba intervention:

    The new DDL command ALTER USER enables an “ordinary” user (a regular Firebird user, a non-root user on POSIX or a trusted user on a Windows system where trusted authentication is enabled) the ability to change his or her password and/or personal name elements, while logged in to any database.

    Database trends survey (Embarcadero)

    Marco Cantu posted in his blog:

    …While most of the questions are on the choice and number of servers used (MS SQL Server being the most widely adopted, Oracle the most critical, and Firebird has a significant 4% 5.5% presence for large companies). Other questions are tuned for Embarcadero products (like evaluating the need for automating some DBA tasks). A few questions are interesting for their broad perspective, like those focused on the relationship between developers and DBAs…

    Btw, interesting that there is no mention of Embarcadero’s Interbase in the survey results.

    Learning from bugs using together : list,distinct,case,extract weekday

    Seems that the bug CORE-3302 is triggered when there are millions of rows and only in firebird 2.5 and 3.0 (Bug is already fixed in svn)
    What you can learn from the bug is the usage of list,distinct,case,extract weekday in the same query

    First i have created the query to extract the day in string format from current date
    select
    list(case extract(weekday from CURRENT_DATE) when 0 then 'Sun' when 1 then 'Mon' when 2 then 'Tue' when 3 then 'Wed' when 4 then 'Thu' when 5 then 'Fri' when 6 then 'Sat' end)
    from RDB$DATABASE

    In my case the result was Fri.
    Then you can create a table with different dates:

    CREATE table tasks
    (
    DATE_OF_TASK DATE
    );

    Populate the table

    INSERT INTO TASKS (DATE_OF_TASK) VALUES ('2011-01-07');
    INSERT INTO TASKS (DATE_OF_TASK) VALUES ('2011-01-07');
    INSERT INTO TASKS (DATE_OF_TASK) VALUES ('2011-01-07');
    INSERT INTO TASKS (DATE_OF_TASK) VALUES ('2011-01-06');
    INSERT INTO TASKS (DATE_OF_TASK) VALUES ('2011-01-06');
    INSERT INTO TASKS (DATE_OF_TASK) VALUES ('2011-01-06');
    INSERT INTO TASKS (DATE_OF_TASK) VALUES ('2011-01-08');
    INSERT INTO TASKS (DATE_OF_TASK) VALUES ('2011-01-08');
    INSERT INTO TASKS (DATE_OF_TASK) VALUES ('2011-01-08');

    Then start to run the query

    select
    list(distinct case extract(weekday from date_of_task) when 0 then 'Sun' when 1 then 'Mon' when 2 then 'Tue' when 3 then 'Wed' when 4 then 'Thu' when 5 then 'Fri' when 6 then 'Sat' end)
    from tasks

    Result should be:

    Fri,Sat,Thu
    
    1 2 3 4