単純な MDX クエリがあります。実行にかかる時間は 1 秒未満です。
SELECT
NON EMPTY { } ON COLUMNS,
NON EMPTY
{[Z_OP].[LEVEL01].MEMBERS *
[Z_NV].[LEVEL01].MEMBERS *
[Z_DT].[LEVEL01].MEMBERS }
ON ROWS
FROM
[Z_TEST/Z_TEST_REQ]
ただし、olap4j ライブラリを使用すると、実行に 30 秒以上かかります。これが私のコードです:
Class.forName("org.olap4j.driver.xmla.XmlaOlap4jDriver");
final String query = "[query]";
final Connection connection =
DriverManager.getConnection(
"jdbc:xmla:Server=[URL]?sap-client=200;catalog=[catalog]",
"[login]",
"[password]");
final OlapConnection olapConnection = connection.unwrap(OlapConnection.class);
final CellSet cellSet = olapConnection
.createStatement()
.executeOlapQuery(query);
メタデータを取得するために、追加の 300 の「検出」リクエストが行われることがわかりました (値メンバー/レベル/プロパティなどごとに)。これらのリクエストの量を無効にするか最小限に抑えることはできますか?