У меня есть простой запрос MDX. Она занимает менее 1 секунды, чтобы выполнить его:olap4j. Запрос MDX (XMLA) занимает слишком много времени
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 «Обнаружить» запросы на получение метаданных (для каждого члена значения/уровня/собственность и т.д.). Можно ли отключить или минимизировать количество этих запросов?
проблема не в MDX, она находится в olap4j. Ваш метод не влияет на запросы обнаружения XMLA: MDSCHEMA_MEMBERS, MDSCHEMA_PROPERTIES, MDSCHEMA_LEVELS, MDSCHEMA_HIERARCHIES. – Aries