Open Source RDBMS - Seamless, Scalable, Stable and Free

한국어 | Login |Register

Current Events
Join our developers event to win one of the valuable prizes!
posted 4 years ago
viewed 34436 times
Share this article

New CUBRID 8.4.4 with SQL Profiling and Stability Improvements


On behalf of CUBRID Team I am happy to announce the new 8.4.4 version of CUBRID open source relational database. This release is mostly dedicated for stability improvement of the 8.4 branch, and has some minor behavioral changes which I will explain below. Thus, CUBRID 8.4.4 is fully compatible with the previous 8.4.3 version.

If you have been following up with our latest releases, you may have noticed that we are maintaining two branches for CUBRID 8.4.x and 9.x. As 8.4.0 release introduced major changes and extended support for MySQL compatible SQL, many users have started using or migrated to it. In fact, there are more 8.4.x users than 9.x at this moment. For this reason, we bring common bug fixes applied to the successor 9.x branch down to 8.4.x branch. This way we make sure users of the 8.4.x branch have the latest improvements.

New Features

Since this is a stability improvement release, there are no other new features except the SQL profiling which is brought down from the upcoming 9.2 release.

SQL profiling

Prior to 8.4.4 users could obtain SQL profiling information to analyze the query performance only in desktop GUI applications like CUBRID Manager or CUBRID Query Browser. Now CUBRID allows to retrieve SQL profiling information directly from drivers. To enable the SQL profiling one can execute SET TRACE ON before executing the query, then retrieve the query plan and statistics by executing SHOW TRACE query. See the following example:

csql> SELECT /*+ RECOMPILE */ o.host_year, o.host_nation, o.host_city,, SUM(, SUM(p.silver), SUM(p.bronze)
        WHERE o.host_year = p.host_year AND p.nation_code = n.code AND > 10
        GROUP BY o.host_nation;

Query Plan:
  SORT (group by)
    NESTED LOOPS (inner join)
      NESTED LOOPS (inner join)
        TABLE SCAN (o)
        INDEX SCAN (p.fk_participant_host_year) (key range: (o.host_year=p.host_year))
      INDEX SCAN (n.pk_nation_code) (key range: p.nation_code=n.code)

  rewritten query: select o.host_year, o.host_nation, o.host_city, n.[name], sum(, sum(p.silver), sum(p.bronze) from OLYMPIC o, PARTICIPANT p, NATION n where (o.host_year=p.host_year and p.nation_code=n.code and (> ?:0 )) group by o.host_nation

Trace Statistics:
  SELECT (time: 1, fetch: 1059, ioread: 2)
    SCAN (table: olympic), (heap time: 0, fetch: 26, ioread: 0, readrows: 25, rows: 25)
      SCAN (index: participant.fk_participant_host_year), (btree time: 1, fetch: 945, ioread: 2, readkeys: 5, filteredkeys: 5, rows: 916) (lookup time: 0, rows: 38)
        SCAN (index: nation.pk_nation_code), (btree time: 0, fetch: 76, ioread: 0, readkeys: 38, filteredkeys: 38, rows: 38) (lookup time: 0, rows: 38)
    GROUPBY (time: 0, sort: true, page: 0, ioread: 0, rows: 5)


In CUBRID 8.4.4 there are tons of stability and usability improvements which include the following list of improvements of administrative functions.

Behavioral changes

Some of the functionality in CUBRID 8.4.4 has been changed.

Besides these improvements and behavioral changes, there are many bug fixes and minor improvements. For the full list refer to CUBRID 8.4.4 Release Notes.

What's next

In a week or so we will release a new version of 9.x branch which will carry the 9.2 label. We will explain about the new features of 9.2 in a separate post.

If you have any questions, feel free to leave your comment below.

comments powered by Disqus