Data Warehouse Oracle Database design approach

Our Project has a huge Fact (F1) with 38 GB data (75 Millions records)
associated with three other dimensions
D1 (with 7 million records)
D2 (with 0.5 million records)
D3 (with o.3 M records
On these dimensions, we have few discrete valued attributes on which analysis are done (like Status, Type, Type Group, Flags)
We also have Complete refresh Materialized view on this fact table aggregate on this attributes.
We have two design options... not able to determine which would be more sufficient. Due to huge volume, do not have space to simulate the same
Option 1)
Break these dimensions into mini- dimension (demographic dimension), which hold these discrete valued attributes
number of records on these mini-dimension
D1 -mini-dimension: approx 500 records
D2 -mini-dimension: approx 3000 records
D3 -mini-dimension: approx 3000 records
Link these mini-dimension directly to the FACT tables with its integer surrogate key.
Have bitmap index join between these mini-dimensions & fact
Option 2)
Migrate all these varchar fields (attributes) from dimensions and stamp them on all the fact records.
Bitmap index on each fields on the fact tables
Which of the two options is efficient on ETL and most importantly on reports?
Some points
Option 2 will increase the avg row length of the Fact table and hence the increase in the size of the fact
Would impact ETL Upsert process (about 2 million recordS upsert DML) ... vARCHAR UPDATES SLOWER COMPARED TO INTEGER
MV build using varchar fields will take longer compared to Integer (Surrogate key) Group by columns
Debate is on the report performance
Option 2 will avoid additional joins on the mini-dimension. So, someone of us think Option 2 will more efficient
Few of us have an opinion that with higher avg row length and huge volume with these additional varchar fields, I/O cost would increase.
But the same time, because we do not have chained rows on the fact table, they should not be much performance degradation (rather no degradation)
could someone help solve the debate?
Edited by: [email protected] on Dec 9, 2009 9:35 PM

Do you help solve the debate?What do the results of your actual benchmark test show?

