Wednesday, July 16, 2014

OBIEE 11g : Implicit Fact Column

OBIEE 11g : Implicit Fact Column

An Implicit fact column is used when we have multiple fact tables and the report is getting generated using only dimension columns.

A User may request a report where it may have only Dimensions and no Fact columns. In this case, the server may sometimes get confused as to which fact table should it join to fetch the data. So it joins to the nearest fact table and pulls the data through it. So the report output obtained may be different from what the user is expecting.
So, in order to avoid this kind of error,we need to set Implicit Fact Column.

The goal of this is to guide the BI Server to make the best choice between two possible query paths.
We can set a fact attribute (measure) as an implicit fact column.
We can also create dummy implicit fact column on and assign any numeric value to it.

We can set implicit fact column in presentation catlog properties.

1.  Goto properties of presentation catlog in presentation layer.
2.  In implicit fact column section click on set and select any measure column from fact table.
3.  Click OK.
4.  Save your work.

Implicit Fact Column

Instead of selecting any fact measure column as implicit fact column, we can also define a dummy implicit fact.
1.  Create a Physical Column in Fact table in Physical Layer.
2.  Name it as Implicit_Column.
3.  Drag this column in Fact table from BMM layer.
4.  Double click on logical table source of fact table.
5.  In content tab, assign any numeric value to Implicit_Column.

Implicit Fact Column

Once this is done we can set this column as Implicit Fact Column in Presentation catlog as mentioned above.

Wednesday, July 2, 2014

OBIEE 11g : How to set log level?


OBIEE 11g : How to set log level?


In previous post we have seen query logging introduction.


In this post we will see how we can set log level.
We can enable logging level for individual users, system user, and individual request.

1.  For Individual analysis(Temporary log):

While diagnosing query performance or data issue we may need to set temporary log level for a query.
For this we need to set Log_level system variable in advanced tab of analysis.
Add below code in prefix and click Apply Sql.

SET VARIABLE LOG_LEVEL=2;



 This will fetch log only for desired analysis.


2.  For Individual User:

We can set log level for individual user in two ways.

1.       a.  Initializing Loglevel Session Variable:

We can set log level for each user by setting the loglevel system session variable via an initialization block.


b.  Using User Dialog:
a.    In the Administration Tool, select Manage > Identity (11g). The Security Manager dialog box appears.
b.    Double-click the user's user ID. The User dialog box appears.
c.    Set the logging level by clicking the Up or Down arrows next to the Logging Level field.






3.  System Log Level:

You can find a default logging level in the options>Repository tab of the repository.
This will set a system level default log level that will fetch logs for all users as well as all analysis.




Tuesday, July 1, 2014

OBIEE 11g : Query Logging

OBIEE 11g : Query Logging


OBIEE 11g allows controlling the information that is being logged.
We can fetch the logical as well as physical query by enabling log level.
You can enable logging level for individual users, system user, and individual request.

OBIEE provides different levels of logging as from 0(no logging) to 5(all the information).


Query Logging Levels Description:

Logging Level
Information That Is Logged
Level 0
No logging.
Level 1
Logs the SQL statement issued from the client application. Also logs the following:
·         Physical Query Response Time — The time for a query to be processed in the back-end database.
·         Number of physical queries — The number of queries that are processed by the back-end database.
·         Cumulative time — The sum of time for all physical queries for a request (that is, the sum of all back-end database processing times and DB-connect times).
·         DB-Connect time — The time taken to connect to the back-end database.
·         Query cache processing — The time taken to process the logical query from the cache.
·         Elapsed time — The time that has elapsed from when the logical query is presented to the BI Server until the result is returned to the user. Elapsed time can never be less than response time, because elapsed time takes into account the small extra time between the logical query being presented to the BI Server to the start of preparation of the query. In cases where this delta time is negligible, the elapsed time equals the response time.
·         Response time — The time taken for the logical query to prepare, execute, and fetch the last record. This matches the TOTAL_TIME_SEC that is logged in usage tracking.
·         Compilation time — The time taken to compile the logical query.
·         For each query, logs the query status (success, failure, termination, or timeout), and the user ID, session ID, and request ID.
Level 2
Logs everything logged in Level 1.
Additionally, for each query, logs the repository name, business model name, subject area name, SQL statement issued against the physical database, queries issued against the cache, number of rows returned from each query against a physical database and from queries issued against the cache, and the number of rows returned to the client application.
Level 3
Logs everything logged in Level 2.
Additionally, adds a log entry for the logical query plan, when a query that was supposed to seed the cache was not inserted into the cache, when existing cache entries are purged to make room for the current query, and when the attempt to update the exact match hit detector fails.
Do not select this level without the assistance of Oracle Support Services.
Level 4
Logs everything logged in Level 3.
Additionally, logs the query execution plan. Do not select this level without the assistance of Oracle Support Services.
Level 5
Logs everything logged in Level 4.
Additionally, logs intermediate row counts at various points in the execution plan. Do not select this level without the assistance of Oracle Support Services.
Level 6 and 7
Not used.



Viewing logs:

Logs get stored in NQSQUERY.log file.
It is located at,

<instance_home>/diagnostics/logs/OracleBIServerComponent/coreapplication_obis1/

Also logs can be viewed from dashboard administration.
We can fetch logs from Administration>Manage Sessions

Here we can see all the logs generated for different users.


Please check my next post on how to set query log level,

OBIEE 11g : How to set log level?