× Heads up!

Aqua Data Studio / nhilam

Follow
IDE for Relational Databases
×
funfun reported 2013-02-21T00:33:25Z  · SachinPrakash last modified 2013-02-27T22:14:47Z

Query Analyzer: high memory consumption


Dev
Fun Fun
funfun
QA
Sachin Prakash
SachinPrakash
Priority Low
Complexity Unknown
Component App - General
Version 14.0

Query Analyzer seems to consume a lot of memory, Sachin requested an investigation on this.

Test data:
   The test cases described below re-use the test table defined in issue #8187, i.e. a table consists of a few rows and each row containing N-MB data (in my test case, N is 10).

Test-Case-1 (retrieving one row from the test table):
(a1) Launch ADS with -Xmx768M and make sure no tabs opened.
(a2) On ADS' toolbar, check all of the following icons:
        'Show Text', 'Show Text History', 'Show DBMS_OUTPUT', 'Show Grid', 'Show Pivot Grid', 'Show Form', 'Show Execution Plan', 'Show Client Statistics'.
(a3) Open a Query Analyzer tab on the DB server where test table resides.
(a4) In Query panel, enter a select statement to retrieve a row from the test table, e.g.
        SELECT * FROM tableName LIMIT 1
        (in my test case, the size of each row is 10-MB)
     The 'Used memory:' displayed in the lower-right corner usually is ~55 MB at this moment.
(a5) Press Control-E to execute the query.
     The status line under the editor pane will show 'Executing...'.
     The value of 'Used memory:' remains unchanged.
(a6) After a while, 'Executing...' is changed to 'Script executed - No Errors',
     The value of 'Used memory:' changes to ~300 MB.
(a7) Wait until all of the following tabs are displayed:
        Text, Text History, Grid, Pivot Grid, Form, Execution Plan, Client Statistics
     The value of 'Used memory:' changes to ~690 MB.
(a8) Click the GC icon a few times.
     The value of 'Used memory:' changes to ~600 MB.
(a9) At the moment, the first tab is selected, i.e. the Text tab.
     Click each tab from left to right till the last tab is reached.
     The value of 'Used memory:' changes to ~690 MB when the 'Grid' tab is clicked.
     Click each tab from right to left till the first tab is reached.
     The value of 'Used memory:' remains unchanged, ~690 MB.
(a10) Click the GC icon a few times.
     The value of 'Used memory:' changes to ~600 MB.

From steps above, it seems that, to handle 10 MB of data,
(1) 300-55=245 MB is used (difference between step a4 and step a6) to retrieve 10 MB data from server into ADS.
(2) 690-300=395 MB is used (difference between step a6 and step a7) to display 10 MB data in the selected tabs.
(3) 690-600=90 MB is used (difference between steps a7, a8, a9 and a10) for the Grid tab to handle 10 MB data.


Test-Case-2 (retrieving two rows from the test table):
(b1) same as step a1 above.
(b2) same as step a2 above.
(b3) same as step a3 above.
(b4) In Query panel, enter a select statement to retrieve 2 rows from the test table, e.g.
        SELECT * FROM tableName LIMIT 2
        (in my test case, the size of each row is 10-MB)
     The 'Used memory:' displayed in the lower-right corner usually is ~55 MB at this moment.
(b5) Press Control-E to execute the query.
     The status line under the editor pane will show 'Executing...'.
     The value of 'Used memory:' remains unchanged.
(b6) After a while, 'Executing...' is changed to 'Script executed - No Errors',
     The value of 'Used memory:' changes to ~372 MB.
(b7) Wait until all of the following tabs are displayed:
        Text, Text History, Grid, Pivot Grid, Form, Execution Plan, Client Statistics
     The value of 'Used memory:' changes to ~716 MB.
(b8) Click the GC icon a few times.
     The value of 'Used memory:' changes to ~600 MB.
(b9) At the moment, the first tab is selected, i.e. the Text tab.
     Click each tab from left to right till the last tab is reached.
     An OutOfMemoryError exception is thrown after the Grid tab is clicked.


Test-Case-3 (retrieving three rows from the test table):
(c1) same as step a1 above.
(c2) same as step a2 above.
(c3) same as step a3 above.
(c4) In Query panel, enter a select statement to retrieve 3 rows from the test table, e.g.
        SELECT * FROM tableName LIMIT 3
        (in my test case, the size of each row is 10-MB)
     The 'Used memory:' displayed in the lower-right corner usually is ~55 MB at this moment.
(c5) Press Control-E to execute the query.
     The status line under the editor pane will show 'Executing...'.
     The value of 'Used memory:' remains unchanged.
(c6) After a while, 'Executing...' is changed to 'Script executed - No Errors',
     The value of 'Used memory:' changes to ~460 MB.
(c7) ADS won't be able to create tabs for showing output, runs out of memory.
 

24 attachments

Issue #8369

Closed
Fixed
Resolved 2013-02-26T04:57:21Z
 
 
Completion
No due date
No fixed build
No time estimate

About AquaClusters Privacy Policy Support Version - 19.0.2-4 AquaFold, Inc Copyright © 2007-2017