понедельник, 18 марта 2013 г.

OBIEE 11g (11.1.1.6.8) + MS SQL 2008



Ошибка появляется при попытке выбрать показатель из факт + что-то из несвязанного с ним измерения. По идее мы просто должны получить наименования из измерений и пустые поля в показателях, однако на деле BI выдает следующее:
[nQSError: 16001] ODBC error state: 37000 code: 145 message: [Microsoft][SQL Server Native Client 10.0][SQL Server]ORDER BY items must appear in the select list if SELECT DISTINCT is specified.. [nQSError: 16002] Cannot obtain number of columns for the query result. (HY000)

На металинке есть нота 1308545.1 и баг 11786576, в которых советуют выставить параметры БД (IS_)EXPRESSIONS_IN_ORDERBY_SUPPORTED в NO (UNCHECKED) и, если не помогает, NESTED_ORDERBY_SUPPORTED  в NO. Но у меня ни то, ни другое не помогло.

Проблема в физическом запросе была в секции ORDER BY, где BI упорно пытался сделать что-то вроде "order by case when D1.c4 is null then 1 else 0 end ....".

Просмотрев доступные опции базы, было найдено NULL_VALUES_SORT_FIRST. Выставив этот параметр в NO, все заработало.

EM->Business Intelligence->coreapplication. Too Slow

Надоело ждать пока загрузится coreapplication?
Добрый человек на OTN-е поделился как решить проблему.

Суть такова:
1. Останавливаем BI-сервисы
2. Идем и выпиливаем логи в

\Middleware\user_projects\domains\bifoundation_domain\servers\bi_server1\logs
(bi_server1-diagnostic-XX.log, access.logXXXXX etc.)

\Middleware\user_projects\domains\bifoundation_domain\servers\AdminServer\logs
(AdminServer-diagnostic-XX.log, AdminServer.logXXXXX etc.)


3. Запускаем BI-сервисы