TableView performance with large number of columns
I notice that it takes awhile for table views to populate when they have a large number of columns (> 100 or so subjectively).
Running VisualVM based on CPU Samples, I see that the largest amount of time is spent here:
javafx.scene.control.TableView.getVisibleLeafIndex() 35.3% 8,113 ms
next is:
javfx.scene.Parent$1.onProposedChange() 9.5% 2,193 ms
followed by
javafx.scene.control.Control.loadSkinClass() 5.2% 1,193 ms
I am using JavaFx 2.1 co-bundled with Java7u4. Is this to be expected, or are there some performance tuning hints I should know?
Thanks,
- Pat
We're actually doing some TableView performance work right now, I wonder if you could file an issue with a simple reproducible test case? I haven't seen the same data you have here in our profiles (nearly all time is spent on reapplying CSS) so I would be interested in your exact test to be able to profile it and see what is going on.
Thanks
Richard
Similar Messages
-
ALV performance with large number of columns
Dear friends,
I have created an ALV grid which has approximately 225 fields in it using Classes an not REUSE fms..
After the ALV grid is first displayed if the user scrolls down to the next page it takes significant time to display the data in the next page.. The documentation says that the ALV grid only caches the data upon display (After first display of a page and before the ALV grid data is refreshed it works fine).
Is there any mechanism of caching the entire ALV grid data before/after the method set_table for_first_display is called??
Helpful answers will be appropriately rewarded..
Cheers
NiteshWe're actually doing some TableView performance work right now, I wonder if you could file an issue with a simple reproducible test case? I haven't seen the same data you have here in our profiles (nearly all time is spent on reapplying CSS) so I would be interested in your exact test to be able to profile it and see what is going on.
Thanks
Richard -
FR Layout issue with large number of columns
Hi!
I'm developing a report in FR 11.1.1.3 with over 30 columns.
The issue is that when I run the report in web preview, the dropdown of dimension in page goes to the far right and disappears from the display.
If I reduce the number of the columns I don't have this problem.
I've already tried to maximize the workspace to the maximum without any result.
Can anyone help me to deal with reports with large numbers of columns?
Regards,
Luís
Edited by: luisguimaraes on 13-Mar-2012 06:48IE8 could be the reason. According to the supported platform matrices (http://www.oracle.com/technetwork/middleware/bi-foundation/oracle-hyperion-epm-system-certific-2-128342.xls), check tab EPM System Basic Platform, row 70, in order IE8 to work, FR and Workspace should be patched.
FR Patch number: 9657652
Workspace Patch number: 9314073
Patches can be found on My Oracle Support. Just search for the patch number.
Cheers,
Mehmet -
Slow record selection in tableView component with large number of records
Hi experts,
we have a Business Server Page (flow logic) with several htmlb:inputField's. As known from SAP standard we would like to offer value helper (F4) to the users for the ease of record selection.
We use the onValueHelp() method of the inputField to open a extra browser window through JavaScript. In the popup another html-website is called, containing a tableView component with all available records. We use the SINGLESELECT mode for the table view.
Everything works perfect and efficient, unless the tableView contains too many entries. If the number of possible entries is large the whole component performs very very slow. For example the selection of the record can take more than one minute. Also the navigation between pages through the buttons at the bottom of the component takes a lot of time. It seems that the tableView component can not handle so many entries.
We tried to switch between stateful and stateless mode, without success. Is there a way to perform the tableView selection without doing a server-round-trip? Any ideas and comments will be appreciated.
Best regards,
SebastianHi Raja,
thank you for your hint. I took a look at sbspext_table/TableViewClient.bsp but did not really understand how the Java-Script coding works. Where is the JavaScript code in that example? Which file, does it contain.
Meanwhile I implemented another way to evite the server round trip.
- Switch page mode of the popup window to "Stateful"
- Use OnInitialization method like OnCreate (as shown in [using OnInitialization like OnCreate])
- Limit the results of the SELECT statement with UP TO 1000 ROWS
Best regards,
Sebastian -
Generating table with large number of columns (256)
Hi,
I don't know if this is right place for posting this:
for data mining purposes I need a table which column names needs to be size N, where N is 2, 3 or 4. Column name is build upon alphabet of nucleotids A,C,T,G and all variations with repetition. For N=2, columns are: AA, AC, AT, AG, CA, CC, CT, CG, TA, TC, TT, TG, GA, GC, GT, GG (4^2 = 16). For N=3, 4^3 = 64, and for N=4 4^4 = 256.
Primary key in table is array of nucleotids, and values in previously mentioned columns for each nucleotid array are 1 or 0, based on that if such nucleotid of size N exists in that chain or not.
My questions are:
1) is there any tool (in Oracle Data Miner or whatever) which can generate such table from array of nucleotids (one array of nucleotids is ordinary string)?
2) It's not a problem to generate this table myself but is it "normal" to have database table with 257 columns (when N = 4)?
I hope that my problem is clear (because of my English).
Thanks in advance.
Regards.Without knowing the reason for doing so, I would guess, this kind of design is quite poor.
How are you planning to specify your queries? (I do know dynamic SQL would be a possibility ...).
Another point of view:
What if someone decides to have column names built using 5 nucleotids? This would exceed the maximum number of columns of a table which currently (10g, 11g) is 1000? -
Bi publisher with large number of columns
Hi everyone,
i am having this report that have to have a 70 column. i am trying to add them but its not allowing me to include more than 20.
any advice how to do it ?
is there anything that i cant do with the config file to increase the number of column allowed ?
thanksHi,
U have to increase the page width(Edit layout->Properties) there increase the page width then add the columns.
I don't know the exact bench mark,but in my project i added the above 25 columns
Once check it.
if it helps please mark it....
Thanks -
Rendering XML output (with large number of columns) to browser breaks
We have a stored procedure in our database which returns a cursor with over 400 columns. When we call the stored procedure from within the QT (using mode FixedQueryWithOutput), it renders just fine and very quickly in CSV format. however, when we attempt to render it (e.g. post it) as HTML format or XML format, it takes a very long time to render (even thought the results come back very quickly).
We are using the following specs:
OS: Microsoft Vista
Browser: IE (v7.0)
Java: Java 6, patch 20 (plug-in disabled)
Any hints/help would be greatly appreciated!Hi Aaron,
Can you limit the output to a very few rows on the 400 columns you have to render? It might be a memory or a XML parser constraint on the output client.
Other option: save the XML in a file (WEB area) then try to export & open the saved data with the browser.
This will tell you if the error is at the client level. Also, you can examine the output easily, offline.
This is practically what I'm doing to analyze XML data transferred to and from SAP using various RFCs.
IE 8.0 never crashed with XMLs having a size of 3Mb or more (approx 60columns, 10000+ rows, 14 different tables).
Paul. -
BPC Performance with large number of dimensions's members
Hi,
I would like to know if there is a limitation on the number of members in one dimension. This dimension, named PROJET, is often used in expansion on our input schedule reports (to retrieve the projects which belong to the entity entered in the current view).
With approximate 2500 members in this dimension, the report takes about 4 minutes to be expansed (or even open).
We have 8 dimensions with few to 300 members. The PROJECT dimension is the biggest in terms of members's number.
Thank you in advance for your feedback !
HeleneHi Helene,
With 3,000 members you should not be experiencing these problems, if your report is designed properly.
I'm running BPC 5.1 SP8 on SQL 2005, with a dimension containing 22,000 members. Client PC's are typical (XP, Excel 2007, 1 or 2 gig RAM).
Using EVDRE and this dimension expanding on the rows, most reports & input schedules can expand & refresh in the range of 10 to 30 seconds.
The faster times are when I use a row expansion memberset using dimension properties, such as Active="X". The slower times are when the memberset is hierarchy-based, such as BAS.
If you're using a dynamic template (one using EVEXP for the expansion) then you should start over using EVDRE. It will be much faster, particularly if you optimize your row expansion.
It's often a good idea to add dimension properties specifically for the purpose of optimizing the report expansion, if the dimension has thousands of members. I sometimes go as far as to add properties which mimic the hierarchy (MyLevel2, MyLevel3, etc) just for this purpose. -
How to show data from a table having large number of columns
Hi ,
I have a report with single row having large number of columns . I have to use a scroll bar to see all the columns.
Is it possible to design report in below format(half columns on one side of page, half on other side of page :
Column1
Data
Column11
Data
Column2
Data
Column12
Data
Column3
Data
Column13
Data
Column4
Data
Column14
Data
Column5
Data
Column15
Data
Column6
Data
Column16
Data
Column7
Data
Column17
Data
Column8
Data
Column18
Data
Column9
Data
Column19
Data
Column10
Data
Column20
Data
I am using Apex 4.2.3 version on oracle 11g xe.user2602680 wrote:
Please update your forum profile with a real handle instead of "user2602680".
I have a report with single row having large number of columns . I have to use a scroll bar to see all the columns.
Is it possible to design report in below format(half columns on one side of page, half on other side of page :
Column1
Data
Column11
Data
Column2
Data
Column12
Data
Column3
Data
Column13
Data
Column4
Data
Column14
Data
Column5
Data
Column15
Data
Column6
Data
Column16
Data
Column7
Data
Column17
Data
Column8
Data
Column18
Data
Column9
Data
Column19
Data
Column10
Data
Column20
Data
I am using Apex 4.2.3 version on oracle 11g xe.
Yes, this can be achieved using a custom named column report template. -
Passing a large number of column values to an Oracle insert procedure
I am quite new to the ODP space, so can someone please tell me what's the best and most efficient way to pass a large number of column values to an Oracle procedure from my C# program ? Passing a small number of values as parameters seem OK but when there are many, this seems inelegant.
Passing a small number
of values as parameters seem OK but when there are
many, this seems inelegant.Is it possible that your table with a staggering amount of columns or method that collapses without so many inputs is ultimately what is inelegant?
I once did a database conversion from VAX RMS system with a "table" with 11,000 columns to a normalized schema in an Oracle database. That was inelegant.
Michael O
http://blog.crisatunity.com -
How to create a table with varied number of columns?
I am trying to create a balance table. The colunms should include years between the start year and end year the user will input at run time. The rows will be the customers with outstanding balance in those years.
If the user input years 2000 and 2002, the table should have columns 2000, 2001, 2002. But if the user input 2000 and 2001, the table will only have columns 2000 and 2001.
Can I do it? How? Thanka a lot.Why did you create a new thread for this?
How to create a table with varied number of columns? -
Hi everyone, again landed up with a problem.
After trying a lot to do it myself, finally decided to post here..
I have created a form in form builder 6i, in which on clicking a button the data gets exported to excel sheet.
It is working fine with a single table. The problem now is that i am unable to do the same with 2 tables.
Because both the tables have same number of columns & column names.
Below are 2 tables with column names:
Table-1 (MONTHLY_PART_1)
Table-2 (MONTHLY_PART_2)
SL_NO
SL_NO
COMP
COMP
DUE_DATE
DUE_DATE
U-1
U-1
U-2
U-2
U-4
U-4
U-20
U-20
U-25
U-25
Since both the tables have same column names, I'm getting the following error :
Error 402 at line 103, column 4
alias required in SELECT list of cursor to avoid duplicate column names.
So How can i export the data to excel which has 2 tables with same number of columns & column names?
Should i paste the code? Should i post this query in 'SQL and PL/SQL' Forum?
Help me with this please.
Thank You.You'll have to *alias* your columns, not prefix it with the table names:
$[CHE_TEST@asterix1_impl] r
1 declare
2 cursor cData is
3 with data as (
4 select 1 id, 'test1' val1, 'a' val2 from dual
5 union all
6 select 1 id, '1test' val1, 'b' val2 from dual
7 union all
8 select 2 id, 'test2' val1, 'a' val2 from dual
9 union all
10 select 2 id, '2test' val1, 'b' val2 from dual
11 )
12 select a.id, b.id, a.val1, b.val1, a.val2, b.val2
13 from data a, data b
14 where a.id = b.id
15 and a.val2 = 'a'
16 and b.val2 = 'b';
17 begin
18 for rData in cData loop
19 null;
20 end loop;
21* end;
for rData in cData loop
ERROR at line 18:
ORA-06550: line 18, column 3:
PLS-00402: alias required in SELECT list of cursor to avoid duplicate column names
ORA-06550: line 18, column 3:
PL/SQL: Statement ignored
$[CHE_TEST@asterix1_impl] r
1 declare
2 cursor cData is
3 with data as (
4 select 1 id, 'test1' val1, 'a' val2 from dual
5 union all
6 select 1 id, '1test' val1, 'b' val2 from dual
7 union all
8 select 2 id, 'test2' val1, 'a' val2 from dual
9 union all
10 select 2 id, '2test' val1, 'b' val2 from dual
11 )
12 select a.id a_id, b.id b_id, a.val1 a_val1, b.val1 b_val1, a.val2 a_val2, b.val2 b_val2
13 from data a, data b
14 where a.id = b.id
15 and a.val2 = 'a'
16 and b.val2 = 'b';
17 begin
18 for rData in cData loop
19 null;
20 end loop;
21* end;
PL/SQL procedure successfully completed.
cheers -
Table with varying number of columns
Hello experts,
my issue:
I need to print a table with varying number of columns. Depending on if all cells of a certain column are initial the
whole column should disappear. Hiding is not enough.
If this columns is in the middle of the table the following columns should move left to fill the gap.
my approach: (maybe there is an easier one)
There are 4 different possible situations. My approach was to create 4 different tables with different amount of
columns. In the interface I fill the table that is really needed from the source table data and fill a flag that characteristics
the situation, possible values (1,2,3,4).
In the form I'd like to print the appropriate table depending on the situations.
my problem:
How to place all 4 possible tables lying upon each other in the form and print only the needed one depending on the flag value?
my question:
Is my approach ok? Or is there an easier one?
If it is ok. How can I solve the problem regarding printing the right table.
Thanks in advance!
HeinzHi Heinz,
You can handle it with FormCalc Script at initialization.
Suppose you have a table with name TABLE having a header HEADER and data row DATA:
TABLE-->HEADER(Cell1...Cell2...Cell3...Cell4)
--->DATA(Cell1...Cell2...Cell3...Cell4)
Suppose you want to hide Cell3 for null values, then write below code at initialization of DATA:
if(DATA[*].Cell3.rawValue eq null)
then
DATA[*].Cell3.presence = "hidden"
HEADER.Cell3.presence = "hidden"
else
DATA[*].Cell3.presence = "visible"
HEADER.Cell3.presence = "visible"
endif
Hope it would help.
Regards,
Vaibhav -
Can we create JTable with multiple rows with varying number of columns ?
Hi All,
I came across a very typical problem related to JTable. My requirement is that cells should be added dynamically to the JTable. I create a JTable with initial size of 1,7 (row, columns) size. Once the 7 columns are filled with data, a new row should be created. But the requirement is, the new row i.e. second row should have only one cell in it initially. The number of cells should increase dynamically as the data is entered. The table is automatically taking the size of its previous row when new row is added. I tried by using setColumnCount() to change the number of columns to '1' for the second row but the same is getting applied to the first row also.
So can you please help me out in this regard ? Is it possible to create a JTable of uneven size i.e. multiple rows with varying number of columns in each row ?
Thanks in Advance.Well a JTable is always going to paint the same number of columns for each row. Anything is possible if you want to rewrite the JTable UI to do this, but I wouldn't recommend it. (I certainly don't know how to do it).
A simpler solution might be to override the isCellEditable(...) method of JTable and prevent editing of column 2 until data in column 1 has been entered etc., etc. You may also want to provide a custom renderer that renderers the empty column differently, maybe with a grey color instead of a white color. -
DB view with flexible number of columns?
In my Oracle 10 I have these tables
Customer table:
id customer
1 John
2 Bob
Item table
id item_name
1 itemA
2 itemB
3 itemC
4 itemD
Purchase table:
id item_id date customer_id
1 3 070202 2
2 6 070203 5
...I'd like to create a view like this:
itemA itemB itemC itemD ...
John 3 4 0 0 ...
Bob 0 3 0 0 ...
...The view showed John purchased itemA 3 times, item B 4 times. Bob purchased itemB 3 times. This assume each customer only by one item at a time, which is a reasonable simplification of my situation.
Such a view (with variable number of columns) is needed not in our web application but also provide an understandable data source for non IT professional to use report software. If my approach of solving this problem is completely wrong, I'd also like to know what's the common practice. Thank you very much in advance!
Message was edited by:
user609663I have tried to ask the question in a way that greatly simplify current problem to make it easy for others to understand without having to explain a lot of background information and 'the situation'; it seems I over-simplified the issue to make it even not worth solving or a wrong question being asked. So here I explain the complete problem and look for advice again (be prepared, pretty long description following:). I am a purchased customer of Oracle 10 DB and I reasonably expect being considered as Oracle user looking for help rather than students trying to play smart with assigned data normalization course exercises.
We are working on a system that collects data from interview results. The questionnaires for the interviews are formatted with a coded question, followed by user's answer to the question, like the following:
Question Code Question content Answer
H001 ... 123
H002 ... 45
H003 ... 33
H004 ... 66
H005 ... 4,66
... ... ...The users answer question with a digit, for some special questions, e.g. H005, they are allowed to answer with a set of digits. There are thousands of interviews each year, the simplest solution to collect the interview answers is to use such a db table:
simple_db_table:
id H001 H002 H003 H004 H005 H006 H007
1 123 45 33 66 4 82 9
...This solution have two problems:
1. It doesn't properly store answers to questions that requre a set of digits, like H005.
2. The number of questions and their codes change from one survey to another, but the table have fixed number of columns and column names.
And two benefit:
1. With such simple table, people who use report software that directly access oracle db can creat their reports on easy-to-understand data presentation;
2. calculation based on questionnaire data is simple, e.g. get the average of H007/H009 for questionnaires that have H002 > H003 * 600 would be:
SELECT SUM(H007) / SUM(H009) FROM simple_db_table WHERE H002 > H003 * 600;Next solution we have normalized tables:
questionnaire_entry_table:
id NUMBER
questionnaire_name CHARquestionnaire_definition_table:
id NUMBER
questionnaire_id NUMBER
question_code CHAR
question_content VARHCARinterview_table:
id NUMBER
questionnaire_id NUMBER
date DATEquestionnaire data table: itv_data
id NUMBER
interview_id NUMBER
question_code CHAR
answer NUMBERWith the new structure, it just turn the problems of simple_db_table to its benefit and simple_db_table's benefit become the problem:
1. Personnel who use report creation software feel too confused to make report based on such tables, because they do not understand the normalized modeling. In our case, effective training is difficult because there will be many geographically distributed people make reports based on this structure and they have lower IT knowledge than database administrators. These personnel can make reports based on simple_db_table.
2. calculation based on questionnaire data is very difficult.
To explain 2, let's take the same example, we still wish to get the average of H007/H009 for questionnaires that have H002 > H003 * 600, my method is:
setp 1: create a view with by using:
CREATE VIEW v (id, H002, H003) AS
SELECT a.itv_id, a.H002, b.H003
FROM itv_data a, itv_data b
WHERE a.interviewee_id=b.interviewee_id
AND a.question_code='H002' AND b.question_code='H003';step 2: create a stored procedure to get the calculation result:
CREATE OR REPLACE PROCEDURE get_result (result OUT NUMBER) IS
sh007 NUMBER := 0;
sh009 NUMBER := 0;
BEGIN
SELECT SUM(H007) INTO sh007 FROM itv_data
WHERE itv_id in (SELECT id FROM v WHERE H002 > H003 * 683);
SELECT SUM(H009) INTO sh009 FROM itv_data
WHERE itv_id in (SELECT id FROM v WHERE H002 > H003 * 683);
idc := sh007/sh009;
END get_idc;As you can see the calculation become much more complex and might involve overhead.
There might be better way to calculate the result that I don't know yet. We have some 100 different formulas to calculate different results, so it's important to get them right and efficiently.
The best solution seems to me is that to create such a view from itv_data and other tables so that to reflect the same structure of simple_db_table. So here comes the question I originally asked how is it possible to create a view with flexible number of columns. I made the very simple example in my original posted message wishing to get an idea of this is possible or the way to go.
I may be taking a completely wrong approach to attack the problem, e.g. perhaps there is a simpler way to get_result from itv_table and for report creation users I should use a metadata layer on top of the normalized table structure (e.g. by using Metadata Query Language from Pentaho BI). But anyway I'd like to get some insightful ideas from the forum. Again thanks for help in advance.
Maybe you are looking for
-
German Special Characters not displayed correctly in RTF using code
Hi , In my code we are using webdynpro method WDResourceFactory.createResource( byte[] data, String resourceName,WDWebResourceType Type) Here in our code we are implementing this as ITemplateElement templateEl = wdContext.currentTemplateElement(); WD
-
Hi there, It seems that there is a serious problem with any version of Weblogic when you have to pass through a local proxy server to connect a remote website. Whenever I am trying to run the jsp program below either with Weblogic 7.0 SP2 or even wit
-
Saved search issue with custom link
Hi all, Generally we do have one opportunity search . But according to my requirement I have added one more opportunity search for separate Opportunity type . I do have 2 different view configurations for regular search/result and newly added custom
-
Accordion with defaultPanel other than 0
I have tried setting the defaultPanel option in the constructor, with little luck. I looked at the SpryAccordion.js file [1.6] and noticed this.defaultPanel = 0; , so I changed the 0 value to 1 and tested with my constructor set to 1 as well and it w
-
Photoshop Elements 12 won't launch
When I try to launch PSE12, I keep getting the sign-in window asking me to register. It is registered and I chatted with two service reps neither of whom could help me. Would appreciate any help in this matter. Is there a fix for this?