OBJECT TABLES in DATA WAREHOUSE

Can anyone give a high level response of the benefits as well as
drawbacks of using Nested object tables as a permanent means of
storage in an ORACLE data warehouse. In particular, is there a
performance enhancement/degradation, maintenance problems,
scalability etc in comparison to standard HEAP tables.
Most books that I have read suggest NOT to use object tables as
a permanent means of storage.
Thanks for any help that you can provide.

Hi Hakan,
it's not easy to give a quick answer here.
a) you want to compare warehouse tables with spatial tables
To answer this very well you should define what is a warehouse table and what is a spatial table. In this forum you will get for spatial tables the definition "A spatial table is a table with one or more columns of type SDO_GEOMETRY". How do you define a spatial table and how do you define a warehouse table?
b) you ask for performance
Performance is not depending only on table type. Performance is depending on a lot of steps. For example on the work which has to be done to answer the question, can data read from buffer cache or must they be read from physical devices, execution plan .....
I don't know if there is a official statement from Oracle which is usefull to answer your query.
Can you ask a little bit particular please?
In my experience there it is not adviseable to store tables in different databases (instances) when I have to query it together. If you split the tables in different instances, the execution has much more overhead because you have to talk to 2 instances and it will very hard for the optimizer to find the best execution plan.
Regards
U. Martin

