OQLは特定のクラスオブジェクト検索を行えるものです。
オブジェクト問い合わせ言語 (オブジェクトといあわせげんご、オブジェクト照会言語、OQL、英: Object Query Language) は、Object Data Management Group (ODMG) に準拠したオブジェクトデータベースに対する問い合わせと更新を行うための宣言型の問い合わせ言語 (データベース言語) である。 OQLは、宣言型言語であり、手続き型言語ではない。 OQLは、関係データベース (リレーショナルデータベース) の問い合わせ言語 (データベース言語) SQL をもとにしている。 OQLは、ODMGによって開発され標準仕様として公開された。
※Wikiより
なお、このページでは扱うOQL (Object Query Language):は、Javaヒープの検索をするために利用できるSQLのような問い合わせ言語です。OQLはJAVAヒープから必要な情報を選択したり、フィルターしたりすることができます。
メモリリーク解析のため、ヒープのスナップショットをとって、ビューアでみることまでできたが、インスタンスがたくさんありすぎる。
見つけたいのは、循環参照しているインスタンスだ。
それを絞り込むのに、OQLってつかえるの?っておもって情報を集めるというのが、このページの目的
OQLは、JavaScrip?埋め込み型言語(JavaScript? Expression Language)をベースとしています。
select <JavaScript expression to select> [ from [instanceof] <class name> <identifier> [ where <JavaScript boolean expression to filter> ]
自分では、まだ、問い合わせ文をつくれないので、サイトに掲載されている例文をまとめてみます。
SELECT s FROM java.lang.String s WHERE (s.count >= 100)
select file.path.value.toString() from java.io.File file
SELECT cl FROM INSTANCEOF java.lang.ClassLoader cl
select a from int[] a where a.length >= 256
SELECT ac FROM INSTANCEOF android.app.Activity ac
http://andbrowser.com/development/knowhow/289/eclipse-android-memory-leak-mat-oql/