Scalability as Number of Tables increases

i have to develop an application that requires large number of tables (~10K) however there may be very little data stored in individual tables (100 -1000 rows). What kind of performance behavior is expected. What will be the overheads involved in creating so many tables. Can you point me to any relevant whitepaper.

Oracle doesn't voluntarily load any user table into memory at startup. So there's no overhead on that part. When user access data of a table, Oracle will the load the data block into memory, doesn't really matter it's ten blocks from single table or ten blocks from ten tables. The difference is on shared pool side, when user accessing these 10k different tables, the chance these SQL can be shared is low. You might want to consider a bigger shared pool size to accommodate that.
However, these just in theory, you need to really setup a database and try. Run statspack report on the database and then you will have better insight of performance implication of your design.
Which version of Oracle you plan to use?

Similar Messages

  • Limitation on the number of tables in a Database Schema!

    Hi All,
    Is there a limitation on the number of tables present in a schema that can be fetched in Designer while creating a universe.
    Customer is using Oracle schema which contains 22000 tables and while trying to insert tables in Designer XIR2 (or trying to get the table browser) Designer hangs.
    In BO 6.5 there are no issues while retrieving the tables from the schema in Designer.
    Is there a way to retrieve only a certain amount of tables in Designer XIR2?
    Thanks for your help!

    Hi Ganesh,
    Following are the Answers regaring your queries:
    Query : 1
    There is no limitation on the number of components (objects, classes, tables, joins, hierarchies, lov's, etc) in a universe. But of course as the number of components increases, you could run into problems  related to performance.
    This depends on available RAM and the processing speed.
    Query 2:
    There is NO such option to select the number of table to be automatically inserted in to the universe because Suppose if you have 22000 tables in DB and you want only 1000 table ,you entered 1000 tables as the value to insert tables in Universe then How Designer will come to know which tables you want to take in Schema to build the Universe?
    It all depends on the DBA and Universe Designer which tables are important for organizations reporting needs.
    When you  create connection to the DB then Connection will fetch all table from the database and we canu2019t limit  DB data retrieval.
    I hope this Helps...
    Thanks...
    Pratik

  • Maximum number of table

    What is the maximum number of table that can be created in a schema?

    Hi Scott,
    Thanks for your quick reply. I've increased the size of H Grid: Catalog to 100 and there's no change (even after bouncing the server).
    I've tested it in another instance and got a "Next X - Y of Y" link at the bottom and a "Previous" link at the top when there has been an overflow. This instance doesn't have that (the overflow objects can only be seen when you do a direct search for them).
    Anne
    Message was edited by:
    anne

  • ADD-ON Document Number is not Increase

    Hi All,
            My Company use One Customize ADD-On . The Problem is that ADD-on From Document Number Some Time is not Increase Automatically in ONNM And NNM1 Table .Thats why when add any document the massege show_'Document Allrady exists* '_*. Becouse last DocNumber and new DocNumber is Same.When AutoKey and NextNumber is update use update Query  then document number is agin increase.
    Pleace tall me  any Permanent Soltion for this problem.

    Hi,
    There are certain problems in the add-on source code.  It may not update table by using DI API only.  Check with add-on developer to find the solution.
    Thanks,
    Gordon

  • Is there a maximum number of tables for a SELECT?

    I know that technically there is nothing preventing me from joining many tables. But I know there are other "limits" like memory, or processing time allowable. I've also read from Tom kyte's advice that as much as possible if it can be done in one SQL statement, do it in SQL. But is there a limit to this?
    I have 10 tables that I need to work with. 2 of these tables contain millions of records. At the minimum, I need to at least join 4 of these tables then I could loop for each record and perform processing with the other tables. I could actually join more than 4 tables but I'm wary if it could still cause the system to crash. I'm using BULK COLLECT with LIMIT 1000 to control the fetching. The columns I'm joining are mostly PKs of each table. There are some transactional processing needed so I can't totally avoid a loop.
    This is the logic:
    <Cursor with joining 4 tables>
    Loop
    Fetch cursor BULK COLLECT INTO nested table LIMIT 1000
    For each record Loop
    Per record processing. I'll use the record elements to query from the other 6 tables.
    End Loop
    EXIT WHEN cursor NOTFOUND
    END LOOP
    Is it advisable to transfer as many tables as I can in the outside loop so there would be less processing in the inner loop? Or can a query be too big that it is better to manage the number of tables in a SELECT?
    Thanks!
    Edited by: user12090980 on Jun 3, 2011 6:23 AM

    user12090980 wrote:
    I have 10 tables that I need to work with. 2 of these tables contain millions of records. At the minimum, I need to at least join 4 of these tables then I could loop for each record and perform processing with the other tables. I could actually join more than 4 tables but I'm wary if it could still cause the system to crash. I'm using BULK COLLECT with LIMIT 1000 to control the fetching. The columns I'm joining are mostly PKs of each table. There are some transactional processing needed so I can't totally avoid a loop.Well, the very same loop structure you code in PL/SQL to "manually join" the required data sets of the 10+ tables, is also implemented in the SQL engine. It is called a nested loop.
    So why think that your code can handle joining 10+ tables better than the SQL engine? Also consider the fact that the SQL engine has a number of other (more sophisticated) join algorithms it can use, like hash joins, merge joins and so on.
    The biggest problem with the nested loop algorithm is scalability. If you nest the loop 10 deep - then a single loop iteration more in the main loop, can cause a 1000's or even potentially million more iterations in total ("exponential" impact on the loops nested in it).
    So nested loop is at times the worse type of join algorithm to use. And IMO, always the wrong thing to code in PL/SQL - as PL/SQL code (irrespective of bulk processing) will always be inferior to the SQL engine when it comes to joining data.

  • MulitcolumnListBox Number of Columns increases without Data

    Is there a way to avoid this ?
    I initialize a 6 column 16 row multicolumnListBox by setting two columns, (the first and the last) as hidden by setting the width of the columns by setting the ActiveCell to 0 & -2 for the first column, and 6 & -2 for the last. This appears to work fine, however it would be nice that when you set the width of the column to 0 if it really "disappeared", but that's minor.
    My real issue appears when I then attempt to set the height and fontsize of every cell, I do this by setting the ActiveCell to -2 & -2 and wire and unsigned int to the two property nodes, height, and fontsize. Now keep in mind the mulitcolumnListBox is defined as 6 columns by 16rows. After I initialize the table using the above code, the multicolumListBox blows up to 235 columns and 16row, with no data. So this leads me to believe that by setting the cell height, and default font size using the ActiveCell -2 & -2, it actually effects even those cells that are not visible or have data ? I should also mention that even with the Horizontal scroll bar visible it does not appear that there are more than 6 rows available, but when you read the property node, or look in the properties of the multicolumListBox they number of Columns increases to 235. Am I missing something ?
    Thanks
    Brad W.  

    Hi Brad,
          I tried to duplicate this (under LabVIEW 7.1) but couldn't.
    I suspect you're using 8.x as 7.1 doesn't seem to expose a "font size" cell-property.  No matter what version of LabVIEW you're using, attaching an example would be good.  
    Cheers.
    "Inside every large program is a small program struggling to get out." (attributed to Tony Hoare)

  • Populating item number in table control

    I have created a custom table control. It is very similar to the VA01 or Vl01N table controls to add items. When the user enters the material name, the item number column needs to be populated.
    Currently I have something like this
    LOOP at i_items.
    MODULE tblcntrl_modify INPUT.
    ENDLOOP
    MODULE tblcntrl_modify INPUT. "PAI
       posnr = sy-stepl * 10.
       more logic for input validation.
    ENDMODULE
    The issue I have is that when I scroll in the table control, the posnr for each item gets recalculated and they get whacked .. so I get a scenario like this
    10 mat1
    20 mat2
    30 mat3
    10 mat4
    40 mat5
    what is the best way to populate the item number. Thank you

    hi,
    u have to make one module in PAI brtn  <b>LOOP-ENDLOOP, CHAIN-ENDCHAIN</b>
    LOOP AT itab_det.
        CHAIN.
         FIELD itab_det-comp_code.
          FIELD itab_det-bill_no.
          FIELD itab_det-bill_date.
          FIELD itab_det-vend_cust_code.
          FIELD itab_det-bill_amt.
          MODULE <b>tab1_modify</b> ON CHAIN-REQUEST.
        ENDCHAIN.
        FIELD itab_det-mark
          MODULE tab1_mark ON REQUEST.
      ENDLOOP.
    <b>MODULE tab1_modify INPUT.</b>
      IF itab_det-bill_no <> ' ' .
        CLEAR:net_pr,tax,bil_amt,bil_dt.
        SELECT SINGLE fkdat netwr mwsbk FROM vbrk INTO (bil_dt,net_pr,tax)
        WHERE vbeln = itab_det-bill_no .
        bil_amt = net_pr + tax.
        itab_det-bill_date = bil_dt.
        itab_det-bill_amt = bil_amt.
      ENDIF.
      MODIFY itab_det
        FROM itab_det
        INDEX tab1-current_line.
      APPEND itab_det.
    <b>ENDMODULE.                    "TAB1_MODIFY INPUT</b>
    here i am fetching Bill Amount and Bill Date according to Entered Bill Number in Table control.
    So i am checking bill number here in If condition and when i press enter that two value automatically populated...
    reward if useful.....

  • How do i count number of table being used in a view

    Hi All,
    I will be really thankful if anyone please let me know about the count of number of tables being used in a view. I am using Oracle 10g Release 2 on HP-UX(11.31).
    In actual I have to find views in my database with more than 5 table in join.
    Thank you
    Gursimran

    Try :
    select count(*) from dba_dependencies
    where name ='<view name>'
    and owner = '<view owner>'
    and referenced_type= 'TABLE';Example:
    SQL> select * from v$version;
    BANNER
    Oracle Database 10g Express Edition Release 10.2.0.1.0 - Product
    PL/SQL Release 10.2.0.1.0 - Production
    CORE    10.2.0.1.0      Production
    TNS for 32-bit Windows: Version 10.2.0.1.0 - Production
    NLSRTL Version 10.2.0.1.0 - Production
    SQL> show user;
    USER is "HR"
    SQL>
    SQL> drop table t1 purge;
    Table dropped.
    SQL> drop table t2 purge;
    Table dropped.
    SQL> drop table t3 purge;
    Table dropped.
    SQL> drop view v;
    View dropped.
    SQL>
    SQL> create table t1(x int);
    Table created.
    SQL> create table t2(y int);
    Table created.
    SQL> create table t3(z int);
    Table created.
    SQL> create view v as select x,y,z from t1,t2,t3;
    View created.
    SQL>
    SQL> connect / as sysdba
    ConnectÚ.
    SQL> alter session set nls_language=english;
    Session altered.
    SQL>
    SQL> select count(*) from dba_dependencies
      2  where name ='V'
      3  and owner = 'HR'
      4  and referenced_type= 'TABLE';
      COUNT(*)
             3
    SQL>Edited by: P. Forstmann on 26 juil. 2010 17:45

  • Maximum number of tables that can be outer joined with one table in a query

    Hi All,
    Iam new to sql, so can you please let me know What is the maximum number of tables that can be outer joined with one table in a query?
    Thanks,
    Srini

    srinu2 wrote:
    Iam new to sql, so can you please let me know What is the maximum number of tables that can be outer joined with one table in a query?
    There is no limit to the number of tables you can outer join as long as you join them correctly.
    SQL> with a as
      2      (
      3      select 1 id, 2 b_key, 3 c_key from dual union all
      4      select 2 id, 1 b_key, 4 c_key from dual union all
      5      select 3 id, 3 b_key, 1 c_key from dual union all
      6      select 4 id, 4 b_key, 2 c_key from dual
      7      ),
      8      b as
      9      (
    10      select 1 id, 1 c_key2 from dual union all
    11      select 2 id, 5 c_key2 from dual union all
    12      select 3 id, 3 c_key2 from dual union all
    13      select 4 id, 2 c_key2 from dual
    14      ),
    15      c as
    16      (
    17      select 1 key1, 1 key2, '1-1' dta from dual union all
    18      select 1 key1, 2 key2, '1-2' dta from dual union all
    19      select 1 key1, 3 key2, '1-3' dta from dual union all
    20      select 1 key1, 4 key2, '1-4' dta from dual union all
    21      select 2 key1, 1 key2, '2-1' dta from dual union all
    22      select 2 key1, 2 key2, '2-2' dta from dual union all
    23      select 2 key1, 3 key2, '2-3' dta from dual union all
    24      select 2 key1, 4 key2, '2-4' dta from dual union all
    25      select 3 key1, 1 key2, '3-1' dta from dual union all
    26      select 3 key1, 2 key2, '3-2' dta from dual union all
    27      select 3 key1, 3 key2, '3-3' dta from dual union all
    28      select 3 key1, 4 key2, '3-4' dta from dual union all
    29      select 4 key1, 1 key2, '4-1' dta from dual union all
    30      select 4 key1, 2 key2, '4-2' dta from dual union all
    31      select 4 key1, 3 key2, '4-3' dta from dual union all
    32      select 4 key1, 4 key2, '4-4' dta from dual
    33      )
    34  select d.a_id, d.b_id, c.key1 as c_key1, c.key2 as c_key3, c.dta
    35  from
    36      c,
    37      (
    38      select
    39          a.id as a_id, b.id as b_id, a.c_key, b.c_key2
    40      from a, b
    41      where a.b_key = b.id
    42      ) d
    43  where d.c_key = c.key1 (+)
    44  and   d.c_key2 = c.key2 (+);
          A_ID       B_ID     C_KEY1     C_KEY3 DTA
             3          3          1          3 1-3
             4          4          2          2 2-2
             2          1          4          1 4-1
             1          2
    SQL>

  • Function module to find number of table entries in Data base table

    Hi All
       I have the urgent requirement to find out the number of table entries in a table  using the function Module.
    if u know the Function Module name please let me know
    Thanks & Regards
    Rajmohan.G

    You can calculate the total number of records like this.
    TABLES : ztable.
    DATA cnt type I.
    Select count( * ) into cnt FROM ztable.
    Regards,
    Santosh

  • Missing PRCTR from Number Range Table

    Hi There,
    I need to find out all the the available profit centre which not created yet ie no profit centre  available in CEPC from the number range table NRIV.
    I tried the FM number_get_next but nothing happened.
    Details given below:
    In the NRIV table I have got say following details :
    Object          From Number     To Number    etc     etc
    Y_PC          0000000001     0000000100
    Y_PC          0000000101     0000000150
    Y_PC          0000000160     0000000200
    Profit Centre Created Available in CEPC say
    In the no range 1 to 100
         0000000001
                    0000000002
                    0000000003 (Not created)
         0000000004
                    5 ,6 & 7 missing
         0000000008
    In the no range 101 to 150
         0000000101
                    0000000102
         0000000103
                    0000000104 (Not created)
         0000000105
                    6,7....upto 149...(Not created)
         0000000150
    Similarly in other ranges few nos missing
    My requirement is to read the NRIV table take all  from number and to number into an internal table  and for those nos find the  missing nos from the CEPC table .
    Appreciate your help.
    Regards.
    Sunanda

    Resolved by myself !!
    Cheers.

  • DB02 shows less total number of tables after UC conversion + OS migration

    Hi,
    We have performed an combined UC conversion and OS migration (BW system on oracle). When comparing the original and migrated system I find in DB02 that in the migrated system the total number of tables is less than in the original system. The migration itself went OK and the system looks fine. I recall that I once heard that tables could be defined to be created when they are called/used for the first time. Is this correct? Could these also be old/non used tables (e.g. left overs from an upgrade) which were still present in the database dictionary but not in the SAP dictionary and were therefor not migrated?
    Thanks,
    Regards,
    Bart

    DB02 counts total number of tables/indecies/views etc in database rather that just SAP tables/indecies/views in database.  The migration process recreates a fresh database and loads tables/indecies/views from source SAP dictionary.  This means table/indecies/views not part of database catalog or in source SAP dictionary don't get created.  This includes objects not owned by db catalog user or SAP connect user.  It also includes objects owned by sap connect user but not known by SAP dictionary.  Under normal operation of some databases, some tables get automatically created.  An example for oracle is PLAN_TABLE as a result of the EXPLAIN SQL command.  Did your source DDIC to db comparison tool show any objects in database but not in dictionary?  If so, these are connect user owned objects that were not migrated.  Does your source system have objects owned by non-db catalog, non-sap connect users (Eg DBA's)?  These wern't migrated.  
    You've already indicated that the SAP connect user counts in source and target are identical.  This is what you moved.

  • What is maximum number of tables that can be used to create HTMLDB app?

    What is the maximum number of tables that can be used to create an HTMLDB app? There seems to be a 10-table limit?
    Thanks.
    Dianna Gibbs

    I have over 200 photos in my book and it was accepted. There is a limit on each widget though. The interactive widget seems to have a limit of around 30 or 40.

  • Slow due to huge number of tables

    Hi,
    unfortunately we have a really huge number of tables in the ( Advantage Server ) database.
    About 18,000 + tables
    Firing the acitveX preview thru RDC, or just running a preview in the designer slows down to a crawl.
    Any hints? ( Besides get rid of that many tables )
    Thanks
    Oskar

    Hi Oskar
    The performance of a report is related to:
    External factors:
    1. The amount of time the database server takes to process the SQL query.
        ( Crystal Reports send the SQL query to the database, the database process it, and returns the data set to Crystal Reports. )
    2. Network traffics.
    3. Local computer processor speed.
        ( When Crystal Reports receives the data set, it generates a temp file to further filter the data when necessary, as well as to group, sort, process formulas, ... )
    4. The number of record returned
        ( If a SQL query returns a large number of records, it will take longer to format and display than if was returning a smaller data set.)
    Report design:
    1. Where is the Record Selection evaluated.
        Ensure your Record Selection Formula can be translated in SQL, so the data can be filtered down on the Server, otherwise the filtering will be done in a temp file on the local machine which will be much slower.
    They have many functions that cannot be translated in SQL because they may not have a standard SQL for it.
    For example, control structure like IF THEN ELSE cannot be translated into SQL. It will always be evaluated in Crystal Reports. But if you use an IF THEN ELSE on a parameter, it will convert the result of the condition to SQL, but as soon as uses database fileds in the conditions it will not be translated in SQL.
    2. How many subreports the report contains and in section they are located.
    Minimise the number of subreports used, or avoid using subreports if possible because
    subreports are reports within a report, and if you have a subreport in a details section, and the report returns 100 records, the subreport will be evaluated 100 times, so it will query the database 100 times. It is often the biggest factor why a report takes a long time to preview.
    3. How many records will be returned to the report.
       Large number of records will slow down the preview of the reports. Ensure you only returns the necessary data on the report, by creating a Record Selection Formula, or basing your report
    off a Stored Procedure, or a Command Object that only returns the desired data set.
    4. Do you use the special field "Page N of M", or "TotalPageCount"
       When the special field "Page N of M" or "TotalPageCount" is used on a report, it will have to generate each page of the report before it displays the first page, therfore it will take more time to display the first page of the report.
        If you want to improve the speed of a report, remove the special field "Page N of M" or "Total Page Count" or formula that uses the function "TotalPageCount". If those aren't used when you view a report it only format the page requested. It won't format the whole report.
    5. Link tables on indexed fields whenever possible.
    6. Remove unused tables, unused formulas, unused running totals from the report.
    7. Suppress unnecessary sections.
    8. For summaries, use conditional formulas instead of running totals when possible.
    9. Whenever possible, limit records through selection, not suppression.
    10. Use SQL expressions to convert fields to be used in record selection instead of using formula functions.
    For example, if you need to concatenate 2 fields together, instead of doing it in a formula, you can create a SQL Expression Field. It will concatenate the fields on the database server, instead of doing in Crystal Reports.
    SQL Expression Fields are added to the SELECT clause of the SQL Query send to the database.
    11. Using one command as the datasource can be faster if you return only the desired data set.
          It can be faster if the SQL query written only return the desired data.
    12. Perform grouping on server
       This is only relevant if you only need to return the summary to your report but not the details. It   will be faster as less data will be returned to the reports.
    Regards
    Girish Bhosale

  • Error number assignment table pointer (no.range object HRTABNR)  - LSO_PSV2

    Hi ALL
    On LSO_PSV2, when i create a course:
    Error number assignment table pointer (no.range object HRTABNR)
    Any ideas?
    Thanks in advance
    Sony

    Hi Sony,
    Please go to SNUM t-code and make sure there exists an interval for object HRTABNR.
    Regards,
    Dilek

Maybe you are looking for