About alias tables

What is the use of alias table in physical layer what is the use of it
if i am not using alias tables so what is the impact???
i heard that alias table is use full for avoiding circular joins and self joins
can you make me little bit clear on it
Thanks
sreedhar

I dont know whether it will improve performance but aliases are basically used when you want to do self join .One good example is to calculate second maximum salary .In that case you will make aliases of one table twice.In obiee alaises are basically used when you want to join same table with same fact twice .For example one fact can join to time dimesnion twice with diffrent join condition .
In that case you need to create alias of original table .If you join the same table with fact twice then OBIEE will throw an error that circular joins are not allowed,This is an example of circular join.
Regards,
Sandeep

Similar Messages

  • Confuse about Alias table

    Hi,
    In the samplesale RPD, I saw a lot of alias tables and I check the mapping in physical layer, there is no mapping between source table of alias table and F, just have mapping between alias table and F, so what I want to know is what's the purpose of this kind of table? why alias it, why not use source table?
    Regards,
    anne

    Hi Anne,
    There will not be any physical join between the source dim and its alias.If you double click on an alias table in physical layer, you can see the source table from which this alias is created.The main purpose of an alias table is to avoid circular join.
    For Example: Assume you have a fact table with various date foreign keys like registration_date_fkey,resignation_date_fkey etc. In this case you ll have to join a date dimension's primary to these two foreign keys in the fact.You cannot use the same date dimension twice to achieve this, in this scenario create aliases for date dim ,name them as w_day_d_registration and w_day_d_resignation and join them to the respective foreign keys.
    Rgds,
    Dpka

  • Alias tabls does really improves the performence

    hi all gurus
    since long time i have one question in my mind about alias table
    if we use alias table in physical layer,does it really improves the performance ??
    so for i have used it for to avoid self joins,
    can u give me at least one scenario regarding alias table?
    Apart form that all are telling that one table is use full for more than one time that time we have to go for alias table
    is it true?
    let us take small example as sh schema ,in that we have two facts,cost and sales and dimension like product,countries,time
    here my question is to maintain start schema in physical layer we have to go for alias concept.
    if we give direct joins to the fact with dimensions,will it decrease the performance ?
    i don't under stand ,can any one clear about it?
    Thanks a lot in advance

    The Answers is No for the example you described about SH Schema.
    Aliasing tables, IMHO, doesn't contribute to performance gain/lag.
    Aliasing concept is used to implement some complicated scenarios, like the one you described i.e. self joins.
    Other examples would be a 1. circular join, 2. prevent clutter in physical layer, 3. set specific cache properties etc....are few i remember on top of my head.
    In a nutshell, think of it as a modelling technique to implement complexities.
    mark answers promptly.
    -bifacts
    http://www.obinotes.com
    J

  • Load and Unload Alias Table - Aggregate Storage

    Hi everyone,<BR><BR>Here I am again with another question about aggregate storage...<BR><BR>There is no "load" or "unload" alias table listed as a parameter for "alter database" in the syntax guidelines for aggregate storage (see <a target=_blank class=ftalternatingbarlinklarge href="http://dev.hyperion.com/techdocs/eas/eas_712/easdocs/techref/maxl/ddl/aso/altdb_as.htm">http://dev.hyperion.com/techdo...l/ddl/aso/altdb_as.htm</a> )<BR><BR><BR>Is this not a valid parameter for aggregate storage? If not, how do you load and unload alias tables if you're running a batch script in MaxL and you need the alias table update to be automated?<BR><BR>Thanks in advance for your help.<BR><BR>

    Hi anaguiu2, <BR><BR>I have the same problem now. Do you find a solution about the load and unload alias table - Aggregate storage ? Could you give me your solution used if you have one. <BR><BR>Thanks, Manon

  • Alias Table in SQL

    Hello ..
    i want to join an alias Table in an SQL statment something like
    Invoices_Table
    -Inv_ID
    -Amount
    -Delevery_Country_id
    -Bill_Country_id
    Country_Table
    -Country_id
    -Country_name
    I want to join Country_ID once for deleivery Country and then for Bill_Country. Which are not necessarly the same ..
    How can i express it in SQL ..?
    Thanx

    Try
    API> CREATE TABLE Invoices_Table
      2  (Inv_ID VARCHAR2(100),
      3  Amount VARCHAR2(100),
      4  Delevery_Country_id VARCHAR2(100),
      5  Bill_Country_id VARCHAR2(100));
    Tabla creada.
    Transcurrido: 00:00:00.34
    API>
    API> CREATE TABLE Country_Table(
      2  Country_id  VARCHAR2(100),
      3  Country_name VARCHAR2(100));
    Tabla creada.
    Transcurrido: 00:00:00.04
    API>
    API> INSERT INTO Invoices_Table VALUES('A','A','1','2');
    1 fila creada.
    Transcurrido: 00:00:00.04
    API> INSERT INTO Country_Table VALUES('1','Country1');
    1 fila creada.
    Transcurrido: 00:00:00.03
    API> INSERT INTO Country_Table VALUES('2','Country2');
    1 fila creada.
    Transcurrido: 00:00:00.03
    API> COMMIT;
    Validación terminada.
    Transcurrido: 00:00:00.03
    API> SELECT I.Inv_ID,
      2    C1.Country_name AS NAME1,
      3    C2.Country_name AS NAME1
      4  FROM Invoices_Table I, Country_Table C1, Country_Table C2
      5  WHERE I.Delevery_Country_id = C1.Country_id (+)
      6    AND I.Bill_Country_id = C2.Country_id (+);
    INV_ID
    NAME1
    NAME1
    A
    Country1
    Country2
    Transcurrido: 00:00:00.07

  • How to use non-default Alias Table in Analyzer report

    Hi,I defined many alias tables in Essbase. I would like to use a different alias table other than the "default" in Analyzer 6.5 report. In the on-line help, it said I can modify in "database connection properties" when first defining a new report to use a specific alias table. It tells me to do the following: Click the "New" toolbar button. Select a Display Type or Layout, and click OK. Right-click a database connection name in the "Select Database Connections" dialog box, and select Modify from the right-click menu.So I did this, but as I did the last-right click, there is no "Modify" option available. Only has "Add New..", "Database Connection Properties.." However, if I defined a new personal database connection using the login user, I can select to use other alias table. But this will go to personal database connection properties.Is it possible to specifically tell Analyzer to use other alias the global level in database connection? What I use to do is to have certain reports to use the default alias, and another to use another alias table. These reports should be able to share across all users.Sam

    In deed it is fix in the GA.Another way to set the alias table is to do it in the Admin client. If you add a connexion to a user there is a new 6.5 button "set alias" that allow you to set the default alias table for this specific user. But, it does not exit on a user group level.

  • SAP Query Alias Table in Info-set not working

    Hi Guys,
    I'm having a bit of trouble with a query I'm writing in SQ01.
    I am trying to create a standard margin report between two different costing variants that we use.
    n order to do so I have had to employ the use of alias tables.
    I have named the alias tables KEKO_2 and KEPH_2 accordingly and joined them in the info set with the same joins as the original tables (Left Outer to MARC on MATNR and WERKS)
    However, when I have come to test the query in SQ01 I get a runtime error which states the following:
    The following syntax error was found in the program
      AQA0MASTER_DATA=STANDARDMARGIN :
    "Field "KEPH_2-KST001" is unknown. It is neither in one of the specified
    tables nor defined by a "DATA" statement . . . . . . . . . ."
    But it is in a specified table! My alias table.
    How can I make this query work?
    Any help would be appreciated.
    Thanks in advance.

    Hi,
    This is SAP business one reporting and printing forum. Please find correct forum and repost your question to get quick assistance.
    Please close this thread by marking helpful answer.
    Thanks & Regards,
    Nagarajan

  • About Fact Tables and Image Tables

    Not sure, if this is correct forum for Oracle BI 10.x EE, but still
    I couldn't find another forum, quickly, hence posting here.
    Pardon me.
    Here is the main Q's
    I need little help.
    Our company is implementing Oracle BI 10.x. We don't have much experience in Siebel Analytics/OBI.
    We have few fact tables e.g. W_XXXX_F, which we need/wish to extend. We are not sure about which methodology we should implement. When we talked with few SA experts they mentioned we need to extend based on ROW_WID. Well, this column doesn't exists anymore in many fact tables, so currently we are thinking of creating ROW_WID on this F table manually and then create WC_XXXX_FX and take these two tables in physical layer of RPD.
    Additially, we need to create few Informatica mappings, again SA experts pointed out to use Image tables. Our data source is Oracle Applications, I don't have much idea about Image tables, but clearly there is not S_ETL_I_IMGAGe or so tables in Oracle Apps
    Please guide us as how to proceed on these two issues.
    Rajat

    Not sure, if this is correct forum for Oracle BI 10.x EE, but still
    I couldn't find another forum, quickly, hence posting here.
    Pardon me.
    Here is the main Q's
    I need little help.
    Our company is implementing Oracle BI 10.x. We don't have much experience in Siebel Analytics/OBI.
    We have few fact tables e.g. W_XXXX_F, which we need/wish to extend. We are not sure about which methodology we should implement. When we talked with few SA experts they mentioned we need to extend based on ROW_WID. Well, this column doesn't exists anymore in many fact tables, so currently we are thinking of creating ROW_WID on this F table manually and then create WC_XXXX_FX and take these two tables in physical layer of RPD.
    Additially, we need to create few Informatica mappings, again SA experts pointed out to use Image tables. Our data source is Oracle Applications, I don't have much idea about Image tables, but clearly there is not S_ETL_I_IMGAGe or so tables in Oracle Apps
    Please guide us as how to proceed on these two issues.
    Rajat

  • Confused about logical table source

    Hi,
    I'm confused about logical table source(LTS), there are 'General', 'Column Mapping', 'Content' tabs in
    LTS, in General tab ,there are some information,like 'Map to there tables' and 'joins',
    just here, we have created relationships in physical layer and BMM layer, so I would like to ask what's the use of the 'joins' here?

    Hi Alpha,
    Valid query, when you establish a complex join it is always between a logical fact and dimension table.Consider a scenario,
    Example:w_person_dx is an extension table not directly joined to a fact but joins to a dimension w_person_d.
    When you model the person_d tables in BMM, you ll have a single logical table with w_person_d as source.If you have to pull columns from both w_person_d and w_person_dx tables in a report, you add dx table as inner join to persond table in the general tab.Now when you check your physical query, you can see the inner join fired between the two dimensions.
    Rgds,
    Dpka

  • I NEED TO KNOW ABOUT DRIVING TABLE...PLEASE

    Well, My name is Adan. I am from Panama.. my english is not
    good. But I'll try. I need to know about driving tables and how
    have to choose a driving table and how optimizer proccess an sql
    statment.
    Example:
    Employees have (1,000,000 rows),
    dept have (100 rows)
    Category have (100 rows)...
    I need retrieved all employees with category and dept name for
    those employee with salary > 100000
    Well, What is the driving table and where i have to put this one
    in the from clause ? What about order in the where predicate...
    First ?
    Select E.name, C.category, D.Departement
    from Employees e, dept d, category c
    where
    and d.cat = c.cat
    and e.deptno = d.deptno
    and e.salary > 100000
    Last ?
    Select E.name,C.category, D.Departement
    from dept d, category c ,Employees e
    where
    and d.cat = c.cat
    and e.deptno = d.deptno
    and e.salary > 100000
    I apreciate your help....Thanks and sorry for my english....
    Bye..

    Adam,
    If you set your optimizer = choose and analyze the tables and
    indexes to generate statistics, then your system can use the
    Cost Based Optimizer (CBO) and, like David said, it will
    automatically choose the best access path, and the order of
    things will not matter.
    If your optimizer is not set to choose or if there are no
    statistics, then it will use the Rule Based Optimizer (RBO), in
    which case, the only thing that matters is the order of the
    tables in the from clause. When using RBO, the driving table
    should be at the end of the from clause, in the right-most
    position. The driving table is the one such that, after the
    restrictions have been applied, returns the smallest number of
    rows. You would have to compare the number of rows in the
    employees table where salary > 100000 to the number of rows in
    the dept table (100) and the number of rows in the category
    table (100).
    In RBO, if there are more than 100 rows in the employees table
    where salary > 100000, then your from clause would be:
    FROM employees e, dept d, category c
    In RBO, if there are less than 100 rows in the employees table
    where salary > 100000, then your from clause would be:
    FROM category c, dept d, employees e
    This is all that applies to the example you have given, however
    there are other things that can apply in other situations. For
    example, if there is an outer join to a table, the table that
    has the (+) cannot be used as the driving table.
    Barbara

  • Changing the LTS mapping in BMM layer  to new Physical Alias table

    Experts
    I need to change the source table mapping in my BMM layer to new physical tables aliases.
    I have finished BMM layer design (column name changes, business friendly names etc.) before actually creating the alias tables in the Physical layer and I know I hv to run for hiding now. I expected changing the logical source mapping to the new aliases will work but it's not the case though it works partially. Since the Column names are changed in the bmm, I have to manually change the Expression, Physical Table in the LTS column mapping tab for each non-matching name logical columns.
    Column mapping is intact where both the BMM columns and the new Physical alias names match.
    eg: CALENDER_YEAR(BMM) ---> CALENDAR_YEAR(Physical alias) mapping is intact but
    Week Day(BMM) ---> WEEK_DAY(Physical alias) need to be changed manually.
    Any tips/suggestions will be appreciated.
    Regards,
    Tom

    Hi Tom,
    I too do not see any other options here other than manually modifying the individual logical columns. When there is a new logical column, we have to map it manually to the physical column explicitly because the Admin tool will not know which physical column to pick up.
    Hope this helps.
    Thank you,
    Dhar

  • Alias table update errors

    Hi,
    I am trying to update an alias table using rules file. I am trying to update members of multiple dimensions in one single rules file. the column structure is as below:
    (Dim1, Lev 0) (Alias) (Dim2, Lev 0) (Alias) (Dim3, Lev 0) (Alias)
    But the above rules file is failing at column 3. It says "\\column 3 validation failure". Can you please help?
    Thanks!

    Hi,
    Have you read this post? Alias Update
    I know it was you that raised it but did it not answer the question?
    LEVEL0,Dim1 ALIAS0,Dim1 LEVEL0,Dim2 ALIAS0,Dim2 LEVEL0,Dim3 ALIAS0,Dim3
    should validate if each of the dimensions is set up as a level build type
    You can quickly test it by creating a file with say the following.
    dim1val,dim1alias,dim2val,dim2alias,dim3val,dim3alias
    Create a new load rule.
    Set it to dimension build.
    Open the text file
    Set the properties for each column as
    LEVEL0,Dim1 ALIAS0,Dim1 LEVEL0,Dim2 ALIAS0,Dim2 LEVEL0,Dim3 ALIAS0,Dim3
    set the dimension build properties for dim1,dim2,dim3 as level build type.
    validate
    Cheers
    John
    http://john-goodwin.blogspot.com/

  • How to copy a physical Alias table from one rpd to another

    Hi
    I am copy pasting the physical tables from one rpd to another. I first copied the physical table and then tried to copy the alias table i get the message ' Unknown Error' when i click ok it says
    'Failed to copy from clip board"

    Identify the "class=MyStyle" string in the MTML code, and use the Multi-File Find and Replace feature to step through each topic and change the specific instances to "class=MyOtherStyle." (I doubt that you'll want to "Replace All".)
    Sorry, there's no silver bullet!
    Good luck,
    Leon

  • Resolve self-reference table by alias tables in detail

    Hello Gurus,
            can you tell me how to resolve self-reference table by alias tables in detail?
    Many thanks.

    Hello, for the following step 3, I don't understand, will you please give me some explanation for step 3?
    Save your Staff universe, and test the results in Web Intelligence Rich Client as follows:
    1. Run a query using Manager and Employee. Add a count on both columns.
    2. Add a query with only the Manager object. Add a count. Is this the correct value?
    3. Open your Staff universe in Universe Designer and edit the Manager object. To ensure
    that the data is restricted to only manager data, use the Tables button. Select the
    EMPLOYEE table, to force the object to use the join between the table and restrict the
    data.
    4. Test the result, creating a new query with only the Manager object. It returns the correct
    number of managers.
    5. Edit the query and add Employee. Run and display the count. There are 26 rows. Why?
    The join restricts the data to look only for employees that have managers. However, there
    is a manager that does not have a manager, and is now excluded.
    6. Open your Staff universe in Universe Designer and add an outer join on the MANAGER
    table side.
    7. Save the changes and test the results in Web Intelligence Rich Client.

  • Need information about Internal Tables

    Hi Every one!
    I Need some information about Internal tables. Pls help be above the same.
    Thanks & with Regards,
    Chandra.

    Hi..,
    <b>
    Internal tables </b>
    Internal tables provide a means of taking data from a fixed structure and storing it in working memory in ABAP. The data is stored line by line in memory, and each line has the same structure. In ABAP, internal tables fulfill the function of arrays. Since they are dynamic data objects, they save the programmer the task of dynamic memory management in his or her programs. You should use internal tables whenever you want to process a dataset with a fixed structure within a program. A particularly important use for internal tables is for storing and formatting data from a database table within a program. They are also a good way of including very complicated data structures in an ABAP program.
    Like all elements in the ABAP type concept, internal tables can exist both as data types and as data objects A data type is the abstract description of an internal table, either in a program or centrally in the ABAP Dictionary, that you use to create a concrete data object. The data type is also an attribute of an existing data object.
    <b>Internal Tables as Data Types</b>
    Internal tables and structures are the two structured data types in ABAP. The data type of an internal table is fully specified by its line type, key, and table type.
    <b>Line type</b>
    The line type of an internal table can be any data type. The data type of an internal table is normally a structure. Each component of the structure is a column in the internal table. However, the line type may also be elementary or another internal table.
    <b>Key</b>
    The key identifies table rows. There are two kinds of key for internal tables - the standard key and a user-defined key. You can specify whether the key should be UNIQUE or NON-UNIQUE. Internal tables with a unique key cannot contain duplicate entries. The uniqueness depends on the table access method.
    If a table has a structured line type, its default key consists of all of its non-numerical columns that are not references or themselves internal tables. If a table has an elementary line type, the default key is the entire line. The default key of an internal table whose line type is an internal table, the default key is empty.
    The user-defined key can contain any columns of the internal table that are not references or themselves internal tables. Internal tables with a user-defined key are called key tables. When you define the key, the sequence of the key fields is significant. You should remember this, for example, if you intend to sort the table according to the key.
    <b>
    Table type</b>
    The table type determines how ABAP will access individual table entries. Internal tables can be divided into three types:
    <u>Standard tables</u> have an internal linear index. From a particular size upwards, the indexes of internal tables are administered as trees. In this case, the index administration overhead increases in logarithmic and not linear relation to the number of lines. The system can access records either by using the table index or the key. The response time for key access is proportional to the number of entries in the table. The key of a standard table is always non-unique. You cannot specify a unique key. This means that standard tables can always be filled very quickly, since the system does not have to check whether there are already existing entries.
    <u>
    Sorted tables</u> are always saved sorted by the key. They also have an internal index. The system can access records either by using the table index or the key. The response time for key access is logarithmically proportional to the number of table entries, since the system uses a binary search. The key of a sorted table can be either unique or non-unique. When you define the table, you must specify whether the key is to be unique or not. Standard tables and sorted tables are known generically as index tables.
    <u>
    Hashed tables</u> have no linear index. You can only access a hashed table using its key. The response time is independent of the number of table entries, and is constant, since the system access the table entries using a hash algorithm. The key of a hashed table must be unique. When you define the table, you must specify the key as UNIQUE.
    <b>
    Generic Internal Tables</b>
    Unlike other local data types in programs, you do not have to specify the data type of an internal table fully. Instead, you can specify a generic construction, that is, the key or key and line type of an internal table data type may remain unspecified. You can use generic internal tables to specify the types of field symbols and the interface parameters of procedures . You cannot use them to declare data objects.
    <b>Internal Tables as Dynamic Data Objects</b>
    Data objects that are defined either with the data type of an internal table, or directly as an internal table, are always fully defined in respect of their line type, key and access method. However, the number of lines is not fixed. Thus internal tables are dynamic data objects, since they can contain any number of lines of a particular type. The only restriction on the number of lines an internal table may contain are the limits of your system installation. The maximum memory that can be occupied by an internal table (including its internal administration) is 2 gigabytes. A more realistic figure is up to 500 megabytes. An additional restriction for hashed tables is that they may not contain more than 2 million entries. The line types of internal tables can be any ABAP data types - elementary, structured, or internal tables. The individual lines of an internal table are called table lines or table entries. Each component of a structured line is called a column in the internal table.
    <b>
    Choosing a Table Type</b>
    The table type (and particularly the access method) that you will use depends on how the typical internal table operations will be most frequently executed.
    <b>
    Standard tables</b>
    This is the most appropriate type if you are going to address the individual table entries using the index. Index access is the quickest possible access. You should fill a standard table by appending lines (ABAP APPEND statement), and read, modify and delete entries by specifying the index (INDEX option with the relevant ABAP command). The access time for a standard table increases in a linear relationship with the number of table entries. If you need key access, standard tables are particularly useful if you can fill and process the table in separate steps. For example, you could fill the table by appending entries, and then sort it. If you use the binary search option with key access, the response time is logarithmically proportional to the number of table entries.
    <b>Sorted tables</b>
    This is the most appropriate type if you need a table which is sorted as you fill it. You fill sorted tables using the INSERT statement. Entries are inserted according to the sort sequence defined through the table key. Any illegal entries are recognized as soon as you try to add them to the table. The response time for key access is logarithmically proportional to the number of table entries, since the system always uses a binary search. Sorted tables are particularly useful for partially sequential processing in a LOOP if you specify the beginning of the table key in the WHERE condition.
    <b>
    Hashed tables</b>
    This is the most appropriate type for any table where the main operation is key access. You cannot access a hashed table using its index. The response time for key access remains constant, regardless of the number of table entries. Like database tables, hashed tables always have a unique key. Hashed tables are useful if you want to construct and use an internal table which resembles a database table or for processing large amounts of data.
    regards,
    sai ramesh

Maybe you are looking for

  • Name-Of-This-Template Function?

    I have a template called, for example "pineapple.cfm". I want to use the file name of the template in the template text. So that I can write things like <CFIF Name(ThisTemplate) Is "pineapple.cfm">. But what is the correct syntax (instead of Name(Thi

  • Certification expired? @ HelloWorld-app.xml in tutorial pdf

    Hi, everyone. Im just a student passed by and interesting in Flex app (however i dont have a good fundamental about web ^^") I tries to follow the pdf file, devappsflex. Using Notepad++ as texteditor and FlexSDK in Vista sp1 64bit. HelloWorld.mxml is

  • WDA: Web Dynpro information

    hi,    can any one tell me how to develop web dynpro on abap workbench , let me know whether i can avail this on netweaver 04 sp09 basis release 640 , abap 640 or r/3 4.7 basis release- 620 , abap 620. when i run se80 i could not see the web dynpro o

  • Some questions about SF-300 switch

    Hi Does anybody can tell me why the CLI (via SSH) in SF-300 switch works slower than in old 2950 produced 10 years earlier? Why does sh running-config display the options applied to a single interface in different parts of screen - it is totaly unrea

  • Comment créer un formulaire off line pour Ipad ?

    Bonjour à tous, Voici ma question à 1 million... ou pas... Comment créer un formulaire offline pour Ipad, capable de garder les informations dans la boite mail et de les envoyer une fois la connexion internet établie ultérieurement? J'utilise la DPS