Derby
  1. Derby
  2. DERBY-1879

Save meta data related information for an EmbedResultSet at the plan level instead of the ResultSet level improves performance.

    Details

    • Type: Improvement Improvement
    • Status: Closed
    • Priority: Minor Minor
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 10.3.1.4
    • Component/s: JDBC
    • Labels:
      None
    • Bug behavior facts:
      Performance

      Description

      EmbedResultSet creates and holds references to information that logically is at the plan level, the same for all ResultSet's that use the same prepared plan. Holding this information at the EmbedResultSet hurts performance and memory usage as ResultSet objects are short lived.

      Saving the ResultSetMetaData object in the ResultDescription object means a single creation for the lifetime of the plan (shared across connections), rather than once per ResultSet object as needed.

      Saving the column name to position mapping added in DERBY-1862 in the ResultDescription has a similar benefit, the map is set up once per prepared plan, not once per executeQuery().

      With test changes (will attach patch soon), the performance of the derby1862 test in DERBY-1876 improves by around 15%

      1. derby1879_diff.txt
        19 kB
        Daniel John Debrunner

        Issue Links

          Activity

          Hide
          Daniel John Debrunner added a comment -

          Patch which implements the two changes described. Needs some of the comments to be fixed.

          Show
          Daniel John Debrunner added a comment - Patch which implements the two changes described. Needs some of the comments to be fixed.
          Hide
          Daniel John Debrunner added a comment -

          Committed revision 450607

          Show
          Daniel John Debrunner added a comment - Committed revision 450607

            People

            • Assignee:
              Daniel John Debrunner
              Reporter:
              Daniel John Debrunner
            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Development