5

アプリケーションからヒープ ダンプを取得したところ、オブジェクトが 1 つしかない膨大な数の ArrayList があることがわかりました。そのような配列リストのリストを取得する方法を知っており、含まれている要素のクラスも表示します。

SELECT list.elementData[0] FROM java.util.ArrayList list WHERE (list.size = 1)

結果は次のようになります。

java.lang.String [id=0x7f8e44970]
java.lang.String [id=0x7f8e44980]
java.lang.String [id=0x7f8e44572]
java.io.File [id=0x7f8e43572]
...

私が望むのは、次のようなものを取得することです:

Class             | count
=================================
java.lang.String  | 100
java.io.File      | 74
...

しかし、結果を集計したり、それらに対して他のことをしたりすることはできません。ここで、値を外部選択に渡す方法を見つけました*が、最初の選択で以外のものを使用する方法がわかりません。

SELECT * from OBJECTS
(SELECT OBJECTS list.elementData[0] FROM java.util.ArrayList list WHERE (list.size = 1))
4

1 に答える 1