Similar Messages

  • Best practice of metadata table in data warehouse environment ?

    Hi guru's,
    In datawarehouse, we have 1. Stage schema 2. DWH(Data warehouse reporting schema). In stageing we have about 300 source tables. In DWH schema, we are creating the tables which are only required from reporting prespective . some of the tables in stageing schema, have been created in DWH schema as well with different table name and column names. The naming convention for these same tables and columns in DWH schema is more based on business names.
    In order to keep track of these tables we are creating metadata table in DWH schema say for example
    Stage                DWH_schema
    Table_1             Table_A         
    Table_2             Table_b
    Table_3             Table_c
    Table_4              Table_DMy question is how do we handle the column names in each of these tables. The stage_1, stage_2 and stage_3 column names have been renamed in DWH_schema which are part of Table_A, Table_B, Table_c.
    As said earlier, we have about 300 tables in stage and may be around 200 tables in DWH schema. Lot of the column names have been renamed in DWH schema from stage tables. In some of the tables we have 200 column's
    so my concern is how do we handle the column names in metadata table ? Do we need to keep only table names in metadata table not column names ?
    Any idea will be greatly appriciated.
    Thanks!

    hi
    seems quite a buzzing question.
    In our project we designed a hub and spoke like architecture.
    Thus we have 3 layer, L0 is the one closest to the source and L0 table's name are linked to the corresponding sources names by mean of naming standard (like tabA EXT_tabA tabA_OK1 so on based on implementation of load procedures).
    At L1 we have the ODS , normalized model , we use business names for table there and standard names for temporary structures and artifacts
    Both L0 an L1 keep source's column names as general rule, new columns like calculated one are business driven and metadata are standard driven.
    Datamodeler fits perfect for modelling L1 purpose.
    L2 is the dimensional schema business names take place for tables and columns eventually rewritten at presentation layer ( front end tool )
    hope this helps D.

  • Spatial tables in Data warehouse database or separate?

    Hi all,
    I have a question from a customer who's asking what the recommendation is of storage of the spatial tables and the warehouse tables.
    Should they reside on the same database for best performance or doesn't it matter where the spatial tables are located.
    Is there any official recommednation from Oracle on this?
    Best regards,
    Hakan

    Hi Hakan,
    it's not easy to give a quick answer here.
    a) you want to compare warehouse tables with spatial tables
    To answer this very well you should define what is a warehouse table and what is a spatial table. In this forum you will get for spatial tables the definition "A spatial table is a table with one or more columns of type SDO_GEOMETRY". How do you define a spatial table and how do you define a warehouse table?
    b) you ask for performance
    Performance is not depending only on table type. Performance is depending on a lot of steps. For example on the work which has to be done to answer the question, can data read from buffer cache or must they be read from physical devices, execution plan .....
    I don't know if there is a official statement from Oracle which is usefull to answer your query.
    Can you ask a little bit particular please?
    In my experience there it is not adviseable to store tables in different databases (instances) when I have to query it together. If you split the tables in different instances, the execution has much more overhead because you have to talk to 2 instances and it will very hard for the optimizer to find the best execution plan.
    Regards
    U. Martin

  • Update data automatically in fact table in Data Warehouse

    Hi,
    I'm working on the creation of a data warehouse that include different data source like SQL Server performance (more than one), Active Directory users, Server performance (more than one), Exchange server mailboxes. The problem is that performance data change
    frequently (like CPU and Memory), so my question is how to update data in fact table every 5 seconds automatically with SSIS.
    Thank you for any advice  

    I'm assuming you have already figured out how to capture the data e.g. Powershell, extended events, MDW etc. and just need to know what dimensions or fact tables do you need.
    You need to decide how often you are going to capture this data and based on that you will have dimensions with appropriate grain. Don't try to cram everything in the same fact table if it not of the same granularity. Also, separate process usually
    have separate fact tables.
    In addition to the Date dimension, you will need a Time dimension with a grain of 1 second (or maybe 5 seconds if that is when you get your data) then run the SSIS every 5 seconds to capture and append that data in the fact table.
    - Aalamjeet Rangi | (Blog)

  • Foreign keys in SCD2 dimensions and fact tables in data warehouse

    Hello.
    I have datawarehouse in snowflake schema. All dimensions are SCD2, the columns are like that:
    ID (PK) SID NAME ... START_DATE END_DATE IS_ACTUAL
    1 1 XXX 01.01.2000 01.01.2002 0
    2 1 YYX 02.01.2002 01.01.2004 1
    3 2 SYX 02.01.2002 1
    4 3 AYX 02.01.2002 01.01.2004 0
    5 3 YYZ 02.01.2004 1
    On this table there are relations from other dimension and fact table.
    Need I create foreign keys for relation?
    And if I do, on what columns? SID (serial ID) is not unique. If I create on ID, I have to get SID and actual row in any query.

    >
    I have datawarehouse in snowflake schema. All dimensions are SCD2, the columns are like that:
    ID (PK) SID NAME ... START_DATE END_DATE IS_ACTUAL
    1 1 XXX 01.01.2000 01.01.2002 0
    2 1 YYX 02.01.2002 01.01.2004 1
    3 2 SYX 02.01.2002 1
    4 3 AYX 02.01.2002 01.01.2004 0
    5 3 YYZ 02.01.2004 1
    On this table there are relations from other dimension and fact table.
    Need I create foreign keys for relation?
    >
    Are you still designing your system? Why did you choose NOT to use a Star schema? Star schema's are simpler and have some performance benefits over snowflakes. Although there may be some data redundancy that is usually not an issue for data warehouse systems since any DML is usually well-managed and normalization is often sacrificed for better performance.
    Only YOU can determine what foreign keys you need. Generally you will create foreign keys between any child table and its parent table and those need to be created on a primary key or unique key value.
    >
    And if I do, on what columns? SID (serial ID) is not unique. If I create on ID, I have to get SID and actual row in any query.
    >
    I have no idea what that means. There isn't any way to tell from just the DDL for one dimension table that you provided.
    It is not clear if you are saying that your fact table will have a direct relationship to the star-flake dimension tables or only link to them through the top-level dimensions.
    Some types of snowflakes do nothing more than normalize a dimension table to eliminate redundancy. For those types the dimension table is, in a sense, a 'mini' fact table and the other normalized tables become its children. The fact table only has a relation to the main dimension table; any data needed from the dimensions 'child' tables is obtained by joining them to their 'parent'.
    Other snowflake types have the main fact table having relations to one or more of the dimensions 'child' tables. That complicates the maintenance of the fact table since any change to the dimension 'child' table impacts the fact table also. It is not recommended to use that type of snowflake.
    See the 'Snowflake Schemas' section of the Data Warehousing Guide
    http://docs.oracle.com/cd/B28359_01/server.111/b28313/schemas.htm
    >
    Snowflake Schemas
    The snowflake schema is a more complex data warehouse model than a star schema, and is a type of star schema. It is called a snowflake schema because the diagram of the schema resembles a snowflake.
    Snowflake schemas normalize dimensions to eliminate redundancy. That is, the dimension data has been grouped into multiple tables instead of one large table. For example, a product dimension table in a star schema might be normalized into a products table, a product_category table, and a product_manufacturer table in a snowflake schema. While this saves space, it increases the number of dimension tables and requires more foreign key joins. The result is more complex queries and reduced query performance. Figure 19-3 presents a graphical representation of a snowflake schema.

  • Designing metadataLogging table for data warehouse

    Hi:
    I am in the process of creating metadataLogging tables for dw.
    I have thought 5 tables to track errors and check etl execution.
    Master table for all major jobs. Enviournment - oracle 9i. Dw size not more than 30 mb. to start with.
    CREATE TABLE ADMIN_JOB_MASTER_TBL
    JOBNUMBER NUMBER,
    JOBNAME VARCHAR2(768 BYTE),
    MINTHRESHRECORDS NUMBER,
    MAXTHRESHRECORDS NUMBER,
    MINTHRESHTIME VARCHAR2(64 BYTE),
    MAXTHRESHTIME VARCHAR2(64 BYTE),
    CREATEDATE DATE
    Audit Table for auditing jobs.
    CREATE TABLE ADMIN_AUDIT_JOBS_TBL
    JOBNUMBER NUMBER,
    JOBNAME VARCHAR2(768 BYTE),
    STARTDATE DATE,
    ENDDATE DATE,
    NUMBERRECORDS NUMBER,
    FAIL_OR_SUCCESS VARCHAR2(64 BYTE)
    Step Master: for jobs involving various steps, logic such as branching, loop, flow etc. breaking the job_master to a lower level for a more insight.
    audit_step
    CREATE TABLE ADMIN_AUDIT_STEP_TBL
    RECORDID VARCHAR2(256 BYTE),
    JOBAUDITID VARCHAR2(256 BYTE),
    STEPNUMBER NUMBER,
    PARAMETERS VARCHAR2(512 BYTE),
    NUMBERRECORDS NUMBER,
    STARTDATE DATE,
    ENDDATE DATE,
    USERNAME VARCHAR2(256 BYTE)
    Error_table: to track error during execution.
    CREATE TABLE ERROR_TBL
    ERROR_NO NUMBER,
    TABLE_NAME VARCHAR2(124 BYTE),
    ERR_NUM NUMBER,
    ERR_MSG VARCHAR2(124 BYTE),
    ERROR_TIME DATE
    I am thinking to load the master tables manually with expected values.
    And during each run, loading the auditing tables.
    Error table would ofcourse be loaded during the run.
    So everytime a threshold has changed, I would have to update master table manually. I dont mind doing that initially.
    Would the following tables and the stated appraoch be good for etl.
    Please guys, let me know your thoughts. Suggest changes or tables or approach, if you feel, that its wrong.
    Thanks in advance. All inputs are highly appreciated !!!
    Regards
    Som

    Hi,
    What better than Oracle suggests...is there ????
    Have you read Oracle doc titled...
    "Data Warehousing Guide" and the "Handling Data Errors with an Error Logging Table " section for example...
    Regards,
    Simon

  • Data Access Object for Data Warehouse?

    Hi,
    Does anyone know how the DAO pattern looks like when it is used for a data warehouse rather than a normal transactional database?
    Normally we have something like CustomerDAO or ProductDAO in the DAO pattern, but for data warehouse applications, JOINs are used and multiple tables are queried, for example, a query may contains data from the Customer, Product and Time table, what should the DAO class be named? CustomerProductTimeDAO?? Any difference in other parts of the pattern?
    Thanks in advance.
    SK

    In my opinion, there are no differences in the Data Access Object design pattern which have any thing to do with any characteristic of its implementation or the storage format of the data the pattern is designed to function with.
    The core pupose of the DAO design pattern is to encapsulate data access code and separate it from the business logic code of the application. A DAO implementation might vary from application to application. The design pattern does not specify any implementation details. A DAO implementation can be applied to group of XML data files, an Excel-based CSV file, a relational database, or an OS file system. The design is the same for all these, it is the implementation that varies.
    The core difference between an operational database and a strategic data warehouse is the purpose of why and how the data is used. It is not so much a technical difference. The relational design may vary however, there may be more tables amd ternary relationships in a data warehouse to support more fine-tuned queries; there may be less tables in a operational database to support insert/add efficiencies.
    The DAO implementation for a data warehouse would be based on the model of the databases. However the tables are set up, that is how the DAO is coded.

  • "Create Data Warehouse Tables"  doesn't create any tables ?

    We are attempting to install and configure OBIA 7.9.6 for Peoplesoft 8.9. The steps to install and configure Informtica and DAC and their respective repositories are completed. However, Step 4.12 to Create Data Warehouse Tables on Oracle database, although apparently successful (returns no error) does not create any tables or other objects in the datawarehouse schema. Apparently, "oracle_bi_dw.ctl" is being generated with NO DDL definitions only a two line header to the effect
    [DDL File]
    Version = 1Has anyone encountered a similar issue and resolved it ? (We have an SR open with Oracle Support).
    NOTE : ddlimp does connect succesfully to the database -- I created a Database ON LOGON trigger to catch and trace logons by the datawarehouse schema.
    Hemant K Chitale
    Edited by: Hemant K Chitale on Nov 20, 2009 11:54 AM

    Closing this thread.
    A Reinstall worked.

  • How to insert subtype data from another table in  a object table ?

    Hi all
    I have been looking at the differences answers there are about insert data form a subtype in a object table of a supertype ,but have not found a solution yet.
    I hope you can help me.
    I my code Action_Logs is the object table and CloseStore_Logs_t is a subtype of Action_Logs_t
    My code is
    insert into Action_Logs(CloseStore_Logs_t (action_logs_id , physicalstores.physicalstores_id , brandedstores.BRANDEDSTORES_ID ,physicalstores.COMPANIES_ID ,brandedstores.CREATED_BY ,
    brandedstores.CREATED_DATE , brandedstores.DELETED ,brandedstores.CLOSED_DATE as brandedstore_closedate,
    physicalstores.CLOSED_DATE as physicalstore_closedate)
    select CloseStore_Logs_t((null as action_logs_id , physicalstores.physicalstores_id , brandedstores.BRANDEDSTORES_ID ,physicalstores.COMPANIES_ID ,brandedstores.CREATED_BY ,
    brandedstores.CREATED_DATE , brandedstores.DELETED ,brandedstores.CLOSED_DATE as brandedstore_closedate,
    physicalstores.CLOSED_DATE as physicalstore_closedate)
    from physicalstores , brandedstores ,companies
    where physicalstores.physicalstores_id = brandedStores.PHYSICALSTORES_ID and
    physicalstores.COMPANIES_ID = companies.COMPANIES_ID and
    brandedstores.closed_date is not null
    oracle gives a ora _917 fault about a missing comma , but I can not se what is wrong.
    I will be glad, if you can give me an example with a right syntax where a subtype is selected from other/s tables an inserted in table of its supertype.
    kinds regards
    steen ostersen

    Hi
    I see two problems with your statement:
    1) The utilization of the values clause is not permitted along with a subquery.
    2) The AS are not allowed.
    So, something like that should work:
    insert into Action_Logs
    select CloseStore_Logs_t(null,
    physicalstores.physicalstores_id,
    brandedstores.BRANDEDSTORES_ID,
    physicalstores.COMPANIES_ID,
    brandedstores.CREATED_BY,
    brandedstores.CREATED_DATE,
    brandedstores.DELETED,
    brandedstores.CLOSED_DATE,
    physicalstores.CLOSED_DATE)
    from physicalstores , brandedstores ,companies
    where physicalstores.physicalstores_id = brandedStores.PHYSICALSTORES_ID and
    physicalstores.COMPANIES_ID = companies.COMPANIES_ID and
    brandedstores.closed_date is not null
    HTH
    Chris

  • Error while creating data warehouse tables.

    Hi,
    I am getting an error while creating data warehouse tables.
    I am using OBIA 7.9.5.
    The contents of the generate_clt log are as below.
    >>>>>>>>>>>>>>>>>>>>>>>>>>
    Schema will be created from the following containers:
    Oracle 11.5.10
    Universal
    Conflict(s) between containers:
    Table Name : W_BOM_ITEM_FS
    Column Name: INTEGRATION_ID.
    The column properties that are different :[keyTypeCode]
    Success!
    <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
    There are two rows in the DAC repository schema for the column and the table.
    The w_etl_table_col.KEY_TYPE_CD value for DW application is UNKNOWN and for the ORA_11i application it is NULL.
    Could this be the cause of the issue? If yes, why could the values be different and how to resolve this?
    If not, then what could be the problem?
    Any responses will be appreciated.
    Thanks and regards,
    Manoj.

    Strange. The OBIA 7.9.5 Installation and Configuration Guide says the following:
    4.3.4.3 Create ODBC Database Connections
    Note: You must use the Oracle Merant ODBC driver to create the ODBC connections. The Oracle Merant ODBC driver is installed by the Oracle Business Intelligence Applications installer. Therefore, you will need to create the ODBC connections after you have run the Oracle Business Intelligence Applications installer and have installed the DAC Client.
    Several other users are getting the same message creating DW tables.

  • Strategy in Data Warehouse Table Structure

    I'm building a relational data warehouse, and there are two approaches that seem almost interchangeable to me, despite being quite different from each other. 
    The first approach is rather simple.  I have a "User" table with a bunch of foreign keys, and then I have a bunch of other tables containing user attributes.  One table for "department," another for "payroll type,"
    another for "primary location," and so on for 20 different user attributes.
    The second approach, instead of using 20+ tables, combines this down into far fewer.  I would have an "Attribute Type" table and "Attribute" table.  These two, in conjunction with a bridge table, could accommodate as many
    attributes as necessary within three tables.  If the business wants to track a new "user-related" attribute, I don't need any new tables.  I would simply add the new attribute into the "Attribute Type" table as, say, "attribute
    21," and begin tracking it.  All the work could be done without ever adding new tables or columns.
    Both approaches seem to maintain (at least) 3NF.  Is one approach better in certain circumstances, and the other approach more appropriate at other times?  Any insight is appreciated!
    BrainE

    Hi Brian,
    The second approach with three tables is not really good here. Query Optimizer in SQL Server has a few enhancements for Star/Snowflake schemas in DW environment and 3-table schema would not be able to benefit from them. It would be also harder to maintain,
    load data and query. Finally, your attributes could have different data types, which you need to store. 
    I would suggest to go with first solution (multiple dimensions table) and follow a few extra rules:
    Avoid nullable attributes
    Choose attribute data types as narrow as possible
    Avoid string attributes. If needed create separate dimension tables for them
    Use columnstore indexes and
    Upgrade to SQL Server 2014 if it is all possible - there are multiple enhancementsin batch-mode processing there
    Thank you!
    Dmitri V. Korotkevitch (MVP, MCM, MCPD)
    My blog: http://aboutsqlserver.com

  • Table and Index compression in data warehouse - thoughts?

    Hi,
    We have a data warehouse with large fact tables and materialized views of this data.
    Approx 3 million inserts per day week-ends about 12 million.
    The fact tables we have expected to have 200 million, and couple with 1-3 billion.
    Tables partitioned and have bitmap indexes.
    Just wondered what thoughts were about compressing large fact tables and mviews both from point of view of ETL into them and reporting from them afterwards.
    I take it, can compress/uncompress accordingly without any problem?
    Many Thanks

    After compression, most SELECT statements would not get slower. Actually, many can get faster due to reduced IO and buffer needs.
    The situation with DMLs is more complex. It depends on the exact compression options (basic or advanced) and the DML (INSERT,UPDATE, direct load,..),but generally DML are negatively affected by compression.
    In a Data Warehouses (DWs), it is usually quite beneficial to compress partitions or tables that contain data that is not supposed to be modified (read only or read mostly). Please note that in many cases you do not have to compress while you are loading the data – you can do that later.
    You can also consider compressing some of your B-tree indexes (if you use them in your DW system).
    Iordan Iotzov
    http://iiotzov.wordpress.com/

  • Help ! Cannot retrieve Object table data from Oracle 8i

    Dear All,
    Created the object and object table in SQL*Plus. If query from SQL*Plus, return rows selected.
    But if query from SQL*Plus worksheet and ODBC Test program, return "0 rows selected".
    Similary, if created the object and object table in SQL*Plus worksheet and query from SQL*Plus worksheet, return rows selected.
    But if query from SQL*Plus or ODBC Test program, return "0 rows selected".
    Appreciate advice from anyone. Thanks in advance.
    Oracle version. 8i Enterprise Edition Release 2
    Scrip to create object and insert record:
    CREATE TYPE stockitem_objtyp AS OBJECT (
    STOCKNO NUMBER,
    PRICE NUMBER,
    TAXRATE NUMBER
    CREATE TABLE stock_objtab of stockitem_objtyp (stockno primary key) object id primary key;
    INSERT INTO Stock_objtab VALUES (1, 1000, 3);
    select * from stock_objtab;
    null

    First, I suspect that this question probably belongs on the ODBC forum, since it doesn't appear to be at all related to the JVM.
    That said, I don't seem to have any problem retrieving the data, either through ODBC or SQL*Plus. If you post your question to the ODBC forum, perhaps some other folks will be able to try this and we can narrow down the problem.
    Justin Cave
    ODBC Development

  • Inserting data into relational views of object tables

    I hope someone could help me to solve the following problem:
    I would like to design an object-relational database in O8i. Unfortunatly the client-software (GIS) can only understand relational data (except the object type 'geometry'). So I created relational views on my object tables. But now it is not possible to insert data in those views. Do I have to create triggers on those views for inserting data ???
    Nevertheless: Updating data in views makes no problems.
    Thank you for reading this and I look foreward to hearing from you soon.
    Christian Heil

    Hi Mohammed,
    I guess following is your requirement
    List1 tile is attached to "BOList1". On button press you wanted the data to be persisted to Business object "BOList1History"
    I assume that you have created "BOLIst1History" properly by associating a write Bdoc etc etc.
    Write a method in Business object "BOList" called ZUpdateHistory. This new method should contain code for creating an instance of "BOLIST1History" and fill the property values as per your requirement. Call this method from the Button press event as follows
    anchor.bo.ZUpdateHistory
    Hope this helps
    Regards
    Ganesh Datta

  • Tables between OBAW and Oracle Data Warehouse in OBIA rpd are different

    Hi,
    The tables in the Data Warehouse DB is different as compared to the tables in the physical layer of the Oracle data Warehouse in OracleBIAnalytiscApps.rpd.
    When I click update Row Count, it gives me below error message:
    There was an error while updating row count for "Oracle Data Warehouse"."Catalog"."DBO"."W_CTRY_REGN_D":
    [nQSError :17001] Oracle Error Code: 942, message: ORA-00942:Table or view does not exist at OCICallSTmTEXECUTE
    Whereas when I click on some other tables for Row count there is not error.
    Also, When I am trying to look for some specific table which exist in Data Warehouse (that has the data), it does not exist in the rpd.
    Kindly assit me.

    hi,
    Have a look
    Not able toView Data in Answers
    Let me know
    thanks,
    saichand.v

Maybe you are looking for

  • How do you know if the wireless keyboard is turned on or off?

    When I press the power button on the wireless keyboard (A1314) the tiny light lights up and then goes out. When I press the power key again the tiny light lights up and then goes out. How can I tell which is which? When is the keyboard on and when is

  • Small CF card reader that works with the iPad Camera Kit?

    I'm looking for a small (not much bigger than a CF card) CF Card reader that works with the iPad Camera kit (USB piece) - Anyone know of one? All the ones I see people suggesting are big and bulky (made for a desktop). I know there are many smaller o

  • IBook R.I.P.

    Well, it's done. The MacBook is here. Makes me feel good to know that I own the last in the line of that great classic - the 'iBook'. Phil

  • Help in User Exit MV45AFZB

    Hi, We have a User Exit for SO, MV45AFZB. We want to insert a condition in it that when we change the plant, new pricing should be carried out.. Please let me know where i should check the condition, in Form  USEREXIT_CHECK_VBAP or Form  USEREXIT_NEW

  • Keynote playing on iPad

    When I transfer my keynote file to my iPad it does not play back properly.  Some of the photos and background images are not showing up in playback mode but they are there on the thumbnails of the slide.