HOW TO FINE TUNE QUERY
Hi,
I am having below two queries. 2nd query is taking more time & it gives time out error. Can anybody tell how to fine tune below query. Thanks.
1st Query.
SELECT EKETEBELN EKETEBELP EKETETENR EKETEINDT
EKETMENGE EKETWEMNG
INTO TABLE I_EKET
FROM EKET
WHERE EKETMENGE <> EKETWEMNG
AND
EKET~EINDT IN S_EINDT.
DESCRIBE TABLE I_EKET LINES V_ZLINES.
IF V_ZLINES > 0.
2nd Query.
SELECT EKKOEBELN EKKOAEDAT EKKOLIFNR EKPOEBELP EKPO~MATNR
EKPO~WERKS
EKPOLOEKZ EKPOELIKZ EKPOTXZ01 EKPONETPR LFA1~NAME1
INTO TABLE I_PODEL
FROM EKKO
INNER JOIN EKPO ON EKKOEBELN = EKPOEBELN
INNER JOIN LFA1 ON EKKOLIFNR = LFA1LIFNR
FOR ALL ENTRIES IN I_EKET
WHERE EKKO~EBELN = I_EKET-EBELN AND
EKPO~EBELP = I_EKET-EBELP AND
EKPO~MATNR IN S_MATNR AND
EKPO~WERKS IN S_WERKS AND
EKPO~WERKS NE 'W001' AND
EKKO~EKORG = P_EKORG AND
EKKO~LIFNR IN S_LIFNR AND
EKKO~LOEKZ NE 'X' AND
EKPO~LOEKZ NE 'S' AND
EKPO~ELIKZ NE 'X' AND
EKPO~LOEKZ NE 'L' AND
EKKO~AEDAT IN S_AEDAT.
ELSE.
WRITE 'No POs found for the selection criteria!'.
ENDIF.
Not the right forum to ask this question.
VJ
Similar Messages
-
How to fine tune a software instrument
Can anyone tell me how to fine-tune a software instrument that's a little sharp for my audio track? Is there an easy way to do that?
Which instrument? Here it is for the EXS24 II.
-
How to fine tune your GUI?
Hello!
I am pretty new at Java and i have search for information about how to fine tune your GUI but have not found anything.
Last time when i wrote a program with a GUI I manually placed out all the widgets. This time I was thinking to give the layotmanager another go. But when I do I cant seem to easly place things exactly where I whant.
For instance in this code, all my buttons are to the left in the boarder layout north part.
I whant to learn:
How do I move all the buttons to the right, little further down, etcetera to my specifications
Please if someone could provide me a link to a website, tip on what I need to search for. So I can learn how to do this when you mix diffrent layoutmanager in one GUI.
Example of my code:
//Import java library
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionListener;
public class View_Inlupp2 {
//*****GUI Components
//Menu File Items
private JMenuItem New = new JMenuItem("New");
private JMenuItem Open = new JMenuItem("Open");
private JMenuItem Save = new JMenuItem("Save");
private JMenuItem Save_As = new JMenuItem("Save as");
//Menu Operations Items
private JMenuItem Find_Route = new JMenuItem("Find Route");
private JMenuItem Show_Connections = new JMenuItem("Show Connections");
private JMenuItem New_Place = new JMenuItem("New Place");
private JMenuItem New_Connection = new JMenuItem("New Connection");
private JMenuItem Change_Connection = new JMenuItem("Change Connection");
//Top field
private JButton Find_RouteBtn = new JButton("Find Route");
private JButton Show_ConnectionsBtn = new JButton("Show Connections");
private JButton New_PlaceBtn = new JButton("New Place");
private JButton New_ConnectionBtn = new JButton("New Connection");
private JButton Change_ConnectionBtn = new JButton("Change Connection");
//Left side
//Center
public View_Inlupp2() {
//Create and show the GUI.
createAndShowGUI();
//**********GUI Structure
private JPanel createContentPane() {
//Create the JPanel where we will put everything on
JPanel totalGUI = new JPanel();
//Set totalGui to have a BorderLayout with a horizontal
//gap of 10 and a vertical gap of 10 between each widget
totalGUI.setLayout(new BorderLayout(10, 10));
//*****Top Field
//Create a holder for the buttons with a BoxLayout.LINE_AXIS
JPanel top = new JPanel();
top.setLayout(new BoxLayout(top, BoxLayout.LINE_AXIS));
top.add(Find_RouteBtn);
top.add(Show_ConnectionsBtn);
top.add(New_PlaceBtn);
top.add(New_ConnectionBtn);
top.add(Change_ConnectionBtn);
//*****Put our GUI together and add all the widgets to our totalGUI
totalGUI.add(top, BorderLayout.NORTH);
totalGUI.setOpaque(true);
return totalGUI;
private JMenuBar createMenuBar() {
//Create a menuBar
JMenuBar menuBar = new JMenuBar();
//Create menus
JMenu File = new JMenu("File");
JMenu Operations = new JMenu("Operations");
//Add menus to menuBar
menuBar.add(File);
menuBar.add(Operations);
//Add menuItems to the File menu
File.add(New);
File.add(Open);
File.add(Save);
File.add(Save_As);
//Add menuItems to the Operations menu
Operations.add(Find_Route);
Operations.add(Show_Connections);
Operations.add(New_Place);
Operations.add(New_Connection);
Operations.add(Change_Connection);
return menuBar;
//**********Create the window frame
//Create the frame and add the created content pane.
private void createAndShowGUI() {
JFrame.setDefaultLookAndFeelDecorated(true); //The program look the same on Windows, Mac and Linux
JFrame frame = new JFrame("Inlupp2");
//Set the ContentPane, menuBar, and the settings for our window
frame.setContentPane(createContentPane());
frame.setJMenuBar(createMenuBar());
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(1024, 640);
//frame.setResizable(false);
frame.setVisible(true);
//**********Interaction
//Add the ActionListener passed by the Controller to each of the buttons
public void buttonActionListeners(ActionListener al) {
}//End buttonActionListener
}//End classFirst of all, learn and use proper Java naming conventions. All text books, tutorial and code examples on the forums use these naming conventions. So don't make up your own. Variable names should NOT start with an upper case character.
By default a JPanel uses a FlowLayout. Read the API to learn how to change the default left alignment to center or right.
If you want extra space around a panel you can use an EmptyBorder.
Both of these topics are covered in the Swing tutorial and you've been given the link to the tutorial in the past.
Also, the code you posted is not executable so we can't see the problems you attempt to descripe.
If you need further help then you need to create a [Short, Self Contained, Compilable and Executable, Example Program (SSCCE)|http://sscce.org], that demonstrates the incorrect behaviour. -
Hi , I would like to ask the expert here..how could i fine tune the below query..now it return data within 60 seconds. however my client require the data should return <5 second
SELECT DECODE (CURR.START_DATE, '', PREV.START_DATE, CURR.START_DATE) START_DATE,
DECODE (CURR.START_HOUR, '', PREV.START_HOUR, CURR.START_HOUR) START_HOUR,
DECODE (CURR.IN_PARTNER, '', PREV.IN_PARTNER, CURR.IN_PARTNER) IN_PARTNER,
DECODE (CURR.OUT_PARTNER, '', PREV.OUT_PARTNER, CURR.OUT_PARTNER) OUT_PARTNER,
DECODE (CURR.SUBSCRIBER_TYPE, '', PREV.SUBSCRIBER_TYPE, CURR.SUBSCRIBER_TYPE) SUBSCRIBER_TYPE,
DECODE (CURR.TRAFFIC_TYPE, '', PREV.TRAFFIC_TYPE, CURR.TRAFFIC_TYPE) TRAFFIC_TYPE,
DECODE (CURR.EVENT_TYPE, '', PREV.EVENT_TYPE, CURR.EVENT_TYPE) EVENT_TYPE,
DECODE (CURR.INTERVAL_PERIOD, '', PREV.INTERVAL_PERIOD, CURR.INTERVAL_PERIOD) INTERVAL_PERIOD,
--DECODE (CURR.THRESHOLD, '', PREV.THRESHOLD, CURR.THRESHOLD) THRESHOLD,
DECODE (CURR.CALLED_NO_GRP, '', PREV.CALLED_NO_GRP, CURR.CALLED_NO_GRP) CALLED_NO_GRP,
SUM (DECODE (CURR.EVENT_COUNT, '', 0, CURR.EVENT_COUNT)) EVENT_COUNT,
--SUM (DECODE (CURR.EVENT_DURATION, '', 0, CURR.EVENT_DURATION)) EVENT_DURATION,
--SUM (DECODE (CURR.DATA_VOLUME, '', 0, CURR.DATA_VOLUME)) DATA_VOLUME,
--AVG (DECODE (CURR.AVERAGE_DURATION, '', 0, CURR.AVERAGE_DURATION)) AVERAGE_DURATION,
SUM (DECODE (PREV.EVENT_COUNT_PREV, '', 0, PREV.EVENT_COUNT_PREV)) EVENT_COUNT_PREV,
--SUM ( DECODE (PREV.EVENT_DURATION_PREV, '', 0, PREV.EVENT_DURATION_PREV)) EVENT_DURATION_PREV,
--SUM (DECODE (PREV.DATA_VOLUME_PREV, '', 0, PREV.DATA_VOLUME_PREV)) DATA_VOLUME_PREV,
--AVG ( DECODE (PREV.AVERAGE_DURATION_PREV, '', 0, PREV.AVERAGE_DURATION_PREV)) AVERAGE_DURATION_PREV,
ABS ( SUM (DECODE (CURR.EVENT_COUNT, '', 0, CURR.EVENT_COUNT)) - SUM ( DECODE (PREV.EVENT_COUNT_PREV, '', 0, PREV.EVENT_COUNT_PREV))) EVENT_COUNT_DIFF
FROM ------------------------------- CURR
(SELECT START_DATE,
START_HOUR,
IN_PARTNER,
OUT_PARTNER,
SUBSCRIBER_TYPE,
TRAFFIC_TYPE,
EVENT_TYPE,
--rd_thr.param_value THRESHOLD,
rd.param_value INTERVAL_PERIOD,
CALLED_NO_GRP,
--SUM (DATA_VOLUME) AS DATA_VOLUME,
--SUM (EVENT_DURATION) AS EVENT_DURATION,
--DECODE ( SUM (NVL (EVENT_COUNT / 1000000, 0)), 0, 0, ROUND ( SUM (EVENT_DURATION / 1000000) / SUM (NVL (EVENT_COUNT / 1000000, 0)), 2)) AS AVERAGE_DURATION,
SUM (EVENT_COUNT) AS EVENT_COUNT
FROM MSC_OUT_AGG,
raid_t_parameters rd,
raid_t_parameters rd_min,
raid_t_parameters rd_max,
raid_t_parameters rd_thr
WHERE TRUNC (SYSDATE - TO_DATE (START_DATE, 'YYYYMMDD')) <= rd_min.param_value
AND rd_min.param_id = 'histMD_IN_MSC'
AND rd_min.param_id2 = 'DASHBOARD_THRESHOLD_MIN'
AND rd.param_id = 'histMD_IN_MSC'
AND rd.param_id2 = 'INTERVAL_PERIOD'
AND rd_max.param_id = 'histMD_IN_MSC'
AND rd_max.param_id2 = 'DASHBOARD_THRESHOLD_MAX'
AND rd_thr.param_id = 'histMD_IN_MSC'
AND rd_thr.param_id2 = 'PER_THRESHOLD_W'
AND TO_DATE (START_DATE, 'YYYYMMDD') < SYSDATE - rd_max.param_value
AND SOURCE = 'MD_IN_MSC_HUA'
GROUP BY START_DATE,
START_HOUR,
IN_PARTNER,
OUT_PARTNER,
SUBSCRIBER_TYPE,
TRAFFIC_TYPE,
EVENT_TYPE,
rd.param_value,
CALLED_NO_GRP,
rd_thr.param_value
) CURR
FULL OUTER JOIN
---------------------------------- PREV --------------------------
SELECT TO_CHAR ( TRUNC ( rd.param_value + TO_DATE (START_DATE, 'YYYYMMDD')), 'YYYYMMDD') START_DATE,
START_HOUR,
IN_PARTNER,
OUT_PARTNER,
SUBSCRIBER_TYPE,
TRAFFIC_TYPE,
EVENT_TYPE,
rd.param_value INTERVAL_PERIOD,
CALLED_NO_GRP,
--rd_thr.param_value THRESHOLD,
SUM (EVENT_COUNT) AS EVENT_COUNT_PREV
--SUM (EVENT_DURATION) AS EVENT_DURATION_PREV,
--DECODE ( SUM (NVL (EVENT_COUNT / 1000000, 0)), 0, 0, ROUND ( SUM (EVENT_DURATION / 1000000) / SUM (NVL (EVENT_COUNT / 1000000, 0)), 2)) AS AVERAGE_DURATION_PREV,
--SUM (DATA_VOLUME) AS DATA_VOLUME_PREV
FROM MSC_OUT_AGG,
raid_t_parameters rd,
raid_t_parameters rd_min,
raid_t_parameters rd_max,
raid_t_parameters rd_thr
WHERE TRUNC ( SYSDATE - TRUNC ( rd.param_value + TO_DATE (START_DATE, 'YYYYMMDD'))) <= rd_min.param_value
AND rd.param_id = 'histMD_IN_MSC'
AND rd.param_id2 = 'INTERVAL_PERIOD'
AND rd_min.param_id = 'histMD_IN_MSC'
AND rd_min.param_id2 = 'DASHBOARD_THRESHOLD_MIN'
AND rd_max.param_id = 'histMD_IN_MSC'
AND rd_max.param_id2 = 'DASHBOARD_THRESHOLD_MAX'
AND rd_thr.param_id = 'histMD_IN_MSC'
AND rd_thr.param_id2 = 'PER_THRESHOLD_W'
AND TRUNC ( rd.param_value + TO_DATE (START_DATE, 'YYYYMMDD')) < SYSDATE - rd_max.param_value
AND SOURCE = 'MD_IN_MSC_HUA'
GROUP BY TO_CHAR ( TRUNC ( rd.param_value + TO_DATE (START_DATE, 'YYYYMMDD')), 'YYYYMMDD'),
START_HOUR,
IN_PARTNER,
OUT_PARTNER,
SUBSCRIBER_TYPE,
TRAFFIC_TYPE,
EVENT_TYPE,
rd.param_value,
CALLED_NO_GRP,
rd_thr.param_value
) PREV
-------------------------- join ------------------
ON ( CURR.START_DATE = PREV.START_DATE
AND CURR.START_HOUR = PREV.START_HOUR
AND CURR.IN_PARTNER = PREV.IN_PARTNER
AND CURR.OUT_PARTNER = PREV.OUT_PARTNER
AND CURR.SUBSCRIBER_TYPE = PREV.SUBSCRIBER_TYPE
AND CURR.TRAFFIC_TYPE = PREV.TRAFFIC_TYPE
AND CURR.INTERVAL_PERIOD = PREV.INTERVAL_PERIOD
--AND CURR.THRESHOLD = PREV.THRESHOLD
AND CURR.EVENT_TYPE = PREV.EVENT_TYPE
AND CURR.CALLED_NO_GRP = PREV.CALLED_NO_GRP)
GROUP BY DECODE (CURR.START_DATE, '', PREV.START_DATE, CURR.START_DATE),
DECODE (CURR.START_HOUR, '', PREV.START_HOUR, CURR.START_HOUR),
DECODE (CURR.IN_PARTNER, '', PREV.IN_PARTNER, CURR.IN_PARTNER),
DECODE (CURR.OUT_PARTNER, '', PREV.OUT_PARTNER, CURR.OUT_PARTNER),
DECODE (CURR.SUBSCRIBER_TYPE, '', PREV.SUBSCRIBER_TYPE, CURR.SUBSCRIBER_TYPE),
DECODE (CURR.TRAFFIC_TYPE, '', PREV.TRAFFIC_TYPE, CURR.TRAFFIC_TYPE),
DECODE (CURR.INTERVAL_PERIOD, '', PREV.INTERVAL_PERIOD, CURR.INTERVAL_PERIOD),
--DECODE (CURR.THRESHOLD, '', PREV.THRESHOLD, CURR.THRESHOLD),
DECODE (CURR.EVENT_TYPE, '', PREV.EVENT_TYPE, CURR.EVENT_TYPE),
DECODE (CURR.CALLED_NO_GRP, '', PREV.CALLED_NO_GRP, CURR.CALLED_NO_GRP);
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------I changed to query as below, however the performance not much difference compare to original
WITH CURR AS
SELECT /*+ MATERIALIZE */ START_DATE,
START_HOUR,
IN_PARTNER,
OUT_PARTNER,
SUBSCRIBER_TYPE,
TRAFFIC_TYPE,
EVENT_TYPE,
--rd_thr.param_value THRESHOLD,
rd.param_value INTERVAL_PERIOD,
CALLED_NO_GRP,
--SUM (DATA_VOLUME) AS DATA_VOLUME,
--SUM (EVENT_DURATION) AS EVENT_DURATION,
--DECODE ( SUM (NVL (EVENT_COUNT / 1000000, 0)), 0, 0, ROUND ( SUM (EVENT_DURATION / 1000000) / SUM (NVL (EVENT_COUNT / 1000000, 0)), 2)) AS AVERAGE_DURATION,
SUM (EVENT_COUNT) AS EVENT_COUNT
FROM MSC_OUT_AGG,
raid_t_parameters rd,
raid_t_parameters rd_min,
raid_t_parameters rd_max,
raid_t_parameters rd_thr
WHERE TRUNC (SYSDATE - TO_DATE (START_DATE, 'YYYYMMDD')) <= rd_min.param_value
AND rd_min.param_id = 'histMD_IN_MSC'
AND rd_min.param_id2 = 'DASHBOARD_THRESHOLD_MIN'
AND rd.param_id = 'histMD_IN_MSC'
AND rd.param_id2 = 'INTERVAL_PERIOD'
AND rd_max.param_id = 'histMD_IN_MSC'
AND rd_max.param_id2 = 'DASHBOARD_THRESHOLD_MAX'
AND rd_thr.param_id = 'histMD_IN_MSC'
AND rd_thr.param_id2 = 'PER_THRESHOLD_W'
AND TO_DATE (START_DATE, 'YYYYMMDD') < SYSDATE - rd_max.param_value
AND SOURCE = 'MD_IN_MSC_HUA'
GROUP BY START_DATE,
START_HOUR,
IN_PARTNER,
OUT_PARTNER,
SUBSCRIBER_TYPE,
TRAFFIC_TYPE,
EVENT_TYPE,
rd.param_value,
CALLED_NO_GRP,
rd_thr.param_value
), PREV AS
SELECT /*+ MATERIALIZE */ TO_CHAR ( TRUNC ( rd.param_value + TO_DATE (START_DATE, 'YYYYMMDD')), 'YYYYMMDD') START_DATE,
START_HOUR,
IN_PARTNER,
OUT_PARTNER,
SUBSCRIBER_TYPE,
TRAFFIC_TYPE,
EVENT_TYPE,
rd.param_value INTERVAL_PERIOD,
CALLED_NO_GRP,
--rd_thr.param_value THRESHOLD,
SUM (EVENT_COUNT) AS EVENT_COUNT_PREV
--SUM (EVENT_DURATION) AS EVENT_DURATION_PREV,
--DECODE ( SUM (NVL (EVENT_COUNT / 1000000, 0)), 0, 0, ROUND ( SUM (EVENT_DURATION / 1000000) / SUM (NVL (EVENT_COUNT / 1000000, 0)), 2)) AS AVERAGE_DURATION_PREV,
--SUM (DATA_VOLUME) AS DATA_VOLUME_PREV
FROM MSC_OUT_AGG,
raid_t_parameters rd,
raid_t_parameters rd_min,
raid_t_parameters rd_max,
raid_t_parameters rd_thr
WHERE TRUNC ( SYSDATE - TRUNC ( rd.param_value + TO_DATE (START_DATE, 'YYYYMMDD'))) <= rd_min.param_value
AND rd.param_id = 'histMD_IN_MSC'
AND rd.param_id2 = 'INTERVAL_PERIOD'
AND rd_min.param_id = 'histMD_IN_MSC'
AND rd_min.param_id2 = 'DASHBOARD_THRESHOLD_MIN'
AND rd_max.param_id = 'histMD_IN_MSC'
AND rd_max.param_id2 = 'DASHBOARD_THRESHOLD_MAX'
AND rd_thr.param_id = 'histMD_IN_MSC'
AND rd_thr.param_id2 = 'PER_THRESHOLD_W'
AND TRUNC ( rd.param_value + TO_DATE (START_DATE, 'YYYYMMDD')) < SYSDATE - rd_max.param_value
AND SOURCE = 'MD_IN_MSC_HUA'
GROUP BY TO_CHAR ( TRUNC ( rd.param_value + TO_DATE (START_DATE, 'YYYYMMDD')), 'YYYYMMDD'),
START_HOUR,
IN_PARTNER,
OUT_PARTNER,
SUBSCRIBER_TYPE,
TRAFFIC_TYPE,
EVENT_TYPE,
rd.param_value,
CALLED_NO_GRP,
rd_thr.param_value
SELECT /*+ USE_HASH(T1 T2) */ DECODE (CURR.START_DATE, '', PREV.START_DATE, CURR.START_DATE) START_DATE,
DECODE (CURR.START_HOUR, '', PREV.START_HOUR, CURR.START_HOUR) START_HOUR,
DECODE (CURR.IN_PARTNER, '', PREV.IN_PARTNER, CURR.IN_PARTNER) IN_PARTNER,
DECODE (CURR.OUT_PARTNER, '', PREV.OUT_PARTNER, CURR.OUT_PARTNER) OUT_PARTNER,
DECODE (CURR.SUBSCRIBER_TYPE, '', PREV.SUBSCRIBER_TYPE, CURR.SUBSCRIBER_TYPE) SUBSCRIBER_TYPE,
DECODE (CURR.TRAFFIC_TYPE, '', PREV.TRAFFIC_TYPE, CURR.TRAFFIC_TYPE) TRAFFIC_TYPE,
DECODE (CURR.EVENT_TYPE, '', PREV.EVENT_TYPE, CURR.EVENT_TYPE) EVENT_TYPE,
DECODE (CURR.INTERVAL_PERIOD, '', PREV.INTERVAL_PERIOD, CURR.INTERVAL_PERIOD) INTERVAL_PERIOD,
--DECODE (CURR.THRESHOLD, '', PREV.THRESHOLD, CURR.THRESHOLD) THRESHOLD,
DECODE (CURR.CALLED_NO_GRP, '', PREV.CALLED_NO_GRP, CURR.CALLED_NO_GRP) CALLED_NO_GRP,
SUM (DECODE (CURR.EVENT_COUNT, '', 0, CURR.EVENT_COUNT)) EVENT_COUNT,
--SUM (DECODE (CURR.EVENT_DURATION, '', 0, CURR.EVENT_DURATION)) EVENT_DURATION,
--SUM (DECODE (CURR.DATA_VOLUME, '', 0, CURR.DATA_VOLUME)) DATA_VOLUME,
--AVG (DECODE (CURR.AVERAGE_DURATION, '', 0, CURR.AVERAGE_DURATION)) AVERAGE_DURATION,
SUM (DECODE (PREV.EVENT_COUNT_PREV, '', 0, PREV.EVENT_COUNT_PREV)) EVENT_COUNT_PREV,
--SUM ( DECODE (PREV.EVENT_DURATION_PREV, '', 0, PREV.EVENT_DURATION_PREV)) EVENT_DURATION_PREV,
--SUM (DECODE (PREV.DATA_VOLUME_PREV, '', 0, PREV.DATA_VOLUME_PREV)) DATA_VOLUME_PREV,
--AVG ( DECODE (PREV.AVERAGE_DURATION_PREV, '', 0, PREV.AVERAGE_DURATION_PREV)) AVERAGE_DURATION_PREV,
ABS ( SUM (DECODE (CURR.EVENT_COUNT, '', 0, CURR.EVENT_COUNT)) - SUM ( DECODE (PREV.EVENT_COUNT_PREV, '', 0, PREV.EVENT_COUNT_PREV))) EVENT_COUNT_DIFF
FROM CURR
FULL OUTER JOIN
PREV
ON ( CURR.START_DATE = PREV.START_DATE
AND CURR.START_HOUR = PREV.START_HOUR
AND CURR.IN_PARTNER = PREV.IN_PARTNER
AND CURR.OUT_PARTNER = PREV.OUT_PARTNER
AND CURR.SUBSCRIBER_TYPE = PREV.SUBSCRIBER_TYPE
AND CURR.TRAFFIC_TYPE = PREV.TRAFFIC_TYPE
AND CURR.INTERVAL_PERIOD = PREV.INTERVAL_PERIOD
--AND CURR.THRESHOLD = PREV.THRESHOLD
AND CURR.EVENT_TYPE = PREV.EVENT_TYPE
AND CURR.CALLED_NO_GRP = PREV.CALLED_NO_GRP)
GROUP BY DECODE (CURR.START_DATE, '', PREV.START_DATE, CURR.START_DATE),
DECODE (CURR.START_HOUR, '', PREV.START_HOUR, CURR.START_HOUR),
DECODE (CURR.IN_PARTNER, '', PREV.IN_PARTNER, CURR.IN_PARTNER),
DECODE (CURR.OUT_PARTNER, '', PREV.OUT_PARTNER, CURR.OUT_PARTNER),
DECODE (CURR.SUBSCRIBER_TYPE, '', PREV.SUBSCRIBER_TYPE, CURR.SUBSCRIBER_TYPE),
DECODE (CURR.TRAFFIC_TYPE, '', PREV.TRAFFIC_TYPE, CURR.TRAFFIC_TYPE),
DECODE (CURR.INTERVAL_PERIOD, '', PREV.INTERVAL_PERIOD, CURR.INTERVAL_PERIOD),
--DECODE (CURR.THRESHOLD, '', PREV.THRESHOLD, CURR.THRESHOLD),
DECODE (CURR.EVENT_TYPE, '', PREV.EVENT_TYPE, CURR.EVENT_TYPE),
DECODE (CURR.CALLED_NO_GRP, '', PREV.CALLED_NO_GRP, CURR.CALLED_NO_GRP); -
How to fine tune ROIs of LEDs of a camera image?
Hi,
I use NI Smart Camera and NI Vision Builder 2012 for measuring HUE values of the LEDs. I can manually adjust the ROI of each LED. Sometimes mechanics move a bit and my ROIs are then tilted/off from LED and measurement results are staring to fail. I am wondering how to set vision builder/camera to automatically fine tune ROIs when needed? I attach a sample picture of LEDs. There is also situation where I manually fine tune LED D79's ROI.
BR,
Jick
Attachments:
LEDs.png 37 KBThanks for the example. There is still one open question: how do I detect if one LED is OFF? For example if one LED is missing Detect Objects 1 step finds one object less but how can I know which LED is missing/off? How about creating Detect Object step for each LED separately and if there is no LED on measure colors step just fails? I attach my suggestion here.
BR,
Jick
Attachments:
Adjust_ROIs.vbai 114 KB
camera_simulation_image2.png 26 KB -
Nw2004s Java - IBM SDK - How to fine tune
Hello,
Can you anyone let me know about tunning IBM SDK parameters on Linux using configtool ?
We have already set some parameters as per SAP Note for IBM SDK.
Still not sure, how to set the following in the configtool
1. HeapDumppath
2. HeapDumpon CtrlBreak
If I XX:HeapDumpPath=/usr/sap/dumps , JVM is not starting. The same setting Sun JAVA JDK on Solaris is working fine.
I believe the syntax is different for IBM SDK than Sun JDK.
Thanks in Advance for your help !
kandyHi,
Please check the following SAP Notes:
Note 1004255 - How to create a full HPROF heap dump of J2EE Engine 6.40/7.0
Note 1053495 - Settings to get a heapdump with IBM JVM on AIX
Note 710146 - How to change J2EE Engine JVM Settings
Hope That helps.
Regards,
Siddhesh -
How to fine-tune KM Navgation iView
Hi Experts,
We have 6-7 KM navigation iviews on the homepage, all rendering xml news from different folders of KM.
Now we have discovered that the maximum time of page loading is occupied by these navigation iviews(If we make these navigation iviews invisible, then the loading time is almost half).
Please suggest some ways to tune these Navigation iviews so that the load time of homepage should be less.
Thanks,
AnkitHi Ankit
This is a classic issue - the performance for the KM Navigation Iview is very poor, and I would never suggest you to put more 2-3 KM Nav Iviews on the same page. And I would not recommend you to put any KM Nav Iviews on a frontpage or any other important or content-heavy page.
You have the following options:
1) Limit the number of KM Nav Iviews on the page in question.
2) Set Cache Level to Shared (server side caching) even though this feature is not working consistently in the SAP Portal.
3) Configure the search iview (search component set and search options set) according to the Last10Documents scenario: http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/45bcc1c0-0d01-0010-1094-fe7993416ea6
4) Contact a developer and let him code a servlet used to render pure html according to your needs. Show him this introduction: http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/3059b588-e19b-2910-7d8f-9b689a066e3c
Best regards,
Martin Søgaard -
How to fine tune the performnce of Adobe - WebDynpro Java
Hi Experts,
Upon deploying an Adobe - WebDynpr Java application on my local NWDW machine having 2 GB RAM, it takes around 10 minutes by watch before the PDF form appears on the screen with the populated data.
This is really depressing as the client will surely not accept this.
Any tips on fine tuning the performance of Adobe online applications?
Regards,
Shobhithi,
when the J2EE engine is running...
goto task manager....
see performance.
if the memory usage is more than the memory you have installed,
that means you are using virtual memory...(ie. hard disk as RAM)
try shutting down any excess processes which you are not using.
(CAUTION: shut down only those processes which you know)
Summary is:-
check if you are on virtual memory.
because if you are using virtual memory....
you are falling short of RAM.
our server also has 2 GB RAM, but it works fine(including Interactive forms)
regards,
-ag -
Need to fine tune Query ....
Hi...
SELECT
a.id, a.fname, a.lname
FROM
a inner join b ON a.id = b.id
WHERE
a.del_status = 'N' AND a.type = 2
GROUP BY
a.id, a.name, a.lname
if i run this Query it take s one sec
SELECT
a.id, a.fname, a.lname
FROM
a inner join b ON a.id = b.id
WHERE
a.del_status = 'N' AND a.type = 2 and b.status =1
GROUP BY
a.id, a.name, a.lname
if i add status it takes 7 Min
i cant found the reason
this is the explain plan for second query
Operation Object Name Rows Bytes Cost Object Node In/Out PStart PStop
SELECT STATEMENT Optimizer Mode=CHOOSE 73 92
SORT GROUP BY 73 3 K 92
NESTED LOOPS 73 3 K 88
TABLE ACCESS FULL NOTIFY_SOURCE_DETAIL 73 1 K 15
TABLE ACCESS BY INDEX ROWID MEMBER 1 20 1
INDEX UNIQUE SCAN I_MEMBER_2 2
Thanks,Hi
If you have an index on the b.id then Oracle does not have to read the actual data in the first query.
But when you refer to status, then Oracle will have to retrieve the row and check that field.
pls. supply BOTH explain plans
regards
Mette -
Hi DBA,
i am new to this field.
i can see from EM some sql are taking 8%- 95% of Db . i get the SQL_ID from the Em how to fine tune this?
also can you please help me out with some standard recommendations to run the DB in best manner.
Thanks in advance.As a generic recommendation for slow sql queries, read the following thread ,
When your query takes too long ...
HTH
Aman.... -
Hi All,
I need to fine tune my select query . I am giving a sample query which is model of my Query .
Sample Tables: Employee, Manager, Department
Select a.employee_name,a.employee_age,decode(a.employee_status,'Y','Promoted','Still in Progress'), NVL(b.employee_details , 0),c.department_name from employee a, manager b , department c where a.employee_id =b.employee_id(+) and a.employee_id = c.employee_id(+) and c.department_status in ('Y',A') order by a.employee_joining_date
This is a sample query. In my query which should be fine tune has lot of decode and nvl functions. This query is passed to oracle as string from Java .It takes 2 seconds but it should be taking only fraction of seconds..
What shall i do?
Shall i create materialise views or a function in oracle with return value as sys_refucursor to Java code. does function based index should be used in where clause only. If so what should i do to minimise decode and nvl functions.Please help me>
Select a.employee_name,a.employee_age,decode(a.employee_status,'Y','Promoted','Still in Progress'),
NVL(b.employee_details , 0),c.department_name from employee a, manager b , department c
where a.employee_id =b.employee_id(+) and a.employee_id = c.employee_id(+) and c.department_status
in ('Y',A') order by a.employee_joining_date I'm wondering why an "employee_details" field is 0 - doesn't make much sense to me.
Also, the (+) syntax is deprecated - use standard ANSI join syntax instead (Mr. Google is your friend).
This is a sample query. In my query which should be fine tune has lot of decode and nvl functions.
This query is passed to oracle as string from Java .It takes 2 seconds but it should be taking only fraction of seconds..Why should it take only a fraction of a second? How do you know this for a fact? TKProf should be
able to tell you what's happening.
What shall i do?
Shall i create materialise views or a function in oracle with return value as sys_refucursor to Java code.
does function based index should be used in where clause only. If so what should i do to minimise
decode and nvl functions.Please help meSounds to me like you're thrashing around desperately in search of a "fancy" solution.
Read some performance books on Oracle - you don't mention your version of Oracle
or your OS, so it's difficult to help with that.
Christopher Lawson's book is an excellent and very readable into to Oracle performance.
Also, Oracle Performance 101 - as well as anything by Tom Kyte. More advanced stuff is
available from Jonathan Lewis and Christian Antognini. Also, take a look at the FAQ for
this group (as recommended by the other poster) and don't forget the docco*
or (short version) RTFM*.
HTH,
Paul... -
Hi,
How i can tune complex query?
what are the step to follow.A very good one
http://www.dba-oracle.com/art_sql_tune.htm
Not particularly. At best it's a rambling collection of general principles where you have to work out which bits are right, out of date, or wrong. (Or - like the bit about Oracle 7 - so far out of date as to be a waste of space).
How much are you going to trust an article about SQL tuning that manages to say the following:
<i>
For example, a simple query such as “What students received an A last semester?” can be written in three ways, as shown in below, each returning an identical result.
</i>
A nested query:
SELECT *
FROM STUDENT
WHERE
student_id =
(SELECT student_id
FROM REGISTRATION
WHERE
grade = 'A'
A correlated subquery:
SELECT *
FROM STUDENT
WHERE
0 <
(SELECT count(*)
FROM REGISTRATION
WHERE
grade = 'A'
AND
student_id = STUDENT.student_id
);Far from returning identical results, the first one returns multiple copies of each student's information, one row for each 'A' they got (along with the registration columns); the second will fail with Oracle error "ORA-01427: single-row subquery returns more than one row" if there is more than one 'A' in the entire registration table; and the third query returns the required result.
Funnily enough, the most "intuitive" query - which is the one with an existence subquery - is not mentioned.
The OP would be far better off starting with the Performance Tuning Guide from http://tahiti.oracle.com
Regards
Jonathan Lewis
http://jonathanlewis.wordpress.com
http://www.jlcomp.demon.co.uk
"The greatest enemy of knowledge is not ignorance,
it is the illusion of knowledge." Stephen Hawking. -
Dear All,
I am using 11g version. The query given below.
Sample Data:
Table1: KEY ( It has 4 million records and DUR_UK column is unique key)
PK
DUR_UK
1
BD|4|J650|01AB|0001LLA|N01005309106|01003014101|0H9ZN|0HB0T|6970189|30748R2|001000
2
BD|506001022502|06076001901|0G1GF|0HB0T|7270478|2035772C91|000100
3
BD|J08005852109|10004001301|0HB0T|6971058|3551787C91|000100|03-MAY-10|31-DEC-99|3551787C91
Table2: Section (It has 12k records)
Column: FVC
Data: OHBOT
In table 1, there are 3 types of order for bold and underlined data. I need to get the PK, JVC from KEY table by JOINING with Section table based on bold and underlined field with FVC column.
I tired with below query but it takes long time and didnt complete. Becoz it go thru 4 million records 3 times.
SELECT A.PK,B.JVC
FROM SECTION B
INNER JOIN KEY A
ON (REGEXP_SUBSTR(A.DUR_UK,'[^|]+',1,9) = B.FVC OR REGEXP_SUBSTR(A.DUR_UK,'[^|]+',1,5) = B.FVC OR REGEXP_SUBSTR(A.DUR_UK,'[^|]+',1,4) = B.FVC;
The output could be like.
PK JVC
1 OHBOT
2 OHBOT
3 OHBOT
Can someone please help me out to fine tune.
ThanksHi,
In a relational database, each column of each row should contain 1 piece of information, not a delimted list of several items. This is so basic to database design that it's called First Normal Form. Relational database are designed to work with data that is in First Normal Form. Your table was not designed to work well, and it seems to be doing exactly what it was designed for. This problem (and many others, no doubt) would be much simpler and much faster if each of the |-delimited items was on a separate row.
If you must use the current design, avoid regular expressions. You don't need all the power of regular expressions in this problem; you can get the results you need faster using less powerful tools, such as LIKE, INSTR and SUBSTR.
Depending on your data and your requirements, you might try something like this:
WITH got_pos AS
SELECT k.pk, k.dur_uk
, s.jvc, s.fvc
, INSTR (k.dur_uk, '|', 1, 3) AS pos3
, INSTR (k.dur_uk, '|', 1, 4) AS pos4
, INSTR (k.dur_uk, '|', 1, 5) AS pos5
, INSTR (k.dur_uk, '|', 1, 8) AS pos8
, INSTR (k.dur_uk, '|', 1, 9) AS pos9
FROM section s
JOIN key k ON k.dur_uk LIKE '%|' || s.fvc || '|%'
SELECT pk, jvc
FROM got_pos
WHERE fvc IN ( SUBSTR (dur_uk, pos3 + 1, pos4 - (pos3 + 1))
, SUBSTR (dur_uk, pos4 + 1, pos5 - (pos4 + 1))
, SUBSTR (dur_uk, pos8 + 1, pos9 - (pos8 + 1))
Of course, without any sample data, I can't test this.
Oracle Text might help with this problem. I don't use it myself, but I believe it allows you to create indexes so that it's faster to find keywords (such as anyhting in section.fvc) anywhere in large strings (such as key.dur_uk). -
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. -
How can I fine tune the performance of my IMS5.1 mailserver?
I installed the IMS5.1 on Solaris 8 with default parameters, without IDA. It is used as a mail relay. It seems to have/keep about 700 msgs in the tcp_local channel but none in the process channel. It uses the cpu very much, in my opinion too much (100% is no exception. It uses the swap file for only 30%. How can I tune the performance of my system. Don't laugh: the "server" is only a SUN Ultra 5 workstation.
I've been working with this MTA since '95. Unfortunately there is no easy answer. The number of msgs in queue is not an indication of performance, it can be, but it can also be that the hosts your system is trying to reach are not available. You can use tools like imsimta qtop to see top subjects or top domains. Poke around and see just why you have 700 msgs in your queues.
Channels like process or say conversion channel are internal while channnels like tcp_local deal with external systems. If you had mail backing up in the conversion channel then you'd have a good sign of local performance problems. Mail backing up in tcp_local is not necessarily a sign of performance problems on your end.
I don't see a problem with the software using all available CPU. What is wrong with that?
If you've made any changes to the configuration it could be that you have introduced something that is causing say a mapping process to loop and thus eat more CPU that would otherwise be normal.
What process is using all of this CPU? Knowing this would help to determine what part of the MTA might be using lots of CPU.
Maybe you are looking for
-
Whats the difference between these types of classes?
What's the difference between using a "private inner class", an "anonymous inner class", and a "class that implements on itself" to create a GUI? Also, what's the difference between regular classes, abstract classes, and interfaces? I ask because I'm
-
How can I make it so that when Safari opens it takes me to the homepage?
Say I am on youtube and I quit safari, when I reopen safari later, it goes to the page last open, in this case, youtube. How can I make it so that when Safari opens it always takes me to the homepage?
-
Converting HTML page into powerpoint file
Hello Java Gurus, I have Java web application which generates reports in various formats (.rtf, .pdf, .xls and .html files) using JasperReports, but now the client needs the powerpoint (.ppt) format that is not supported by JasperReports. As the Jasp
-
Using Distributed Transaction with oracle 9i and VB
How to I get distributed transaction to work between a COM + object in VB and oracle using MSDAORA.1 driver? I keep getting the following error: error number: -2147168229 error description: Cannot connect to the transaction manager or the transaction
-
Howdy, We have some orders which have been completely invoiced but the document flow still stays - "Being processed" (VBUK-GBSTK = 'B', we are not able to close the order. Can't use correction report SDVBUK00 as the overall status on the d