How to Call BI Query by Hyperlink
Hello,
I have a requirment to call a BI Query by Hyperlink in one of the Tabs. How is this possible?
Other Info : There are two tabs in the model.One is having queries and other need to call query via hyperlink.
Thanks and Regards,
Chakri
Hi,
One of the way in which you can achieve this is define a push button and under Action tab you can select System Action as Hyperlink and assign the Hyperlink Address of the query.
This Hyperlink address you can use the address of the webtemplate or directly use the address which you get when you press the button Execute in browser from the query designer.
Hope this helps,
Regards,
Rk.
Similar Messages
-
How to call a query from filter.
can anyone please guide me how i will call a query of query resource in filter. Or i need to access a query resource query in filter java code. I know how to right a query in java code and execute it, but i have some query in query.htm and need to call it in filter, please help me out.
<tr>
<td>name</td><td>queryStr</td><td>parameters</td>
</tr>
<tr>
<td>sampleQuery</td>
<td>Select * from revisions where dDocName = ? and dInDate =?</td>
<td>dDocName varchar
dInDate date</td>
</tr>
DataBinder params = new DataBinder();
params.putLocal("dDocName", "123456789");
params.putLocal("dInDate", "9/5/13 12:58 PM");
m_workspace.createResultSet("sampleQuery", params);
You may need to play with what date format you send into the query.
Jonathan
http://jonathanhult.com -
How to call a query from the backing bean ?
Hi all,
Another question for you guys :
I made a jspx page with an input form and a submit button.
When I click the submit button, the action my_action in my backing bean is executed.
This is the code :
public BindingContainer getBindings() {
return BindingContext.getCurrent().getCurrentBindingsEntry();
public String my_action() {
BindingContainer bindings = getBindings();
OperationBinding operationBinding = bindings.getOperationBinding("EmployeesView");
Object result = operationBinding.execute();
if (!operationBinding.getErrors().isEmpty()) {
return null;
I hoped that the query 'EmployeesView' was executed in this way, but I get the following exception :
java.lang.ClassCastException: oracle.adfinternal.view.faces.model.binding.FacesCtrlHierBinding cannot be cast to oracle.binding.OperationBinding
So how should I execute the query EmployeesView ?
Second part of the question : What if I typed the name an employee in my form, and I want to
execute a query that selects all the Employees with that name ?
How do I make a query with a variable as input in the WHERE clause ?
Thanks in advance.
Edited by: Facehugger on 7-apr-2010 11:15I'm still trying all the stuff you guys says, but still no result.
This is my backing bean :
+// the button action+
+public String my_action() {+
+// get the selected rows from the multiselect table and store the objectid's in an String array+
RowKeySet rks = graph_table.getSelectedRowKeys();
Iterator itr = rks.iterator();
Object key;
int nbr_objects = 0 , i = 0;
if (rks.size()>0) nbr_objects = rks.size();
+String[] objectid = new String[nbr_objects];+
while(itr.hasNext())
+{+
key = itr.next();
graph_table.setRowKey(key);
Object o = graph_table.getRowData();
JUCtrlHierNodeBinding rowData = (JUCtrlHierNodeBinding) o;
Row row = rowData.getRow();
+objectid[i] = row.getAttribute("Objectid").toString();+
i+;+
+}+
+// now get all the x and y values for these objectid's from the database out of the table history.+
BindingContainer bc = BindingContext.getCurrent().getCurrentBindingsEntry();
for (int j=0 ; j<nbr_objects; j+){+
+// get X and Y values for object number j+
DataPoints history = new DataPoints();
OperationBinding operationBinding = bc.getOperationBinding("retrieveHistory"); ===> operationBinding stays NULL ???+
+operationBinding.getParamsMap().put("OBJECTID", objectid[j]);+
Object retVal = operationBinding.execute();
+// ==> retVal should contain a List of all X and Y values for the provided objectid.+
+// while (retVal has values)+
+// {+
+// List_of_x_values.add(retVal.valueX);+
+// List_of_y_values.add(retVal.valueY);+
+// }+
history.add(List_of_x_values);
history.add(List_of_y_values):
+// call the soap method to do some calculations+
methodname.forecast(history);
+}+
+}+
In my application module :
public void retrieveHistory(String objectid) {
getHistory().setWhereClause("OBJECTID = '" + objectid + "'");
System.out.println("current query : "+getHistory().getQuery());
getHistory().executeQuery();
public ViewObjectImpl getHistory() {+
return (ViewObjectImpl)findViewObject("History");+
The query for the VO History : SELECT * FROM HISTORY
Please anyone ?
Edited by: Facehugger on 9-apr-2010 14:19 -
How to call a Query from widget which has mandatory variables/filter values
Dear Gurus,
I want to show data from BI query (BEX) in Wedget, which has variable/ Filter as input parameter. Please tell me how add these parameters while calling query throgh web service.
Regards,
Aslam KhanHi Aslam,
Kindly refer to Page Number 49 u2013 23rd Point and Page 50 and 51 in the SAPEnterpriseWidgetDevelopmentGuide.pdf u2013 Which explains how to pass the Import / input Parameters.
You can also refer these links u2013 [How to pass more than one value in RfcRequest ?;
[how to bind an input field with an rfc input;
Hope it helpsu2026
Regards,
Shilpa B.V -
How to call SAP query in a program
Hi experts
I have created a query in SQVI its gives a result. Now i want this query to be used in my program. Is there any FM which gets the quary name and populates the result in iternal table. So that i can use that result.
I know without query you can write using the tables you can fetch the records but i just want to explore a new way to do things. If any body done such type let me know and also give some sample code or process how to achieve it.
Regards
VijayHi Siva
My final option is that only. That you can do any how. But my intension is to learn something new way. How to do copy the query and where to inject the code is there any example in wiki or artical for that. I want to something new. Old way of creating a report program is possible i want to do this way. If some body could help me out.
@ karthik
I have generated the SAP query and i got the program but when i view the code i dont find any select statment or where storing my input data. How to identity that i did in debug mode but am not sure where it pulls the data and where it put in internal table. Can you throw some light with example code or an article.
Regards
Vijay -
How to call a BW Query from an ABAP program?
How to call a BW Query from an ABAP program?
hi
check this link
/people/durairaj.athavanraja/blog/2005/04/03/execute-bw-query-using-abap-part-i
/people/durairaj.athavanraja/blog/2005/04/03/execute-bw-query-using-abap-part-ii
/people/durairaj.athavanraja/blog/2005/12/05/execute-bw-query-using-abap-part-iii
hope this helps
cheers -
How to call the same query more than once with different selection criteria
Hi,
Please do anybody know how to solve this issue? I need to call one query with the fixed structure more than once with different selection criteria. For example. I have following data
Sales organization XX
Income 2008 Income 2009
Customer A 10 20
Customer B 30 0
Sales organization YY
Income 2008 Income 2009
Customer A 20 5
Customer B 50 10
Now, I need this. At the selection screen of query, user fill variable charakteristic "Sales organization" with interval XX - YY, than I need to generate two separate results per sales organization, one for Sales Organization XX and the second for SO YYwhich will be displayed each on separate page, where result for SO YY will be dispayed under result for SO YY. Are there some options how to do it for example in Report Designer or WAD or with programming? In Report Designer is possible to use one query more than once, but I dont know how to force each query in RD to display result only for one Sales Organization, which will be defined in selection screen.
Thank you very much
J.Hello,
thanks to all for cooperation. Finally we solved this issue with the following way..
User fill appropriate SO on the selection screen, which is defined as range. This will resulte, that selected SO are listed in report below each othe (standard behavior). Required solution we achieved with the Report Designer, we set page break under each Result row of RD. This caused, that report is divided into required part per SO, which are stated each on separate page.
J. -
How to call structure in query change mode
Hi Gurus,
How to call created structure in query change mode?
Is there any other methods?
Thanks in advance
RamuHI Ramu,
If ur structure is global then it will be available in the left panel in the structure tree, Just drag and drop into the rowns or colums. Make sure that the structure is saved as global.
Thanks
Khaja -
How to call pl/sql stored procedure in JDBC query dialogbox
Hi,
how to call pl/sql stored procedure in JDBC query dialogbox(reports 9i) .
Cheers,
Raghuplease refer : Re: problem If you have more doubts, please ask in that question.
-
How to Automate the Query Search Upon Return to the Calling Form?
Greetings Ya’ll Gurus,
Could you please share with me how to make the Query Search executed automatically each time, when database table is updated, upon return to the “Calling Form” (i.e. FormA in this posting) from the “Called Form” (i.e. FormB from here on)?
I have FormA call_form to FormB. FormB may return to FormA. FormA allows users to enter the Query parameters and perform query Search to the database table with a list of search results afterward; whereas FormB allows users to add or delete the same database table records. Both form images are as follows:
FormA:
!http://dot.state.ak.us/nreg/jtomasic/FormA_DWR_SEL.GIF!
FormA call_form to FormB by clicking PB “Daily Work Report” (see circled PB "Daily Work Report" in the above image.)
FormB Image (FormB allows users to add and delete database records):
!http://dot.state.ak.us/nreg/jtomasic/FormB_DWR.GIF!
FormB EXIT_FORM and returns to FormA (see circled PB "DWR Selection" in above image).
Currently, our users must press the PB “Search” on FormA each time to refresh the Query “Search” results after returning to FormA, and they request to have the "Search" done automatically/programmatically upon return to FormA each time when the database table is updated.
If you have programming code on this and are willing to share or if you have any suggestion or thoughts on this, it would be most greatly appreciated.
Thanks a lot & Happy Holidays!Thanks so much Andreas, and yes, your link for calling a form and passing a context is very helpful. I believe, your suggested use of the global variable for the saved database table will work for the automation of the Query Search. I am, however, not sure how to make the code and the trigger to automatically perform Query PB "Search". The code for our current "WHEN-BUTTON-PRESSED" Trigger for the PB-Search of FormA is as following:
DECLARE
alert_button NUMBER;
alert_id ALERT;
MY_WHERE VARCHAR2(2500);
MY_DIST_ID DIST.DIST_ID%TYPE := :BLK_UPDATE.DIST_ID;
MY_ORG_ID DWR.ORG_ID%TYPE := :BLK_UPDATE.ORG_ID;
MY_ACTY_ID DWR.ACTY_ID%TYPE := :BLK_UPDATE.ACTY_ID;
MY_ACTY_WORK_ID DWR.ACTY_WORK_ID%TYPE := :BLK_UPDATE.ACTY_WORK_ID;
MY_CNTY_ID DWR.CNTY_ID%TYPE := :BLK_UPDATE.CNTY_ID;
MY_ASSET_GRP_ID DWR.ASSET_GRP_ID%TYPE := :BLK_UPDATE.ASSET_GRP_ID;
MY_ASSET_ID DWR.ASSET_ID%TYPE := :BLK_UPDATE.ASSET_ID;
MY_RTE DWR.RTE%TYPE := :BLK_UPDATE.RTE;
MY_BEG_MP DWR.BEG_MP%TYPE := :BLK_UPDATE.BEG_MP;
MY_END_MP DWR.END_MP%TYPE := :BLK_UPDATE.END_MP;
MY_FROM_DATE DWR.DWR_DATE%TYPE := :BLK_CONTROL.FROM_DATE;
MY_TO_DATE DWR.DWR_DATE%TYPE := :BLK_CONTROL.TO_DATE;
MY_FLAG_OFFSYS VARCHAR2(11) := :BLK_UPDATE.FLAG_OFFSYS;
MY_FLAG_COMMENTS VARCHAR2(11) := :BLK_UPDATE.FLAG_COMMENTS;
MY_SPECIAL_EVENT_SEQ_NO SPECIAL_EVENT.SPECIAL_EVENT_SEQ_NO%TYPE := :BLK_UPDATE.SPECIAL_EVENT_DESCR;
MY_FLAG_ACCDT VARCHAR2(11) := :BLK_UPDATE.FLAG_ACCDT;
BEGIN
:blk_control.dummy_flag := 1 ;
:BLK_CONTROL.DUMMY_ERR_FLAG := 'N';
VALIDATION_SELECTION; -- Program Unit VALIDATES DWR SELECTION PARAMETERS PRIOR TO
-- PERFORMING THE SEARCH AND POPULATING THE DISPLAY BLOCK
if :blk_control.dummy_flag = 1 then
IF :BLK_CONTROL.DUMMY_ERR_FLAG = 'N' THEN
MY_WHERE := BUILD_WHERE_CLAUSE(MY_DIST_ID,
MY_ORG_ID,
MY_ACTY_ID,
MY_ACTY_WORK_ID,
MY_CNTY_ID,
MY_ASSET_GRP_ID,
MY_ASSET_ID,
MY_RTE,
MY_BEG_MP,
MY_END_MP,
MY_FROM_DATE,
MY_TO_DATE,
MY_FLAG_OFFSYS,
MY_SPECIAL_EVENT_SEQ_NO,
MY_FLAG_ACCDT,
MY_FLAG_COMMENTS);
SET_BLOCK_PROPERTY('BLK_DISPLAY', DEFAULT_WHERE, MY_WHERE);
GO_BLOCK('BLK_DISPLAY');
CLEAR_BLOCK(NO_VALIDATE);
EXECUTE_QUERY(ALL_RECORDS);
IF :BLK_DISPLAY.DWR_SEQ_NO IS NOT NULL THEN
SET_ITEM_ON_OR_OFF('BLK_CONTROL.PB_PRINT', TRUE);
ELSE
SET_ITEM_ON_OR_OFF('BLK_CONTROL.PB_PRINT', FALSE);
alert_id := FIND_ALERT('no_data_query');
IF ID_NULL(alert_id) THEN
error_msg(1000);
ELSE
set_alert_message(alert_id, 1040);
alert_button := SHOW_ALERT(alert_id);
END IF;
END IF;
GO_BLOCK('BLK_UPDATE');
GO_ITEM('BLK_CONTROL.PB_SEARCH');
END IF;
end if;
END;My questions are:
After initializing, set and/or reset the global variable for the saved database table,
do I copy the above code (i.e. the "entire" code in the "WHEN-BUTTON-PRESSED" Trigger for the PB-Search) to the WHEN-NEW-FORM-INSTANCE-trigger, or other trigger(s), of FormA to automate the Query Search whenever there is a successful database commit/save? Or
is there a simple way to activate the code in the "WHEN-BUTTON-PRESSED" Trigger for the PB-Search of FormA? Or
is there a simple way to activate the EXECUTE_QUERY(ALL_RECORDS) command in the WHEN-NEW-FORM-INSTANCE-trigger or other trigger(s) of FormA ?
Thanks and always. -
RRI? How to call ITS URL and pass field value from Bex Query.
I am doing RRI from query to webaddress,
i have defined jump(report type: webaddress and reicver report as url) from shopping cart bex query(SRM ) to webaddres.
here url is SRM ITS base link for monitoring shoppingcart(http://(hostname):(SRM port)/sap/bc/gui/sap/its/bbp_mon_sc?sap-client=200&sap-language=EN).
jump is working from portal(from bex query ivew).
but i want to pass value(shopping cart value) to above url and want to skip first screen.
i have maintained assignment detail by assigning field name against shopping cart infoobject with type url parameter, but its not directly call reciver url with given input field.
i tried the diffrent combination of url and field assignment as like below:
1: web address url:http://(hostname):(SRM port)/sap/bc/gui/sap/its/bbp_mon_sc?sap-client=200&sap-language=EN
assigned field: GS_HEADER-OBJECT_ID
but when we call reciver url from portal bex ivew, only initial screen come with page url as below:
http://(hostname):(SRM port)/sap/bc/gui/sap/its/bbp_mon_sc?sap-client=200&sap-language=EN?GS_HEADER-OBJECT_ID='selected number value'
2: web address url:http://(hostname):(SRM port)/sap(cz1TSUQlM2FBTk9OJTNhc3JtZGV2X0lTRF8wMCUzYUdxdFNqdWdMS2xyTEFEelFTNFlWTnJXRjEzdy05UnhTWXl4TW03c3AtQVRU)/bc/gui/sap/its/bbp_mon_sc/~flNUQVRFPTgzMTcuMDAyLjAxLjAx====#jump_to_selected_sc
assigned field: flNUQVRFPTgzMTcuMDAyLjAxLjAx
but when we call reciver url from portal bex ivew, only initial screen come with page url as below:
http://(hostname):(SRM port)/sap(cz1TSUQlM2FBTk9OJTNhc3JtZGV2X0lTRF8wMCUzYUdxdFNqdWdMS2xyTEFEelFTNFlWTnJXRjEzdy05UnhTWXl4TW03c3AtQVRU)/bc/gui/sap/its/bbp_mon_sc/~flNUQVRFPTgzMTcuMDAyLjAxLjAx====#jump_to_selected_sc?flNUQVRFPTgzMTcuMDAyLjAxLjAx='selected number value'
I have seen the source code of that url(inital screen and after entring the value to that screen) too.
how to call webadress(SRM ITS base shopping cart URL) with passing the one of field value of that url screen?
Thanks and regards,
Dushyant.Declare the gv_orderid in modulepool program.
And Declare the parameter as import parameter in smartform.
CALL FUNCTION lv_form
EXPORTING
* ARCHIVE_INDEX =
* ARCHIVE_INDEX_TAB =
* ARCHIVE_PARAMETERS =
* CONTROL_PARAMETERS =
* MAIL_APPL_OBJ =
* MAIL_RECIPIENT =
* MAIL_SENDER =
* OUTPUT_OPTIONS =
* USER_SETTINGS = 'X'
i_input = gv_orderid
* IMPORTING
* DOCUMENT_OUTPUT_INFO =
* JOB_OUTPUT_INFO =
* JOB_OUTPUT_OPTIONS =
* EXCEPTIONS
* FORMATTING_ERROR = 1
* INTERNAL_ERROR = 2
* SEND_ERROR = 3
* USER_CANCELED = 4
* OTHERS = 5 -
How to call store procedure in query generator
Hi All,
How to call store procedure in query generator.
Regards
Rajkumar Gupta
Edited by: Rajkumar Gupta on Dec 7, 2010 2:11 AMHi,
Please check the following threads.
How to use Stored Procedure in sap business one
How to add parameters to a stored procedure in B1 Query generator
How to execute the procedure in sap b1
Hope it helps,
Vasu Natari. -
How to call BI infocube / query in ABAP
Hi guys,
don't blame me for asking such simple questions. I am not familiar with BI, my requirement is to execute BI infocube / query and display the result in webDynpro ABAP. I know I can call BI query passing parameters and there are some web tools like RRW3_WEBRFC to call the query. What I simply want is to call a BI FM which execute query with parameters, the FM returns a internal table to me. So which FMs exist in BI to execute BI queries BEx?
ThanksHi,
As mentioned by Arun you can use the FM. Please find the below link which shows a detailed way how to use this FM
http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/f0865602-9f77-2d10-759c-fe1e0b1acb01?quicklink=index&overridelayout=true
Regards,
Raghavendra. -
How to call a TopLink Query on ADF Page Load (onload)
Hi,
I am new to ADF wants to find out how to call a TopLink Query whenever a page loads. I saw SRDemo Sample but all the queries are bound to some kind of an action method i.e. clicking on a button executes a query etc. But I need to call a toplink query on my page load. Any small sample will help.
ThanksTry this approach:
http://blogs.oracle.com/shay/2007/07/25 -
How to improve the query performance or tune query from Explain Plan
Hi
The following is my explain plan for sql query. (The plan is generated by Toad v9.7). How to fix the query?
SELECT STATEMENT ALL_ROWSCost: 4,160 Bytes: 25,296 Cardinality: 204
8 NESTED LOOPS Cost: 3 Bytes: 54 Cardinality: 1
5 NESTED LOOPS Cost: 2 Bytes: 23 Cardinality: 1
2 TABLE ACCESS BY INDEX ROWID TABLE AR.RA_CUSTOMER_TRX_ALL Cost: 1 Bytes: 13 Cardinality: 1
1 INDEX UNIQUE SCAN INDEX (UNIQUE) AR.RA_CUSTOMER_TRX_U1 Cost: 1 Cardinality: 1
4 TABLE ACCESS BY INDEX ROWID TABLE AR.HZ_CUST_ACCOUNTS Cost: 1 Bytes: 10 Cardinality: 1
3 INDEX UNIQUE SCAN INDEX (UNIQUE) AR.HZ_CUST_ACCOUNTS_U1 Cost: 1 Cardinality: 1
7 TABLE ACCESS BY INDEX ROWID TABLE AR.HZ_PARTIES Cost: 1 Bytes: 31 Cardinality: 1
6 INDEX UNIQUE SCAN INDEX (UNIQUE) AR.HZ_PARTIES_U1 Cost: 1 Cardinality: 1
10 TABLE ACCESS BY INDEX ROWID TABLE AR.RA_CUSTOMER_TRX_ALL Cost: 1 Bytes: 12 Cardinality: 1
9 INDEX UNIQUE SCAN INDEX (UNIQUE) AR.RA_CUSTOMER_TRX_U1 Cost: 1 Cardinality: 1
15 NESTED LOOPS Cost: 2 Bytes: 29 Cardinality: 1
12 TABLE ACCESS BY INDEX ROWID TABLE AR.RA_CUSTOMER_TRX_ALL Cost: 1 Bytes: 12 Cardinality: 1
11 INDEX UNIQUE SCAN INDEX (UNIQUE) AR.RA_CUSTOMER_TRX_U1 Cost: 1 Cardinality: 1
14 TABLE ACCESS BY INDEX ROWID TABLE ONT.OE_ORDER_HEADERS_ALL Cost: 1 Bytes: 17 Cardinality: 1
13 INDEX RANGE SCAN INDEX (UNIQUE) ONT.OE_ORDER_HEADERS_U2 Cost: 1 Cardinality: 1
21 FILTER
16 TABLE ACCESS FULL TABLE ONT.OE_TRANSACTION_TYPES_TL Cost: 2 Bytes: 1,127 Cardinality: 49
20 NESTED LOOPS Cost: 2 Bytes: 21 Cardinality: 1
18 TABLE ACCESS BY INDEX ROWID TABLE AR.RA_CUSTOMER_TRX_ALL Cost: 1 Bytes: 12 Cardinality: 1
17 INDEX UNIQUE SCAN INDEX (UNIQUE) AR.RA_CUSTOMER_TRX_U1 Cost: 1 Cardinality: 1
19 INDEX RANGE SCAN INDEX (UNIQUE) ONT.OE_ORDER_HEADERS_U2 Cost: 1 Bytes: 9 Cardinality: 1
23 TABLE ACCESS BY INDEX ROWID TABLE AR.RA_CUSTOMER_TRX_ALL Cost: 1 Bytes: 12 Cardinality: 1
22 INDEX UNIQUE SCAN INDEX (UNIQUE) AR.RA_CUSTOMER_TRX_U1 Cost: 1 Cardinality: 1
45 NESTED LOOPS Cost: 4,160 Bytes: 25,296 Cardinality: 204
42 NESTED LOOPS Cost: 4,150 Bytes: 23,052 Cardinality: 204
38 NESTED LOOPS Cost: 4,140 Bytes: 19,992 Cardinality: 204
34 NESTED LOOPS Cost: 4,094 Bytes: 75,850 Cardinality: 925
30 NESTED LOOPS Cost: 3,909 Bytes: 210,843 Cardinality: 3,699
26 PARTITION LIST ALL Cost: 2,436 Bytes: 338,491 Cardinality: 14,717 Partition #: 29 Partitions accessed #1 - #18
25 TABLE ACCESS BY LOCAL INDEX ROWID TABLE XLA.XLA_AE_HEADERS Cost: 2,436 Bytes: 338,491 Cardinality: 14,717 Partition #: 29 Partitions accessed #1 - #18
24 INDEX SKIP SCAN INDEX XLA.XLA_AE_HEADERS_N1 Cost: 264 Cardinality: 1,398,115 Partition #: 29 Partitions accessed #1 - #18
29 PARTITION LIST ITERATOR Cost: 1 Bytes: 34 Cardinality: 1 Partition #: 32
28 TABLE ACCESS BY LOCAL INDEX ROWID TABLE XLA.XLA_AE_LINES Cost: 1 Bytes: 34 Cardinality: 1 Partition #: 32
27 INDEX RANGE SCAN INDEX (UNIQUE) XLA.XLA_AE_LINES_U1 Cost: 1 Cardinality: 1 Partition #: 32
33 PARTITION LIST ITERATOR Cost: 1 Bytes: 25 Cardinality: 1 Partition #: 35
32 TABLE ACCESS BY LOCAL INDEX ROWID TABLE XLA.XLA_DISTRIBUTION_LINKS Cost: 1 Bytes: 25 Cardinality: 1 Partition #: 35
31 INDEX RANGE SCAN INDEX XLA.XLA_DISTRIBUTION_LINKS_N3 Cost: 1 Cardinality: 1 Partition #: 35
37 PARTITION LIST SINGLE Cost: 1 Bytes: 16 Cardinality: 1 Partition #: 38
36 TABLE ACCESS BY LOCAL INDEX ROWID TABLE XLA.XLA_EVENTS Cost: 1 Bytes: 16 Cardinality: 1 Partition #: 39 Partitions accessed #2
35 INDEX UNIQUE SCAN INDEX (UNIQUE) XLA.XLA_EVENTS_U1 Cost: 1 Cardinality: 1 Partition #: 40 Partitions accessed #2
41 PARTITION LIST SINGLE Cost: 1 Bytes: 15 Cardinality: 1 Partition #: 41
40 TABLE ACCESS BY LOCAL INDEX ROWID TABLE XLA.XLA_TRANSACTION_ENTITIES Cost: 1 Bytes: 15 Cardinality: 1 Partition #: 42 Partitions accessed #2
39 INDEX UNIQUE SCAN INDEX (UNIQUE) XLA.XLA_TRANSACTION_ENTITIES_U1 Cost: 1 Cardinality: 1 Partition #: 43 Partitions accessed #2
44 TABLE ACCESS BY INDEX ROWID TABLE GL.GL_CODE_COMBINATIONS Cost: 1 Bytes: 11 Cardinality: 1
43 INDEX UNIQUE SCAN INDEX (UNIQUE) GL.GL_CODE_COMBINATIONS_U1 Cost: 1 Cardinality: 1damorgan wrote:
Tuning is NOT about reducing the cost of i/o.
i/o is only one of many contributors to cost and only one of many contributors to waits.
Any time you would like to explore this further run this code:
SELECT 1 FROM dual
WHERE regexp_like(' ','^*[ ]*a');but not on a production box because you are going to experience an extreme tuning event with zero i/o.
And when I say "extreme" I mean "EXTREME!"
You've been warned.I think you just need a faster server.
SQL> set autotrace traceonly statistics
SQL> set timing on
SQL> select 1 from dual
2 where
3 regexp_like (' ','^*[ ]*a');
no rows selected
Elapsed: 00:00:00.00
Statistics
1 recursive calls
0 db block gets
0 consistent gets
0 physical reads
0 redo size
243 bytes sent via SQL*Net to client
349 bytes received via SQL*Net from client
1 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
0 rows processedRepeated from an Oracle 10.2.0.x instance:
SQL> SELECT DISTINCT SID FROM V$MYSTAT;
SID
310
SQL> ALTER SESSION SET EVENTS '10053 TRACE NAME CONTEXT FOREVER, LEVEL 1';
Session altered.
SQL> select 1 from dual
2 where
3 regexp_like (' ','^*[ ]*a');The session is hung. Wait a little while and connect to the database using a different session:
COLUMN STAT_NAME FORMAT A35 TRU
SET PAGESIZE 200
SELECT
STAT_NAME,
VALUE
FROM
V$SESS_TIME_MODEL
WHERE
SID=310;
STAT_NAME VALUE
DB time 9247
DB CPU 9247
background elapsed time 0
background cpu time 0
sequence load elapsed time 0
parse time elapsed 6374
hard parse elapsed time 5997
sql execute elapsed time 2939
connection management call elapsed 1660
failed parse elapsed time 0
failed parse (out of shared memory) 0
hard parse (sharing criteria) elaps 0
hard parse (bind mismatch) elapsed 0
PL/SQL execution elapsed time 95
inbound PL/SQL rpc elapsed time 0
PL/SQL compilation elapsed time 0
Java execution elapsed time 0
repeated bind elapsed time 48
RMAN cpu time (backup/restore) 0Seems to be using a bit of time for the hard parse (hard parse elapsed time). Wait a little while, then re-execute the query:
STAT_NAME VALUE
DB time 9247
DB CPU 9247
background elapsed time 0
background cpu time 0
sequence load elapsed time 0
parse time elapsed 6374
hard parse elapsed time 5997
sql execute elapsed time 2939
connection management call elapsed 1660
failed parse elapsed time 0
failed parse (out of shared memory) 0
hard parse (sharing criteria) elaps 0
hard parse (bind mismatch) elapsed 0
PL/SQL execution elapsed time 95
inbound PL/SQL rpc elapsed time 0
PL/SQL compilation elapsed time 0
Java execution elapsed time 0
repeated bind elapsed time 48
RMAN cpu time (backup/restore) 0The session is not reporting additional CPU usage or parse time.
Let's check one of the session's statistics:
SELECT
SS.VALUE
FROM
V$SESSTAT SS,
V$STATNAME SN
WHERE
SN.NAME='consistent gets'
AND SN.STATISTIC#=SS.STATISTIC#
AND SS.SID=310;
VALUE
163Not many consistent gets after 20+ minutes.
Let's take a look at the plan:
SQL> SELECT SQL_ID,CHILD_NUMBER FROM V$SQL WHERE SQL_TEXT LIKE 'select 1 from du
al%';
SQL_ID CHILD_NUMBER
04mpgrzhsv72w 0
SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY_CURSOR('04mpgrzhsv72w',0,'TYPICAL'))
select 1 from dual where regexp_like (' ','^*[ ]*a')
NOTE: cannot fetch plan for SQL_ID: 04mpgrzhsv72w, CHILD_NUMBER: 0
Please verify value of SQL_ID and CHILD_NUMBER;
It could also be that the plan is no longer in cursor cache (check v$sql_p
lan)No plan...
Let's take a look at the 10053 trace file:
Registered qb: SEL$1 0x19157f38 (PARSER)
signature (): qb_name=SEL$1 nbfros=1 flg=0
fro(0): flg=4 objn=258 hint_alias="DUAL"@"SEL$1"
Predicate Move-Around (PM)
PM: Considering predicate move-around in SEL$1 (#0).
PM: Checking validity of predicate move-around in SEL$1 (#0).
CBQT: Validity checks failed for 7uqx4guu04x3g.
CVM: Considering view merge in query block SEL$1 (#0)
CBQT: Validity checks failed for 7uqx4guu04x3g.
Subquery Unnest
SU: Considering subquery unnesting in query block SEL$1 (#0)
Set-Join Conversion (SJC)
SJC: Considering set-join conversion in SEL$1 (#0).
Predicate Move-Around (PM)
PM: Considering predicate move-around in SEL$1 (#0).
PM: Checking validity of predicate move-around in SEL$1 (#0).
PM: PM bypassed: Outer query contains no views.
FPD: Considering simple filter push in SEL$1 (#0)
FPD: Current where clause predicates in SEL$1 (#0) :
REGEXP_LIKE (' ','^*[ ]*a')
kkogcp: try to generate transitive predicate from check constraints for SEL$1 (#0)
predicates with check contraints: REGEXP_LIKE (' ','^*[ ]*a')
after transitive predicate generation: REGEXP_LIKE (' ','^*[ ]*a')
finally: REGEXP_LIKE (' ','^*[ ]*a')
apadrv-start: call(in-use=592, alloc=16344), compile(in-use=37448, alloc=42256)
kkoqbc-start
: call(in-use=592, alloc=16344), compile(in-use=38336, alloc=42256)
kkoqbc-subheap (create addr=000000001915C238)Looks like the query never had a chance to start executing - it is still parsing after 20 minutes.
I am not sure that this is a good example - the query either executes very fast, or never has a chance to start executing. But, it might still make your point physical I/O is not always the problem when performance problems are experienced.
Charles Hooper
IT Manager/Oracle DBA
K&M Machine-Fabricating, Inc.
Maybe you are looking for
-
Combine response of two business services in OSB
Scenario: I have a proxy service which ahs two business service call outs depending on the system name passed to it(e.g. 'ABC', 'XYZ') 1. If the request contains 'SysName' = 'ABC', service related to 'ABC' gets called. The response is generated. (Thi
-
Where can I buy a iPhone 1st. Generation?
Hello I want to buy a cheap, old iPhone.
-
How can I remove previous results from a process on an image
I am doing a circular edge detect and allowing the user to move the ROI and change the settings on the fly. After a change I do another edge detect and all of the previously found circular edges remain on the screen. How can I remove those?
-
hi, i am beginner, can you explain me dataguard terms switchover, failover, physical standby, logical standby , broker etc i googled, but i couldnt understand exactly thanks in advance. pa1
-
Is there how to download music directally from the ipod and save them into the ipod's library?
I don't want apps like music download pro, download lite...