Performance Tuning.
Performance Tuning.
Performance Tuning.
com
First, Let us look into the question what are Performance Issues in a report?
Second, Let us look into the options of how to we tune the performance of the reports
Modify Array Fetch parameter: The Array fetch parameter sets the maximum number of rows that
are permitted in a FETCH proedure. For example, of the Array Fetch size is 20, and total rows are
100, then five fetches will be executed to retrieve the data, which will consume more time in
comparison with one fetch.
Resolution: If network allows sending large arrays, then set Array fetch parameter to new larger
value. This speed up the FETCH procedure, and reduce query processing time.
Allocating table weights: Table weight is a measure of how many rows there are in a table. Lighter
tables have less rows than heavier tables. By default BusinessObjects sorts the tables from the
lighter to the heavier tables. The order in which tables are sorted at the database level depends on
your database. For example, Sybase uses the same order as BusinessObjects, but Oracle uses the
opposite order. The SQL will be optimized for most databases, but not for Oracle where the smallest
table is put first in the sort order. So, if you are using an Oracle database, you can optimize the SQL
by reversing the order that BusinessObjects sorts the tables. To do this you must change a
parameter in the relevant PRM file of the database.
Resolution: Business Objects settings, the ORACLE PRM file must be modified as below:
• Browse to directory Business Objects\BusinessObjects Enterprise
6\dataAccess\RDBMS\connectionServer\oracle.
• Open ORACLE.PRM file, change the REVERSE_TABLE_WEIGHT
value to N from Y.
Using Shortcut joins: Numbers of tables in join are more, even when selected objects are less. Even
when no object of related table is selected, then also that table is appearing in the join condition.
For e.g., If A_id object from A table of C table is selected with B table in between, then BO generated
SQL shows that intermediate table ‘B’ table was present in ‘From’ clause.
Resolution: Shortcut joins allow users to skip intermediate tables and allow alternative
paths between tables. Use of shortcut join reduces the number of tables used in query to improve
SQL performance. Results in query performance improving from 1.5 minute to 30 seconds!!
Use aggregate functions: Data is aggregated on the subject of analysis (user selected criteria) at
report level. This takes more processing time, as data from database is loaded in temporary
memory and then aggregated or processed to display.
Resolution: Use aggregate functions (e.g., sum, count, min, max) in measure objects at universe
level. Aggregate functions will aggregate the data at database level rather than at report level which
will save on processing time at report level and also reduce the number of rows returned back to
report.
Creating and using aggregate tables: Aggregate data are obtained by scanning and summarizing all
of the records in the fact table at real-time which consumes more time.
Resolution: Aggregate tables contain pre-calculated aggregated data. Using aggregate tables
instead of detail tables enhances the performance of SQL transactions and speeds up query
execution. Aggregate_Awareness function has ability to dynamically re-write SQL to the level of
granularity needed to answer a business question. Aggregate tables allow for faster querying speed
and increases query performance manifolds!!
Minimize usage of derived tables: Since derived tables are evaluated and executed at runtime, SQL
tuning is not possible.
Resolution: Minimize the usage of derived tabled and replace them with tables or materialized
view. SQL tuning techniques such as creating index can be applied on tables or materialized views
which will improve performance of BO reports.
Opt for Refresh At- Will over Refresh-On-Open: Refresh-on-open reports refresh new data each time
it is opened. Connection with database is established each time report is refreshed which in turn
slows the report performance.
Resolution: If report is based on snapshot data and static, it is better to publish report without
refresh-on-open property. Users will thus view the same instance of report without establishing
database connection, which will reduce the response time of BO report.
List of Values (LOV's): When we create LOV object, distinct values are selected into it. DISTINCT
forces an internal sort/compare on the table. Selecting a distinct list on large table is not
optimal e.g., selecting a distinct list of custom_store against t_curr_tran_daily table is not
optimal.
Resolution:
a. Re-map the object list of values to smaller look up tables.
b. If there are no smaller lookup tables, then create external file as a source to LOV. This file needs to
be exported along with universe and be available to all users, which is additional overhead. Usage of
external file replaces the need of lookup table and delivers high performance and weighs down the
overhead cost
c. Avoid creating LOV on dates and measures. Disassociate LOV from all such objects which are not
display as prompts.
Universe Condition Objects: The entire data from database is fetched (<=maximum rows setting) and
the filters are applied at the report level. As data is not restricted at the database or universe
level, the reports takes more time to execute.
Resolution:
When handling huge data, one of the following steps can be taken to limit data:
1. Use prompts to restrict data selection at universe level. Preferably use time period prompts in
reports.
2. Replace report filters with Universe condition objects, if possible. Usage of conditional objects will
limit rows returned at database level.
Complex Calculations: The data from database is fetched and then calculations are applied to that
data. As calculations are performed at universe or report level on huge data, reports takes
more time to execute.
Resolution: When dealing with huge data warehouses perform complex calculations at ETL level.
Thus Business Objects saves time on calculations and deliver high performance.
Minimize usage of Report variables/formulas: If the report is pulling tons of data, doing loads of
joins, making lot of clever calculations, using lot of report variables and formulas, report may run
very slow. Report variables and formulas are loaded and calculated in memory at real time.
As variables are created at real time and calculations are performed at report level, reports takes
more time to execute.
Resolution: When dealing with big reports, minimize usage of report variables/formulas and try
to place them at universe to deliver high performance reports.
Examine the execution plan of SQL: Determine the execution plan of BO generated SQL in target
database. EXPLAIN PLAN is a handy tool for estimating resource requirements in advance. It
displays execution plans chosen by Oracle optimizer without executing it and gives an insight on how
to make improvements at database level.
Level 4 optimization - Server level
If the performance of system deteriorates when reports are accessed by larger number
of users over web, then fix the problem at fourth level i.e., server level (Level 4).
2) What are different tools used to create or edit Web Intelligence reports?
You can create or edit Web Intelligence documents using one of several tools:
• Java Report Panel
• Query – HTML
• HTML Report Panel
Used together with On-Report Analysis, Query – HTML provides a complete solution for building
data providers and designing powerful reports in a pure HTML environment. Once you have run the
data providers to generate a standard report, you can leverage Web Intelligence On-Report Analysis
features to format multiple reports, add formulas, and create variables.
Note: Web Intelligence Query – HTML and On-Report Analysis in Interactive view format are only
available, if your administrator has deployed Web Intelligence in JSP mode.
Designed for users who need to build basic reports, the HTML Report Panel provides query and
report features in a simple wizard-like interface. Each document is based on a single data source and
can contain multiple reports, displaying different subsets of information. In addition, the HTML
Report Panel is 508 compliant and can be customized for specialized deployments.
Note: The Web Intelligence HTML Report Panel is only available, if your administrator has deployed
Web Intelligence in JSP mode.
7) What are the two ways in which data in the Web Intelligence document is edited?
There are two ways to open a Web Intelligence document in edit mode:
• view the document first and then switch to Edit mode
• switch to edit mode directly without viewing the document contents first
When you build a query, Web Intelligence generates SQL behind the scenes. This SQL is run against
the database to produce a result that Web Intelligence displays in a report. For a query to be free of
incompatible objects, Web Intelligence must be able to generate a single SQL query to retrieve the
data. If this is not possible, the query contains incompatible objects.
16) What are the different table templates used in Web Intelligence?
The different table templates you can use to display information on Web Intelligence reports:
• Vertical tables: Vertical tables display header cells at the top of the table and the
corresponding data in columns.
• Vorizontal tables: Horizontal tables display header cells at the left of the table and the
corresponding data in rows.
• Crosstabs: Crosstabs are useful for presenting results that correspond to the intersection of two or
more dimensions.
• Forms: Forms are useful in your report if you want to display detailed information per customer,
product, or partner. For example, a form is a useful way of
displaying individual customer records with information such as the customer account, name,
address, and so on
P O S T ED BY B O W OR L D ! ! ! AT 7 : 5 3 P M
0 COMMENTS:
Restriction Sets
1) Restrict access to entire universe by setting universe rights in the Central Management
Console(CMC)
Business requirement to secure business critical data based on a user's role in the organization.
Restriction Set:
-> A restriction set is a named group for restrictions that apply to a universe
-> Restriction sets can be applied to Business Objects users and groups to force behavior changes in
a universe
-> Restriction sets are managed using the Business Objects Universe Designer application, using a
feature named access restrictions
Tips:
P O S T ED BY B O W OR L D ! ! ! AT 5 : 4 9 P M
A list of values is a list that contains the data values associated with an object. A list of values can
contain data from two types of data source:
1) Database file: When you create an object, Designer automatically associates a list of values with
the object. The list of values is not created until a user, or you the designer, choose to display
a list of values for the object in the Query pane. A SELECT DISTINCT query is then run against the
column or columns inferred by the object. The returned data is stored in a file with a.LOV extension
in the universe sub folder created under the same folder that stores the universe file.The.LOV file is
then used as the source for values for the list.
2) External file: Personal data, for example a text file, or an Excel file can be associated with a list of
values. A list of values that is based on an external file is fixed. You cannot have a dynamic link with
an external file. You must refresh the.LOV file if your external file has changed.
In Web Intelligence, a user can create a query in the Query pane using the operand “Show list of
values” to apply to an object when applying a condition.
Note: A.LOV file is also created whenever any condition is applied to an object in the Query pane
that requires a restriction on the column values inferred by the object.
A.LOV file is also created whenever any condition is applied to an object in the Query pane that
requires a restriction on the column values inferred by the object.
The List of Values for an object appears showing values available for the object, allowing the user to
choose the terms for the condition. The first time a list of values is used, it is saved as a.LOV file in
the universe sub folder on the file system. This allows the SELECT DISTINCT query to be run only
once for an object. This folder also stores the.LOV files created in Designer which are used to restrict
the list of values returned for objects for which the designer wants to control access to the data.
When you create a dimension or detail object in Designer, it is automatically assigned an associated
list of values. This list does not physically exist when you create an object, but by default, the object
has the ability to query the database to return a list of its values when used in the Query pane.
Note: No default list of values is assigned to measure objects. When a condition is first placed on an
object in the Query pane that requires a list of values to be displayed in Designer, a SELECT DISTINCT
statement is run against the appropriate columns inferred by the object, and the list of values is
returned.
A.LOV file is automatically created in the universe subfolder to hold the list values. The next time
that the list of values is required for the object in Designer, the values are returned from the.LOV file
and not from the database.
As the universe designer, you can define how the data is presented in the list, and define restrictions
on the amount and type of data returned to the list. You can set the properties for an object to
determine the following actions for a list of values:
• Define a query that sets conditions on the SELECT DISTINCT query that an object uses to return a
list of values. You save this query in the properties of an object.
• If the list is based on column values, or values from an external file, for example an Excel
spreadsheet.
You can also create a permanent list for values for an object and export this list to the repository.
This.LOV file is then always used as the list of values for that object. It is not updated.
• Selected by default for dimensions and details. Not selected for measures.
List name: Name of the.LOV file that stores the returned list data. Limited to 8 characters.
• When selected, users can edit the list of values file in Web Intelligence.
Note: This does not apply to personal data files such as Excel spreadsheets. These are not exported
to the repository. They remain on a local machine. A user can edit a local file, or change the target
list of values for another local data file.
The purpose of a list of values is usually to limit the set of available values to a user. If they can edit a
list, you no longer have control over the values they choose. Normally, if you are not using a
personal data file as a list of values source, you clear this option to ensure that users do not
• When selected, the list data is refreshed each time the list of values for an object is displayed in
the Query pane. This can have an effect on performance each time the .LOV is refreshed. This option
does not apply to Web Intelligence reports.
• When cleared, the list is refreshed only once at the start of a user logon session.
-> If the list contains values that regularly change, then you can select this option, but
you should take into account the effect on performance.
-> If the list contents are stable, then you should clear this option.
• When selected, the.LOV file associated with the object is exported with the universe to the
repository. The universe domain and document domain must exist on the same data account. A list
of values is stored in the document domain. The document domain does not have to be visible to the
a user’s profile in Supervisor.
• You must create the list of values that is associated with the object for it to be exported. This list is
saved as a.LOV file.
• When cleared, a.LOV file for the object is not exported to the repository. Select this option if you
customize this list regularly. This allows your modifications to be exported and imported with the
universe.
You can export a list of values with the universe to the CMS. On the file system, the associated .LOV
file is copied to a universe sub directory in the same folder that stores the universe file.
When a user runs a query in Web Intelligence using an object that is associated with a .LOV file
exported from Designer, the list of values that is returned for the object is determined by one of the
following:
• The SQL for the SELECT DISTINCT query defined in the .LOV file.
If you have created a condition in Designer to restrict the data values returned for an object, the
restricted list appears, and not the default list of all the data values. The list retains all conditions and
formatting implemented in Designer.
If you had not exported the .LOV file with the universe, then the object would simply return the
default list with no conditions and formatting. A default .LOV file would then be created to hold the
data.
You can manage all the lists of values in the active universe from the Lists of Values dialog box
(Tools > Lists of Values). All the classes and objects are presented in a tree view. You can select any
object, and access its list of values. You can perform the following actions from the Lists of Values
dialog box:
-> Edit: Displays the Query pane used to define a query for the selected
object. You can define and edit existing queries for a list of
values.
-> Display: Displays the current list of values for the selected object.
-> Purge: Clears the contents of the list of values currently assigned to the selected object.
P O S T ED BY B O W OR L D ! ! ! AT 2 : 4 9 P M
1 COMMENTS:
1.
Hi,
I am new to BO.
I have created a LOV object and assigned it to a conditional object. This conditional objects is
defined with @Prompt function.
Tech
Non-Tech
Both
When I run my report , I am prompted for these values. When a user selects any of the
above values what I want to happen to pass a different value in the back-ground to the
query than the string of LOV itself.
i.e
When User submits "Tech" , I want value '1' to be passed and if user selects "Non-Tech" , I
want value '0' to be passed and if user selects "Both" I want '1;0' to be passed to the query.
The Repository organizes documents into Folders and Categories in an orderly system that permits
easy access for you and others working with documents. You select the documents you want to
import from or export to Desktop Intelligence.
Folders: Folders are the physical place where documents are stored. Only one document with a
given name may be placed in a folder or category. It is possible to place documents in several
categories. If necessary change the name of the document or give it a number to place it in the same
folder or category. It is possible to create or delete sub-folders.
There are 2 types of folders:
• My Folders with 2 sub-folders
• Favorites (Generally reserved for often used documents)
• Inbox (Generally reserved for documents received from other users
• Public Folders (For shared documents.)
Categories: Categories are used for classifying information regardless of its storage location.
There are two types of Categories:
• Corporate Categories
• Personal Categories
The scope of analysis you can define depends on hierarchies in the universe. A hierarchy, which the
designer sets up when creating the universe, consists of dimension objects ranked from “less
detailed” to “more detailed”. The objects that belong to hierarchies are the ones you can use to
define scope of analysis.
11) How do you limit the query using conditions and what are they?
A condition is a way of limiting the data that a query returns. In Desktop Intelligence, you can set
three types of conditions on a query:
Predefined conditions: When universe designers build universes, they can create predefined
conditions for you to use.
Simple conditions: Enable you to limit data returned by a result object. For example, you can find out
about certain customers by applying a simple condition on the Customer object, then selecting the
customer names that appear in a dialog box.
Complex conditions: Enable you to limit the query results by any object in the universe.
12) What are options that can be setup before running a query?
Before running a query, you can set options that enable you to:
• Specify the number of rows of data that you want the query to return. The Default Value option
corresponds to the maximum number of rows that the universe designer specified for queries on the
current universe.
• Eliminate duplicate rows of data.
• Retrieve no data when you run the query. In this case, Desktop Intelligence generates the query
SQL but does not connect to the database. The names of the objects included in the query appear as
column headings in the report. This option is useful if you want to save the query you have built, but
refresh it at an off-peak time.
The types of SQL script that you are allowed to run as free-hand SQL are determined by your
Desktop Intelligence administrator. If you attempt to run a script for which you do not have
permission, you will receive an error message. Typically, you are able to run scripts that contain only
one SELECT statement.
Note: BusinessObjects does not execute COMPUTE and ORDER BY clauses in free-hand SQL
statements.
• COMPUTE, PRINT, OUTPUT or STATUS statements contained in stored procedures are not
executed.
To create a VBA data provider, you write a VBA procedure that takes the interface DpVBA Interface
as a parameter. You can write this procedure from within the VBA environment of Desktop
Intelligence. The DpVBAInterface is the interface to the VBA data provider Automation object. The
procedure for writing a VBA data provider is:
Once the data cube is populated, you can generate a report based on this data in Desktop
Intelligence.
22) What are different ways in which data can be analyzed using desktop intelligence?
• Desktop Intelligence on-report analysis allows you to work directly on your data in your report
using drag and drop and or with simple mouse clicks.
• Desktop Intelligence enables you to carry out multidimensional analysis in Drill mode.
• Desktop Intelligence Slice and Dice mode allows you to organize data for analysis in the slice and
dice panel.
27) What is the difference between drill-up, drill-down, drill across and drill through?
Drilling down: When you drill down, you display the next level of detail in a hierarchy
Drilling up: Drilling up is the opposite of drilling down. When you drill up, you go back up through the
hierarchy to display data on less detailed levels.
Drilling across: When you drill down and up, you move through the levels of the same hierarchy.
However, if you cannot find the answer to a question by analyzing data in its current hierarchy, you
can move to another hierarchy to analyze other data.
Drilling through to the database to bring in new data If the lowest level of detail you need is not
currently available in the report, you can drill through to the database directly from drill mode and
get the data you need. You do not have to edit the query in the Query Panel.
28) What is Slice Dice mode?
Slice-and-dice mode enables you to switch the position of data in a report, for example by moving
columns to rows to create a crosstab. You can also use slice-and-dice mode to:
• work with master/detail reports
• display and remove data
• rename, reset and delete blocks
• turn tables and crosstabs into charts, and vice versa
• apply, edit and delete breaks, filters, sorts, rankings and calculations
You access slice-and-dice mode through the Slice and Dice Panel, a pop-up window that provides a
graphical representation of the report you are working on. You carry out slice-and-dice tasks by
dragging and dropping icons that represent your data.
In the first table, the sum includes New York and Washington revenues only.
The formula to calculate this sum is: =Sum()
In the second table, formula for calculating the sum includes the NoFilter function. As a result, the
sum includes revenues for all cities. The formula is as follows:
=NoFilter (Sum())
33) How is ranking performed if they are breaks inserted inside the data?
In a table or crosstab in which breaks have been inserted, data is ranked separately for each break
level.
Note: If you have created a local variable using values from different data providers, you will not be
able to rank data based on this variable. The variable will not be displayed in the list in the Ranking
dialog box.
39) How can the user objects be shared among the end users?
If you want to share user objects with other users, you should ask the universe designer to include
these user objects in the related universe in order to make them available to all Desktop Intelligence
end-users.
Wildcards are special characters that can denote any single character, or any number of characters.
Desktop Intelligence supports the standard wildcard characters, which are:
% : Replaces several characters, or in the response to a prompt. For example, N% returns all values
beginning with an N (New York, Nevada)
- : Replaces a single character in a constant. For example, GR_VE returns Grave, Grove, Greve.
41) How does the operator in list work?
The In list operator lets you select multiple values for a document. These multiple values can be a
condition on a query that you want to build or can be the basis for an interactive document in which
Desktop Intelligence prompts other users to select values from the list you created to view data
limited to their needs.
42) Explain the difference between Different from and except operator?
Different from, Not in list and Except are all operators that exclude certain data from your query
results. Does this mean that you could use this condition to obtain a list of customers who have not
stayed at Bahamas Beach?
You solve this problem by using the Except operator instead of Different from. When you use Except,
Desktop Intelligence builds two queries:
• All customers.
• Customers who have reservations for Bahamas Beach.
Desktop Intelligence then subtracts the customers given by the second query from those given by
the first. This returns the result you want.
The syntax is
=RunningAggregateFunction(;)
giving, for example =Sum(;;)
54) Concatenation:
=Concatenation(,)
The syntax to achieve the same result as shown above using the & operator is:
=&" "&
The Concatenation() function and & operator allow you to combine charactertype data only. If you
want to combine text or character-type data with numbers you must first convert the number into a
character string. Otherwise, Desktop Intelligence displays the error message 'Incompatible data
type'. You can convert a number to a character string using the FormatNumber() function.
In the same way, if you want to combine text with dates using the & operator or the Concatenation()
function, you must first convert the date into a character string. Otherwise, Desktop Intelligence
displays the error message 'Incompatible data type'. You can convert a date into a character string
using the FormatDate() function.
P O S T ED BY B O W OR L D ! ! ! AT 7 : 3 6 P M 1 C OM M E NT S
Joins
Equi Join: An equi-join links two tables on common values in a column in table 1 with a column in
table 2. The restriction conforms to the following syntax:
Table1.column_a = Table2.column_a
In a normalized database the columns used in an equi-join are usually the primary key from one
table and the foreign key in the other
Theta Join: A theta join is a join that links tables based on a relationship other than equality between
two columns. A theta join could use any operator other than the “equal” operator.
Outer Join: An outer join is a join that links two tables, one of which has rows that do not match
those in the common column of the other table. You define an outer join by specifying which table is
the outer table in the original equi-join. The outer table contains the column for which you want to
return all values, even if they are unmatched.
Shortcut join:A shortcut join is a join that provides an alternative path between two tables.
Shortcut joins improve the performance of a query by not taking into account intermediate tables,
and so shortening a normally longer join path.
Self restricting joins: A self restricting join is not really a join at all, but a self restriction on a single
table. You can use a self restricting join to restrict the results returned by a table values using a fixed
value.
P O S T ED BY B O W OR L D ! ! ! AT 7 : 0 5 P M 0 C OM M E NT S
3) What is Strategies?
A strategy is a script that automatically extracts structural information from a database or flat file.
Strategies have two principle roles:
• Automatic join and cardinality detection (Join strategies)
• Automatic class, object, and join creation (Objects and Joins strategies)
Strategies can be useful if you want to automate the detection and creation of structures in your
universe based on the SQL structures in the database. There exits two types of strategies:
-Built in strategy is the Default strategy shipped with Designer. Built in strategies cannot be
customized.
-External strategy: User defined script that contains the same type of information as a Built in
strategy, but customized to optimize information retrieval from a database.
A context resolves a loop by defining a set of joins that specify one specific path through tables in a
loop. It ensures that joins are not included from different paths within the same SQL query.
12) How Do You Resolve a chasm Trap?
To resolve a chasm trap you need to make two separate queries and then combine the results.
Depending on the type of objects defined for the fact tables, and the type of end user environment,
you can use the following methods to resolve a chasm trap:
• Create a context for each fact table. This solution works in all cases.
• Modify the SQL parameters for the universe so you can generate separate SQL queries for each
measure. This solution only works for measure objects. It does not generate separate queries for
dimension or detail objects.
@Prompt: You can use the @Prompt function to create an interactive object. You use a @Prompt
function in the Where clause for an object. It forces a user to enter a value for a restriction when
that object is used in a query. When the user runs the query, a prompt box appears asking for a
value to be entered. @Prompts are useful when you want to force a restriction in the inferred SQL
but do not want to preset the value of the condition.
@Prompt(‘message’,‘type’,[lov],[MONOMULTI],[FREECONSTRAINED])
@Select: You can use the @Select function to re-use the Select statement of another object. When
the @Select function is used in the Select statement of an object, it specifies the path of another
object in the universe as a parameter of the @Select function, in the form
Class_Name\Object_Name. This then acts as a pointer to the Select statement of the referenced
object.
@Select(Classname\Objectname)
Note:
When you use @Select and @Where functions, one object now depends on another in the universe.
You have created a new object dependency. When one object is deleted, the other object using the
@Select or @Where function needs to be manually updated.
@Where: You can use the @Where function to re-use the Where clause of another object. When
the @Where function is used in the Where clause of an object, it specifies the path of another object
in the universe as a parameter of the @Where function, in the form Class_Name\Object_Name. This
then acts as a pointer to the Where clause of the referenced object. Using the Where clause creates
a dynamic link between two objects. When the Where clause of the original object is modified, the
Where clause of the referencing object is automatically updated.
The reliability and usefulness of aggregate awareness in a universe depends on the accuracy of the
aggregate tables. They must be refreshed at the same time as all fact tables. A universe that has one
or more objects with alternative definitions based on aggregate tables is said to be “aggregate
aware”. These definitions correspond to levels of aggregation. For example, an object called Profit
can be aggregated by month, by quarter, or by year. These objects are called aggregate objects.
Queries built from a universe using aggregate objects return information aggregated to the
appropriate level at optimal speed.
Table weight is a measure of how many rows there are in a table. Lighter tables have less rows than
heavier tables. By default BusinessObjects sorts the tables from the lighter to the heavier tables. The
order in which tables are sorted at the database level depends on your database. For example,
Sybase uses the same order as BusinessObjects, but Oracle uses the opposite order. The SQL will be
optimized for most databases, but not for Oracle where the smallest table is put first in the sort
order. So, if you are using an Oracle database, you can optimize the SQL by reversing the order that
BusinessObjects sorts the tables. To do this you must change a parameter in the relevant PRM file of
the database.
Kernel approach: With the kernel approach, one universe contains the core components. These are
the components common in all universes. The derived universes that you create from this kernel
universe contain these core components as well as their own specific components.
Master approach: The master approach is another way of organizing the common components of
linked universes. The master universe holds all possible components. In the universes derived from
the master, certain components are hidden depending on their relevance to the target users of the
derived universe. The components visible in the derived universes are always a subset of the master
universe. There are no new components added specific to the derived universe.
Component approach: The component approach involves merging two or more universes into one
universe. The Sales universe below was created by merging two universes: Part 1 and Part
P O S T ED BY B O W OR L D ! ! ! AT 5 : 3 0 P M 0 C OM M E NT S
P O S T ED BY B O W OR L D ! ! ! AT 4 : 5 0 P M 2 C OM M E NT S
Newer PostsHome
Subscribe to: Posts (Atom)
3) What is Strategies?
A strategy is a script that automatically extracts structural information from a database or flat file.
Strategies have two principle roles:
• Automatic join and cardinality detection (Join strategies)
• Automatic class, object, and join creation (Objects and Joins strategies)
Strategies can be useful if you want to automate the detection and creation of structures in your
universe based on the SQL structures in the database. There exits two types of strategies:
-Built in strategy is the Default strategy shipped with Designer. Built in strategies cannot be
customized.
-External strategy: User defined script that contains the same type of information as a Built in
strategy, but customized to optimize information retrieval from a database.
A context resolves a loop by defining a set of joins that specify one specific path through tables in a
loop. It ensures that joins are not included from different paths within the same SQL query.
@Prompt: You can use the @Prompt function to create an interactive object. You use a @Prompt
function in the Where clause for an object. It forces a user to enter a value for a restriction when
that object is used in a query. When the user runs the query, a prompt box appears asking for a
value to be entered. @Prompts are useful when you want to force a restriction in the inferred SQL
but do not want to preset the value of the condition.
@Prompt(‘message’,‘type’,[lov],[MONOMULTI],[FREECONSTRAINED])
@Select: You can use the @Select function to re-use the Select statement of another object. When
the @Select function is used in the Select statement of an object, it specifies the path of another
object in the universe as a parameter of the @Select function, in the form
Class_Name\Object_Name. This then acts as a pointer to the Select statement of the referenced
object.
@Select(Classname\Objectname)
Note:
When you use @Select and @Where functions, one object now depends on another in the universe.
You have created a new object dependency. When one object is deleted, the other object using the
@Select or @Where function needs to be manually updated.
@Where: You can use the @Where function to re-use the Where clause of another object. When
the @Where function is used in the Where clause of an object, it specifies the path of another object
in the universe as a parameter of the @Where function, in the form Class_Name\Object_Name. This
then acts as a pointer to the Where clause of the referenced object. Using the Where clause creates
a dynamic link between two objects. When the Where clause of the original object is modified, the
Where clause of the referencing object is automatically updated.
The reliability and usefulness of aggregate awareness in a universe depends on the accuracy of the
aggregate tables. They must be refreshed at the same time as all fact tables. A universe that has one
or more objects with alternative definitions based on aggregate tables is said to be “aggregate
aware”. These definitions correspond to levels of aggregation. For example, an object called Profit
can be aggregated by month, by quarter, or by year. These objects are called aggregate objects.
Queries built from a universe using aggregate objects return information aggregated to the
appropriate level at optimal speed.
Table weight is a measure of how many rows there are in a table. Lighter tables have less rows than
heavier tables. By default BusinessObjects sorts the tables from the lighter to the heavier tables. The
order in which tables are sorted at the database level depends on your database. For example,
Sybase uses the same order as BusinessObjects, but Oracle uses the opposite order. The SQL will be
optimized for most databases, but not for Oracle where the smallest table is put first in the sort
order. So, if you are using an Oracle database, you can optimize the SQL by reversing the order that
BusinessObjects sorts the tables. To do this you must change a parameter in the relevant PRM file of
the database.
25) Different ways to link universes?
The following approaches when linking universes:
• Kernel approach
• Master approach
• Component approach
Kernel approach: With the kernel approach, one universe contains the core components. These are
the components common in all universes. The derived universes that you create from this kernel
universe contain these core components as well as their own specific components.
Master approach: The master approach is another way of organizing the common components of
linked universes. The master universe holds all possible components. In the universes derived from
the master, certain components are hidden depending on their relevance to the target users of the
derived universe. The components visible in the derived universes are always a subset of the master
universe. There are no new components added specific to the derived universe.
Component approach: The component approach involves merging two or more universes into one
universe. The Sales universe below was created by merging two universes: Part 1 and Part
P O S T ED BY B O W OR L D ! ! ! AT 5 : 3 0 P M
0 COMMENTS:
POST A COMMENT
Joins
Equi Join: An equi-join links two tables on common values in a column in table 1 with a column in
table 2. The restriction conforms to the following syntax:
Table1.column_a = Table2.column_a
In a normalized database the columns used in an equi-join are usually the primary key from one
table and the foreign key in the other
Theta Join: A theta join is a join that links tables based on a relationship other than equality between
two columns. A theta join could use any operator other than the “equal” operator.
Outer Join: An outer join is a join that links two tables, one of which has rows that do not match
those in the common column of the other table. You define an outer join by specifying which table is
the outer table in the original equi-join. The outer table contains the column for which you want to
return all values, even if they are unmatched.
Shortcut join:A shortcut join is a join that provides an alternative path between two tables.
Shortcut joins improve the performance of a query by not taking into account intermediate tables,
and so shortening a normally longer join path.
Self restricting joins: A self restricting join is not really a join at all, but a self restriction on a single
table. You can use a self restricting join to restrict the results returned by a table values using a fixed
value.
Standard: The Standard Report Creation Wizard is the most generic of the wizards. It guides you
through choosing a data source and linking database tables. It also helps you add fields and specify
the grouping, summarization (totals), and sorting criteria you want to use. Finally, the Standard
Report Creation Wizard leads you through chart creation and record selection. The Templates screen
contains predefined layouts for you to apply to your report to give it more impact.
Cross-Tab: The Cross-Tab Report Creation Wizard guides you through the creation of a report in
which your data is displayed as a cross-tab object. Two special screens (Cross-Tab and Grid Style)
help you create and format the cross-tab itself.
Mailing Label: The Mailing Labels Report Creation Wizard lets you create a report that is formatted
to print on any size mailing label. You can use the Label screen to select a commercial label type, or
you can define your own layout of rows and columns for any multi-column style report.
OLAP: The OLAP Report Creation Wizard lets you create a report in which your OLAP data is
displayed as a grid object. Although similar to the Cross-Tab Report Creation Wizard in several ways,
the OLAP Report Creation Wizard appears to be different due to the requirements of working with
OLAP data sources. You first specify the location of your OLAP data, and then you choose the
dimensions you want to include in the grid. Next you filter the report data and choose the style of
the grid object, which you can also customize. Finally, you can define labels for your grid and insert a
chart, if you wish.