Similar Messages

  • How to extract data from oracle database directly in to bi7.0 (net weaver)

    how to extract data from oracle database directly in to bi7.0 (net weaver)? is it something do with EDI? can anybody explain me in detail?
    Thanks
    York

    You can use UDConnect to get from Oracle database in to BW
    <b>Data Transfer with UD Connect -</b>
    http://help.sap.com/saphelp_nw04/helpdata/en/78/ef1441a509064abee6ffd6f38278fd/content.htm
    <b>Prerequisites</b>
    You have installed the SAP WAS J2EE Engine with BI Java components.  You can find more information on this in the SAP BW installation guide on the SAP Service Marketplace at service.sap.com/instguides.
    Hope it Helps
    Chetan
    @CP..

  • How to create a Macro in excel to store the excel data to Oracle Database

    Hi All
    Does anyone has created a macro in excel which on being run stores the excel data to Oracle database. In my project I need to create one such macro for updating oracle database with excel data and another for inserting excel records.
    I tried doing this using a macro in MS access but Client wants its to be done using Excel Macro only.
    Any help would be highly appreciated.
    Thanks in advance..
    Shikha

    Please read Chapter 19.7 Creating Selection Lists (http://download.oracle.com/docs/html/B25947_01/web_complex007.htm#CEGFJFED) of the Oracle® Application Development Framework Developer's Guide For Forms/4GL Developers 10g Release 3 (10.1.3.0)
    Cheers,
    Mick.

  • How to I convert data from oracle database into excel sheet

    how to I convert data from oracle database into excel sheet.
    I need to import columns and there datas from oracle database to microsoft excel sheet.
    Please let me know the different ways for doing this.
    Thanks.

    asktom.oracle.com has an excellent article on writing a PL/SQL procedure that dumps data to an Excel spreadsheet-- search for 'Excel' and it'll come up.
    You can also use your favorite connection protocol (ODBC, OLE DB, etc) to connect from Excel to Oracle and pull the data out that way.
    Justin

  • How to send a mail automatically based on a date from ORACLE database

    Hi,
    I want to send a mail automatically based on a date from ORACLE database.
    Please help me.
    thanks
    --Sara                                                                                                                                                                                                                                   

    programs are available on net to send mail directly from oracle ie procedure s in oracle sending mails

  • Regarding loading of excel data  into oracle database

    hello,
    Can someone help me in knowing that how can we load excel sheets data into oracle database.
    I will be really thankful to you.
    Gursimran

    Hi,
    There is tool given by oracle "Oracle Bulk Loader "
    you can use this.
    But in order use this you need a control file, which specifies how data should be loaded into the database; and a data file, which specifies what data should be loaded.
    Example :- this is the control file which has information how the data is processed.
    LOAD DATA
    INFILE test.dat
    INTO TABLE test
    FIELDS TERMINATED BY '|'
    (i, s)
    Example :- test.dat which is the data file or say your excel sheet or document
    (1, 'foo')
    (2, 'bar')
    (3, ' baz')
    example of Loading :-
    sqlldr <yourName> control=<ctlFile> log=<logFile> bad=<badFile>
    sqlldr testing control=test.ctl log=test.log
    Thanks
    Pavan Kumar N

  • Walkthrough: Displaying Data from Oracle database in a Windows application.

    This article is intended to illustrate one of the most common business scenarios such as displaying data from Oracle database on a form in a Windows application using DataSet objects and .NET Framework Data Provider for Oracle.
    You can read more at http://www.c-sharpcorner.com/UploadFile/john_charles/WalkthroughDisplayingDataOracleWindowsapplication05242007142059PM/WalkthroughDisplayingDataOracleWindowsapplication.aspx
    Enjoy my article.

    hi,
    this is the code :
    public class TableBean {
    Connection con ;
    Statement ps;
    ResultSet rs;
    private List perInfoAll = new ArrayList();
    public List getperInfoAll() {
    int i = 0;
    try
    con = DriverManager.getConnection("url","root","root");
    ps = con.createStatement();
    rs = ps.executeQuery("select * from user");
    while(rs.next()){
    System.out.println(rs.getString(1));
    perInfoAll.add(i,new perInfo(rs.getString(1),rs.getString(2),rs.getString(3)));
    i++;
    catch (Exception e)
    System.out.println("Error Data : " + e.getMessage());
    return perInfoAll;
    public class perInfo {
    String uname;
    String firstName;
    String lastName;
    public perInfo(String firstName,String lastName,String uname) {
    this.uname = uname;
    this.firstName = firstName;
    this.lastName = lastName;
    public String getUname() {
    return uname;
    public String getFirstName() {
    return firstName;
    public String getLastName() {
    return lastName;
    ADF table code:
    <af:table value="#{tableBean.perInfoAll}" var="row"
    binding="#{backing_Display.table1}" id="table1">
    <af:column sortable="false" headerText=""
    align="start">
    <af:outputText value="#{row.firstName"/>//---> Jdeveloper 11g doesn't allow me to use this.. it says firstName is an unknown property..
    </af:column>
    </af:table>
    Please tell me is this the way to do it.. or is it a must to use the DataCollection from the data controls panel...
    Thanks...

  • To fetch data from Oracle Database

    Hi Gents,
    Any alternative option other than SQL to fetch data from Oracle DAtabase. ( My manager worked on Mainframes he is telling other than SQL there should be some options.. Gents pls guide if any options.......
    REgards
    Fento

    >
    Any alternative option other than SQL to fetch data from Oracle DAtabase. ( My manager worked on Mainframes he is telling other than SQL there should be some options.. Gents pls guide if any options.......
    >
    There is no other (supported) way to get data from Oracle Databases as SQL. No matter what third-party tool you use to access Oracle Databases, they all will use (embedded) SQL.
    In very rare cases, one must use tools to read from datafiles directly because the database got damaged and a proper recovery is impossible. That is an emergency solution and by no means a replacement for SQL access.
    In short: No :-)
    Kind regards
    Uwe
    http://uhesse.wordpress.com

  • FETCH DATA FROM ORACLE DATABASE USING Web Dynpro

    I want to fetch data from ORACLE database using Web Dynpro.How can I do this?

    1) Are you sure that you get no results? It sounds like you are having name resolution issues, which would imply that you should be getting an ORA-00942 error indicating that the table doesn't exist (or that you don't have access to the table). If you are not seeing this error, I would tend to suspect an overzealous exception handler.
    2) What database account owns the table? What database account is your ASP.Net application using to connect? Assuming these two accounts are different, your application would either have to
    - Explicitly prefix the table name with the schema name
    - Have a public or private synonym that maps the table name to the fully qualified identifier schema_name.table_name
    - Issue the command ALTER SESSION SET CURRENT_SCHEMA = <<schema name>> in each session, in which case all queries in the session would use the specified schema name as the default if no schema name is prefixed.
    Justin

  • How to load text file data to Oracle Database table?

    By using Oracle Forms, how to load text file data to Oracle Database table?

    Metalink note 33247.1 explains how to use text_io as suggested by Robin to read the file into a Multi-Row block. However, that article was written for forms 4.5 and uses CREATE_RECORD in a loop. There was another article, 91513.1 describing the more elegant method of 'querying' the file into the block by transactional triggers. Unfortunately this more recent article has disappeared without trace and Oracle deny its existence. I know it existed as I have a printed copy in front of me, and very useful it is too.

  • Want to see on screen data from oracle database using php

    I am struggling on the problem of echoing data from Oracle database (9i) to the screen for viewing. For ex. the data has records from various cities. when a particular city is inputted as prompt, all the records for the that city from the table should appear through PHP. Can someone help me?

    Thank you very much for giving the link. I tried and it is working. Only, I am still struggling with trying to get many fields from the database on the screen for viewing. Ex. a prompt to ask which country and which month. If I give India and December it must give all the data pertaining to India for December. This AJAX was very useful, as it gave lot of tips, but my basic query to see the data thru PHP from my database is still unsolved. Any help??
    Jacob
    Thanks once again for the help.

  • Oracle database design

    Hi,
    I am designing a database and want to design it based on 3NF. I have a table and few columns that are not a one to many relation ship. Can I design it in such a way those columns that are not a child to be in few seperate tables, with one to one relationship? Example: My main table is a program table, and I hvae few columns that are Analysis DEsc, Analysis Date and Analysis BY. I want to keep those columns in a seperate table. Please let me know how to design this?
    Thanks for your time and help.

    >
    LOBs are always stored at separate locations outside the table structure. The table itself holds just a reference (filepointer?) to this location.
    >
    Always? No - that is not correct.
    The default storage for LOBs is inline. Only LOBs larger than ~4000 bytes are stored out-of-line unless you specify a storage clause.
    Each lob locator is about 80+ bytes and 80 bytes can be a substantial percentage of the average row length. For rows of length 400 with a lob locator you can only store fewer than 20 rows in an 8k block. Assuming you could actually store 20 rows per block then without the locator the length is 320 (20% less) so for every 5 rows you have room for a new row so could store 24 rows per block. That is 16% greater rows per block and fewer blocks that need to be manipulated to get the data you really want.
    For Data Warehouse applications in particular 16% is huge savings since LOB data access is only a small fraction of the data accessed. So for those applications it is common to separate the lobs completely, almost treating them as dimension columns, and tie them to the main (fact) table by the primary key.
    Even for OLTP applications LOB manipulation is often asychronous with the manipulation of the other data so it is relatively easy to create an extra table and not even have to deal with it for the main processing and queries.
    See the SecureFiles and Large Objects Developer's Guide
    http://docs.oracle.com/cd/B28359_01/appdev.111/b28393/adlob_tables.htm
    >
    Inline and Out-of-Line LOB Storage
    LOB columns store locators that reference the location of the actual LOB value. Depending on the column properties you specify when you create the table, and depending the size of the LOB, actual LOB values are stored either in the table row (inline) or outside of the table row (out-of-line).
    LOB values are stored out-of-line when any of the following situations apply:
    If you explicitly specify DISABLE STORAGE IN ROW for the LOB storage clause when you create the table.
    If the size of the LOB is greater than approximately 4000 bytes (4000 minus system control information), regardless of the LOB storage properties for the column.
    If you update a LOB that is stored out-of-line and the resulting LOB is less than approximately 4000 bytes, it is still stored out-of-line.
    LOB values are stored inline when any of the following conditions apply:
    When the size of the LOB stored in the given row is small, approximately 4000 bytes or less, and you either explicitly specify ENABLE STORAGE IN ROW or the LOB storage clause when you create the table, or when you do not specify this parameter (which is the default).
    When the LOB value is NULL (regardless of the LOB storage properties for the column).
    Using the default LOB storage properties (inline storage) can allow for better database performance; it avoids the overhead of creating and managing out-of-line storage for smaller LOB values. If LOB values stored in your database are frequently small in size, then using inline storage is recommended.

  • Sending Long Raw Data to Oracle database through Stored  Procedure

    Hi,
    I am trying to push data to Oracle 9i database through Stored Procedure via thin driver. It is going smoothly upto 29411 bytes. But it is not accepting for 53843 bytes and giving following error :
    java.sql.SQLException: Data size bigger than max size for this type: 53843
    Is it thin driver limitation? Can I solve it by using OCI driver? Or is there any other approach?
    I tried creating connection pool in weblogic 7.0 through OCI driver. But I am not able to configure it. Is there any special way of configuration.
    Quick response will be greatly appreciated.
    Thanks
    Sanjiv

    It happens to me. But I am using CMP of Weblogic 7. If you write your own jdbc code, the following link may be helpful.
    http://otn.oracle.com/sample_code/tech/java/codesnippet/xmldb/HowToLoadLargeXML.html

  • New Oracle database design tool...

    Whether you are a beginner or an expert data modeler, ModelRight for Oracle is the database design tool of choice for Oracle. Here are some of the things that make ModelRight for Oracle unique:
    • Extensive support for Oracle – support and advanced features - OR types, object tables, object views, materialized views, index-organized tables, clusters, partitions, function-based indexes, etc...
    • full Forward, Reverse and Compare capabilities
    • Unique User Interface and Diagrammatic elements: with our mode-less and hyperlinked user-interface, navigating and editing your model is intuitive and easy.
    • Extensive use of Domains: you can create Domains for just about every type of object to propagate patterns, reusability & classification.
    • Unprecedented level of programmatic control: you can control the smallest details of the FE and Alter Script generation process.
    Please check out our website at http://www.modelright.com and download the free trial version.
    Please let me know if you have any suggestions or comments.
    Thank you,
    Tim Guinther
    Founder, ModelRight, Inc.
    [email protected]
    (215) 534 5282

    Jens I found a few good links in there...I was trying to
    find if there was a certification track offered in
    DB Design? I see a lot of instructor led classes most
    of them only 2-3 days long.

  • Fetch tablespace data from Oracle database(HP UNIX server) to excel Sheet

    Hi team,
    I have 5 oracle databases and they all are on different machines. i want to fetch data(tablespace data) from db to excel.
    here is my macro code
    Sub tbs_STD()
    Dim Conn As New ADODB.Connection
    Dim RS As New ADODB.Recordset
    Dim Cmd As New ADODB.Command
    Dim sqlText As String
    Dim Row As Long
    Dim Findex As Long
    Dim STD As Worksheet
    Dim X As Long
    Dim UID As String
    Dim PWD As String
    Dim Server As String
    UID = "monitordb"
    PWD = "monitor1"
    Server = "STD"
    Set STD = ActiveSheet
    STD.Select
    Conn.Open "PROVIDER=MSDAORA.Oracle;DATA SOURCE=" & Server & ";" & _
    "USER ID=" & UID & ";PASSWORD=" & PWD
    Cmd.ActiveConnection = Conn
    Cmd.CommandType = adCmdText
    sqlText = "select sum(a.tots/1048576) Tot_Size,sum(a.sumb/1048576) Tot_Free,round(sum(a.tots-a.sumb)*100/sum(a.tots),2) Pct_used,sum(a.largest/1024) Max_Free,sum(a.chunks) Chunks_Free from(select tablespace_name,0 tots,sum(bytes) sumb,max(bytes) largest,count(*) chunks from dba_free_space a group by tablespace_name union select tablespace_name,sum(bytes) tots,0,0,0 from dba_data_files group by tablespace_name) a group by a.tablespace_name order by a.tablespace_name"
    Cmd.CommandText = sqlText
    Set RS = Cmd.Execute
    For X = 0 To 4 ' Number of columns returning minus 1
    'Data.Cells(1, X + 1) = RS.Fields(X).Name
    Next
    Do While Not RS.EOF
    Row = Row + 1
    For Findex = 0 To RS.Fields.Count - 1
    STD.Cells(Row + 2, Findex + 67) = RS.Fields(Findex).Value
    Next Findex
    RS.MoveNext
    Loop
    End Sub
    I am able to connect through sqlplus on all machines but when i run the above code it gives me TNS error..
    ORA-12154- TNS could not resolve the connect identifier specified..
    Each database use same port 1527 and only one of them is able to fetch the data. and if i remove that database from client then the other one starts connecting. I think problem is due to same port number.
    Entries in the listener.ora file was made throough oracle client only 32bit.
    and i have installed both 10g and 11g client on my local machine.
    Please help.

    You need to configure tnsnames.ora in your OracleClient\network\admin folder with the TNS entries for the servers you're connecting to.

Maybe you are looking for

  • How do i share apps between accounts?

    I have installed call of duty using my Admin account and installed it in the top most 'shared' folder. I can use it with no problems at all, but my brothers account has problems with it. 1. The mouse wont work while in Call of duty. 2. It opens in a

  • Asset Purchase Via Purchase order

    When  i  try to raise PO to purchase Asset by asisgning material group and account assignment the below  error occured. G/L account 201000 cannot be used (please correct) Message no. ME045 Diagnosis Comparison of the field selection strings from the

  • IPhone5 IOS 6.0.1 shared google calendar does not show

    Even though the setting in Google Calendar is set to 'show', the shared calendar from another gmail acount does not appear in the iphone native calendar app. Anyone solution for this?

  • The following NEF files were not imported because they could not be read.

    Had to reinstall LR 3.3 and when importing NEF files from Nikon D90 the following message appeared, "Some import operations were not performed. The following files [NEF] were not imported because they could not be read" Windows 7 user w/administrator

  • Satellite Pro A200 (PSAE4E) Disc Creator error while firmware update

    Hi I get the following errors when trying to update firmware for Disc Creator i am using Windows VIsta Home Premium, Unexpected error occurred. Error Code: 32007C-26-00000015 Followed by: Error Code: 320129-26-00000015 - then application crashes. Any