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 -
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 AMuser12090980 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 youhi,
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
GursimranTry :
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,
Srinisrinu2 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.GYou 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.
SunandaResolved 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,
BartDB02 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 GibbsI 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
OskarHi 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
SonyHi Sony,
Please go to SNUM t-code and make sure there exists an interval for object HRTABNR.
Regards,
Dilek
Maybe you are looking for
-
At my office I work on a mac, I print to a Canon C5240, my print dirver is current (Canon iR-ADV C5200s-B2 psv1.ous). We just got this new computer at our office and it defaults to 2-sided printing. The cannon people said we need change our printer s
-
I sometimes like to use Photoshop CC and Lightroom on the Windows side of my MacBookPro with Parallels. I had to reinstall Parallels and also Windows 8.1 recently and am trying to reinstall some of the software that I had previously on the Windows si
-
Error 2203 when trying to re-install Elements 12
I am trying to re-install Elements 12 on my HP laptop running Windows 8. I get most of the way through the install and I get "Error 2203 Process cannot access the file because another process has locked a portion of the file". I have had both Element
-
How many hours does a brand new battery last after fully charged. I have a late 2008 Macbook Pro.
-
I've been building some HTTP servlets and to ease up on the typing I've created a ServletUtilities file and class for repetitve tasks. I then added this file to my core package. However once I made a call to my ServletUtilites class from the other cl