Understanding on buffering

Dear friends,
Suppose i execute one query in abap
select * from mara where mtart = 'IFIG'.
How my system behaves.I feel first DBInterface looks data on to buffer area of appserver.Here is there any role of message server ?.
Suppose If buffer has data ,it fetches from buffer and dbinterface passes data back to request dispatcher.
If not then it looks into databse server and updates buffer and then return back the result.
However what will be query fired then ,will it be select * from mara irrespective of where clause means all data will be fetched or partial .
Also suppose i do setting No buffering in mara table,will buffering on appserver be referred or not.
I have coded many report where on execution it takes first time to be slow.But next time in seconds.Though tables used on such reports\ have No Buffering setting.How then buffering applies ?.
I am confused about buffering management and even readings cannot convince me.
I leave this topic on debate for all readers of this topic .
Regards,
Aditya

Hermann Gahm wrote:
Hi,
>
> since MARA is not buffered, the DBI (DBSL to be more precisse)
> transforms the statement to native SQL and sends the request to the DB
> and waits for the result in order to process it (copy it in ABAP variables...)
> That's basically it.
>
> Kind regards,
>
> Hermann
Just to complete Hermanns fully correct statement:
However, IF INDEED someone modified MARA to be fully buffered, strange things will happen:
The first request, no matter what WHERE clause it has, will do a
SELECT * from MARA WHERE MANDT='xxx'
Most likely this will run for quite a while and will either give a timeout if called in dialog,
or will get a buffer failiure, because your SAP buffer will likely be too small to hold a complete MARA.
However, this error will be stored as a buffer information, and any second call will proceed to the DB-layer,
and be processed as if the table is not buffered. After a while, the "buffer-fail" information is cleared and the next
call will begin right again to try buffering.
I had this recently (not with MARA, but with a huge Z-table, that was set to FULL BUFFERED).
The first call of the day ran forever and did fail, and every call after this was lightning fast, because all
statements executed were well index-supported.
When we did a SQL trace it was quite funny to see a full table scan as execution plan fired by a FAE select
with a selective WHERE. I assumed a kernel bug first, because I could not even imagine someone would set
a 300 GB table to be fully buffered. Checking the table buffer after spotting the bufferflag revealed, that indeed
a "buffer failed" status is as well a buffer status information which disables buffering (for a while).
Volker

Similar Messages

  • Logging persistent url not working on 1921

    Hi All
    I am unable to configure logging persistence on a 1921.  Is this due to the internal arrangement of flash memory and the fact it is present as usbflash0:/ and not flash:/?
    I understand logging buffered needs to be configured first and I have done that.  I am running 15.1(4)M6 and here is what happens when I try and configure this feature:
    On a 1921:
    Router(config)#logging persistent url ?
    % Unrecognized command
    Router(config)#logging persistent ?  
      batch      Set batch size for writing to persistent storage
      filesize   Set size of individual log files
      immediate  Write log entry to storage immediately (no buffering).
      notify     Notify when show logging [persistent] is activated.
      protected  Eliminates manipulation on logging-persistent files.
      size       Set disk space for writing log messages
      threshold  Set threshold for logging persistent
      url        URL to store logging messages
      <cr>
    On a 1941:
    Router(config)#logging persistent url ?
      flash0:  Filesystem name
      flash1:  Filesystem name
      flash:   Filesystem name
    Any ideas?

    Single Sign-on and single sign-off methods are much different in 10g family of OAS than from those in 9iAS.
    There are internal redirections involved in 10g family, and 10.1.4 has even a little more different method of login and logout than even 10.1.2.0.2.
    You will have to notify your logout page in WWSSO_LS_CONFIGURATION_INFO$ in the orasso schema.
    hi
    1. i cant find table WWSSO_LS_CONFIGURATION_INFO
    only WWSSO_LS_CONFIGURATION_INFO_T and
    WWSEC_ENABLE_CONFIG_INFO$
    was should i do ?
    You will have to notify your logout page in WWSSO_LS_CONFIGURATION_INFO$ in the orasso schema.
    2. do i have to create a customised logout page?
    Ria

  • Number buffer help

    Hi
    Sometimes we get gaps in the number range of our PO's created from EBP ie.
    30000000001
    30000000002
    30000000010
    30000000020
    30000000021
    and so on. But we are not sure what to do to fix the problem. This link: http://help.sap.com/erp2005_ehp_03/helpdata/EN/aa/dbc9b4b56143bb8f2ae909d7d040fa/content.htm tells about the number buffer. But what to do?
    We have looked in SNRO object EINKBELEG it returns "No buffer active"?
    Should we set the parameter nobuf/max_no_buffer_entries to 1?
    If the solution is to set the parameter nobuf/max_no_buffer_entries to 1 will it have other consequences in the system? In this link (one number in the buffer): http://help.sap.com/erp2005_ehp_03/helpdata/EN/17/d70701912646459171d2b562d82b90/content.htm I only see benefits?
    So why is the standard 1000 and not 1?
    Anyone who can help me understand the behaviour of the number buffer - and solve our problem
    Info:
    System: SRM server 5.0 (EBP 4.0)
    Senario: Classic Scenario

    To avoid having gaps in the number range, turn buffering off using
    transaction SNUM for a particular object, REQREQ (shopping carts),
    for example. In that case the system reads the number from the database
    strictly in order. However, please understand that buffering is
    turned for performance reasons
    (copy from other thread)
    BR
    Dinesh

  • Document Number generation in SRM

    Hi All,
    We have allocated a number range to various documents ( PO's, Contracts & Shopping carts ) in SRM SPRO. During transactions such as creating PO's & Contracts the number range gets generated even before saving the order.
    This leads to a situation where the number range gets allocated even when the order is not saved. Due to this problem we have observed that the number remains unconsumed & there is a skip in the PO numbers.
    Please provide a suitable solution to this issue. Also, confirm if this is a part of SRM standard functionality.
    Regards,
    Srinivas Reddy

    Hi Srinivas,
    Number ranges in the system are buffered in the main memory of          
    the application server. The server reads the next 10 free numbers       
    when starting up or when these 10 numbers are consumed. The symptom     
    you described can happen as follows:                                    
    Server 1 has 10 numbers 2,3,4,5,6,7,8,9,10,11 in memory.                
    Server 2 has 10 numbers 12,13,14,15,16,17,18,19,20,21 in memory.        
    A user logged on server 1 creates a document with number 2. Another     
    user creates the next document. If this user is logged on server 2,     
    this document will have the number 12. If you shut down a server,       
    the numbers not used are lost. This causes a gap in the sequence.       
    In case of having one server only, a missing number can happen when     
    rebooting the server. If the server had number range 2 - 11 in memory   
    and the last created document was no. 3, the next number after          
    rebooting the server will be no. 12.                                    
    To avoid having gaps in the number range, turn buffering off using      
    transaction SNUM for a particular object, REQREQ (shopping carts),      
    for example.  In that case the system reads the number from the database
    strictly in order.  However, please understand that buffering is        
    turned for performance reasons.                                         
    Regards
    Jason

  • [svn:osmf:] 14235: PARB changes: Remove targetBufferTime from the metrics provider, this value can' t be set in the absence of an understanding of the buffering strategy which is layered on top of NetStreamBufferTrait .

    Revision: 14235
    Revision: 14235
    Author:   [email protected]
    Date:     2010-02-17 19:27:33 -0800 (Wed, 17 Feb 2010)
    Log Message:
    PARB changes: Remove targetBufferTime from the metrics provider, this value can't be set in the absence of an understanding of the buffering strategy which is layered on top of NetStreamBufferTrait.  Adjust switching rules to work from the raw buffer data instead of this target.  Remove all bufferTime modifications from the MBR code, so that they won't impact any buffering strategies (addresses FM-436).
    Ticket Links:
        http://bugs.adobe.com/jira/browse/FM-436
    Modified Paths:
        osmf/trunk/framework/OSMF/org/osmf/net/NetStreamMetricsBase.as
        osmf/trunk/framework/OSMF/org/osmf/net/NetStreamSwitchManager.as
        osmf/trunk/framework/OSMF/org/osmf/net/rtmpstreaming/InsufficientBufferRule.as
        osmf/trunk/framework/OSMF/org/osmf/net/rtmpstreaming/RTMPNetStreamMetrics.as
        osmf/trunk/framework/OSMF/org/osmf/net/rtmpstreaming/SufficientBandwidthRule.as
        osmf/trunk/libs/adobe/NetMocker/org/osmf/netmocker/MockNetStreamMetricsBase.as
        osmf/trunk/libs/adobe/NetMocker/org/osmf/netmocker/MockRTMPNetStreamMetrics.as

    Please do not duplicate posts. You have already started a thread on this subject.

  • Still not understanding Swing Double buffering

    I'm writing a custom JComponent like
    class Custom extends JComponent {
    protected void paintComponent(Graphics g) {
           //slow complex routine
    }As the display does not often change I thought I could improve performance with my own off-screen rendering
    class Custom extends JComponent {
    private Image screenImage= null;
    private void doOffscreen() {
                BufferedImage backimage = defaultgc.createCompatibleImage(getSize().width, getSize().height);
                final Graphics2D g2 = backimage.createGraphics();
                 slow complex routine
                screenimage = backimage;
    protected void paintComponent(Graphics g) {
           super.paintComponent(g);
           if (screenimage != null) {
                g.drawImage(screenimage, 0, 0, null);
    }What does adding
    class Custom extends JComponent {
           public Custom() {
                setDoubleBuffering(true);
    }get me ? Or can I use the SWING double buffer to render to ?
    I'm guessing what it will do is render my screen image into yet another image and then switch this in.
    I feel I'm missing something :(

    I've run your code and it seems to work well,
    however it is in constant update mode where as my application usually only changes as a part of user interactionActually, that doesn't matter, since when you want the screen to update, you just call "repaint()" from any place that has visibility in your application. The real wonderful thing about offscreen rendering is: that when you have to have an update done, it paints immediately is a very optimized code--a one line paint/paintComponent routine, since the image is pre-rendered, no waiting.
    The offscreen rendering approach lends very well to animation loops, adhoc graphic updates, and pretty much any other animation schemes I've been able to come up with.
    There is really only one concern that I have in offscreen renderings: it is possible that you would be able to catch the offscreen image being rendered so only a partial image would be present on the screen. I cannot make it do this so I can notice it happen in any animation loop or continuous update scenario that I've been able to test.
    I can force it to happen noticeably in code if I purposefully artificially extend the animation times far beyond what they may normally take and unreasonably make multiple tick cycles to the animation and update delays. This is like running a film in ultra slow motion--frame by frame, but under normal conditions (full speed animations), I cannot force any noticeable flaw in the output of an offscreen rendering scheme.
    I've pumped that program that I posted up to 10,000 objects and it still ran--no flicker what so ever, but yes, it was a little jerky since I'm doing 1600x1200 and 10,000 images on a 2.4 GHz AMD under Solaris x64, but at the 1,000 object mark as posted, it works fine.

  • Problem with Double Buffering and Swing

    Hi
    I made a game and basically it works pretty well, my only problem is it flickers really badly right now. I read up on a whole lot of forums about double buffering and none of those methods seemed to work. Then I noticed that Swing has double buffering built in so I tried that but then I get compilation errors and I'm really not sure why. My original code was a console application and worked perfectly, then I ported it into a JApplet and it still works but it flickers and thats what I'm tryign to fix now.
    The code below is in my main class under the constructor.
    Heres the double buffering code I'm trying to use, I'm sure you all seen it before lol
    public void update(Graphics g)
              // initialize buffer
              if (dbImage == null)
                   dbImage = createImage(this.getSize().width, this.getSize().height);
                   dbg = dbImage.getGraphics();
              // clear screen in background
              dbg.setColor(getBackground());
              dbg.fillRect(0, 0, this.getSize().width, this.getSize().height);
              // draw elements in background
              dbg.setColor(getForeground());
              paint(dbg);
              // draw image on the screen
              g.drawImage(dbImage, 0, 0, this);
         }My paint is right under neath and heres how it looks
    This snipet of code works but when I change the method to
    public paintComponent(Graphics g){
    super.paintComponent(g)...
    everythign stops working and get a compilation error and says that it can't find paintComponent in javax.swing.JFrame.
    public void paint(Graphics g)
              super.paint(g);
              //if game starting display menue
              if (show_menue)
                   //to restart lives if player dies
                   lives = 3;
                   menue.draw_menue(g);
                   menue_ufo1.draw_shape(g);
                   menue_ufo2.shape_color = Color.DARK_GRAY;
                   menue_ufo2.draw_shape(g);
                   menue_ufo3.shape_color = Color.BLUE;
                   menue_ufo3.draw_shape(g);
                   menue_ufo4.shape_color = new Color(82, 157, 22);
                   menue_ufo4.draw_shape(g);
                   menue_ufo5.draw_shape(g);
                   menue_ufo6.shape_color = new Color(130, 3, 3); ;
                   menue_ufo6.draw_shape(g);
                   menue_turret.draw_ship(g);
                   menue_ammo.draw_ammo(g);
              else
                   //otherwise redraw game objects
                   gunner.draw_ship(g);
                   y_ammo.draw_ammo(g);
                   grass.draw_bar(g);
                   o_ufo.draw_shape(g);
                   b_ufo.draw_shape(g);
                   m_ufo.draw_shape(g);
                   s_ufo.draw_shape(g);
                   z_ufo.draw_shape(g);
                   xx_ufo.draw_shape(g);
                   info.draw_bar(g);
                   live_painter.draw_lives(g, lives);
                   score_painter.draw_score(g, score);
                   level_display.draw_level(g, level);
                   explosion.draw_boom(g);
         }I just want to get rid of the flickering for now so any help will be greatly appreciated. Depending which will be simpler I can either try to double buffer this program or port it all to swing but I'm not sure which elements are effected by AWT and which by Swing. Also I read some of the Java documentation but couldn't really understand how to implement it to fix my program.
    Thanks in advance
    Sebastian

    This is a simple animation example quickly thrown together. I have two classes, an animation panel which is a JPanel subclass that overrides paintComponent and draws the animation, and a JApplet subclass that simply holds the animation panel in the applet's contentpane:
    SimpleAnimationPanel.java
    import java.awt.Dimension;
    import java.awt.Graphics;
    import java.awt.Point;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.awt.image.BufferedImage;
    import java.io.IOException;
    import java.net.MalformedURLException;
    import java.net.URL;
    import javax.imageio.ImageIO;
    import javax.swing.JPanel;
    import javax.swing.Timer;
    class SimpleAnimationPanel extends JPanel
        private static final int DELAY = 20;
        public static final int X_TRANSLATION = 2;
        public static final int Y_TRANSLATION = 2;
        private Point point = new Point(5, 32);
        private BufferedImage duke = null;
        private Timer timer = new Timer(DELAY, new TimerAction());
        public SimpleAnimationPanel()
            try
                // borrow an image from sun.com
                duke = ImageIO.read(new URL(
                        "http://java.sun.com/products/plugin/images/duke.wave.med.gif"));
            catch (MalformedURLException e)
                e.printStackTrace();
            catch (IOException e)
                e.printStackTrace();
            setPreferredSize(new Dimension(600, 400));
            timer.start();
        // do our drawing here in the paintComponent override
        @Override
        protected void paintComponent(Graphics g)
            super.paintComponent(g);
            if (duke != null)
                g.drawImage(duke, point.x, point.y, this);
        private class TimerAction implements ActionListener
            @Override
            public void actionPerformed(ActionEvent e)
                int x = point.x;
                int y = point.y;
                Dimension size = SimpleAnimationPanel.this.getSize();
                if (x > size.width)
                    x = 0;
                else
                    x += X_TRANSLATION;
                if (y > size.height)
                    y = 0;
                else
                    y += Y_TRANSLATION;
                point.setLocation(new Point(x, y)); // update the point
                SimpleAnimationPanel.this.repaint();
    }AnimationApplet.java
    import java.lang.reflect.InvocationTargetException;
    import javax.swing.JApplet;
    import javax.swing.JPanel;
    import javax.swing.SwingUtilities;
    public class AnimationApplet extends JApplet
        public void init()
            try
                SwingUtilities.invokeAndWait(new Runnable()
                    public void run()
                        // construct the panel
                        JPanel simpleAnimation = new SimpleAnimationPanel();
                        // put it in the contentPane of the JApplet
                        getContentPane().add(simpleAnimation);
                        setSize(simpleAnimation.getPreferredSize());
            catch (InterruptedException e)
                e.printStackTrace();
            catch (InvocationTargetException e)
                e.printStackTrace();
    }Here's a 3rd bonus class that shows how to put the JPanel into a stand-alone program, a JFrame. It's very similar to doing it in the JApplet:
    AnimationFrame.java
    import javax.swing.JFrame;
    public class AnimationFrame
        private static void createAndShowUI()
            JFrame frame = new JFrame("SimpleAnimationPanel");
            frame.getContentPane().add(new SimpleAnimationPanel());
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            frame.pack();
            frame.setLocationRelativeTo(null);
            frame.setVisible(true);
        public static void main(String[] args)
            java.awt.EventQueue.invokeLater(new Runnable()
                public void run()
                    createAndShowUI();
    }Edited by: Encephalopathic on Mar 15, 2008 11:01 PM

  • Buffered event counting. Why can't I explicitly sequence generating the Sample Clock Pulse and reading the counters?

    At irregular occasions I need to grab counts from several counters, and buffering the counts must be done simultaneously for all counters. I'm modeling my approach after zone.ni.com/devzone/cda/tut/p/id/5404 which someone kindly pointed out in an earlier thread. However, that example only uses one counter, and you can't test the synchronization with only one counter, so I am using two counters configured the same way, and they're wired to a single benchtop signal generator (for example at 300 kHz).
    What I want to do, I can test in a loop with a somewhat random wait in it. I want to drive a hardware digital output line high for a few ms and then low again. The hardware line is physically connected to terminals for my timing vi's Sample Clock Source and so will cause them to buffer their counts for later reading. After I pulse this line, when I know new good buffered counts await me, I want to read both my counters. If their bufferings are simultaneous, then each counter will have counted the same number of additional counts since the last loop iteration, which I can check by subtracting the last value sitting in a shift register and then subtracting the two "additional counts" values and displaying this difference as "Diff". It should always be 0, or occasionally +1 followed immediately by -1, or else the reverse, because buffering and a count could happen practically at the same moment.
    When I do this using a flat sequence to control the relative timing of these steps, so the read happens after the pulse, the counters often time out and everything dies. The lengths of time before, during, and after the pulse, and the timeout value for the read vi, and the size of the buffer and various other things, don't seem to change this, even if I make things so long I could do the counting myself holding a clipboard as my buffer. I've attached AfterPulse.vi to illustrate this. If I get 3 or 10 or so iterations before it dies, I observe Diff = 0; at least that much is good.
    When I use two flat sequences running in parallel inside my test loop, one to control the pulse timing, and the other to read the counters and do things with their results, it seems to work. In fact, Diff is always 0 or very occasionally the +/- 1 sequence. But in this case there is nothing controlling the relative timing such that the counters only get read after the pulse fires, though the results seem to show that this is true. I think the reads should be indeterminate with respect to the pulses, which would be unreliable. I don't know why it's working and can't expect it to work in other environments, can I? Moreover, if I set some of the pulse timing numbers to 1 or 2 or 5 ms, timeouts start happening again, too. So I think I have a workaround that I don't understand, shouldn't work, and shouldn't be trusted. See SeparateSequence.vi for this one.
    I also tried other versions of the well-defined, single sequence vi, moving the counter reads to different sequence frames so that they occur with the Sample Clock Source's rising edge, or while it is high, or with the falling edge, and they also often time out. I'll post these if anyone likes but can't post now due to the attachment limit.
    Here's an odd, unexpected observation: I have to sequence the reads of the counters to occur before I use the results I read, or else many of the cycles of this combine a new count from one counter with the one-back count from the other counter, and Diff takes on values like the number of counts in a loop. I though the dataflow principle would dictate that current values would get used, but apparently not so. Sequencing the calculations to happen after the reads fixes this. Any idea why?
    So, why am I not succeeding in taking proper control of the sequence of these events?
    Thanks!!!
    Attachments:
    AfterPulse.vi ‏51 KB
    InSeparateSequence.vi ‏49 KB

    Kevin, thanks for all the work.
    >Have you run with the little execution highlighting lightbulb on? -Yes. In versions of this where there is no enforced timing between the counter and the digital line, and there's a delay inserted before the digital line, it works. There are nearly simultaneous starts on two tracks. Execution proceeds directly along the task wire to the counter. Meanwhile, the execution along the task wire to the digital high gets delayed. Then, when the digital high fires, the counter completes its task, and execution proceeds downstream from the counter. Note, I do have to set the timeout on the counter longer, because the vi runs so slowly when it's painting its progress along the wires. If there is any timing relationship enforced between the counter and the digital transition, it doesn't work. It appears to me that to read a counter, you have to ask it for a result, then drive the line high, and then receive the result, and execution inside the counter has to be ongoing during the rising line edge.
    >from what I remember, there isn't much to it.  There really aren't many candidate places for trouble.  A pulse is generated with DIO, then a single sample is read from each counter.  -Yup, you got it. This should be trivial.
    >A timeout means either that the pulse isn't generated or that the counter tasks don't receive it. - Or it could mean that the counter task must be in the middle of executing when the rising edge of the pulse arrives. Certainly the highlighted execution indicates that. Making a broken vi run by cutting the error wires that sequence the counter read relative to the pulse also seems to support that.
    >Have you verified that the digital pulse happens using a scope? -Verified in some versions by running another loop watching a digital input, and lighting an indicator, or recording how many times the line goes high, etc. Also, in your vi, with highlighting, if I delete the error wire from the last digital output to the first counter to allow parallel execution, I see the counter execution start before the rising edge, and complete when the line high vi executes. Also, if I use separate loops to drive the line high and to read the counter, it works (see TwoLoops.vi or see the screenshot of the block diagram attached below so you don't need a LV box). I could go sign out a scope, but think it's obvious the line is pulsing given that all these things work.
    >Wait!  I think that's it!  If I recall correctly, you're generating the digital pulse on port0/line0...  On a 6259, the lines of port 0 are only for correlated DIO and do not map to PFI. -But I'm not using internal connections, I actually physically wired P0L1 (pin 66) to PFI0 (pin 73). It was port0/line1, by the way. And when running some of these vi's, I also physically jumper this connection to port0/line2 as an analog input to watch it. And, again, the pulse does cause the counter to operate, so it clearly connects - it just doesn't operate the way I think it is described operating.
    For what it's worth, there's another mystery. Some of the docs seem to say that the pulse has to be applied to the counter gate terminal, rather than to the line associated with the sample clock source on the timing vi. I have tried combinations of counter gate and or sample clock source and concluded it seems like the sample clock source is the terminal that matters, and it's what I'm using lately, but for example the document I cited, "Buffered Event Counting", from last September, says "It uses both the source and gate of a counter for its operation. The active edges on the gate of a counter is used to latch the current count register value in a hardware register which is then transferred via Direct Memory Access...". I may go a round of trying those combinations with the latest vi's we've discussed.
    Attachments:
    NestedSequences.png ‏26 KB

  • Need help in understanding the trace file

    Hi,
    I would need to understand
    - the large number of fetch for the query
    - SQL*Net message to client and SQL*Net message from clientbeing same
    - latch: cache buffers chains
    The issue I am experiencing is a 6x delay due to an unknown reason.
    Can somebody assist me?
    Thanks
    D
    SQL
    SELECT R_RO.*
    FROM
    (SELECT b.ID,b.ANSWERS,b.C_CLASSID,b.C_ID, b.FCI,b.FROM_ID,b.TCI,b.TO_ID,b.FFU, b.TFU,b.NOU,b.ISN,b.SC_NAME,
    b.DN_NAME,b.DN_ITEM_NUMBER,b.ISC, b.PRIORITY FROM VVP.RELATION b WHERE b.ID NOT IN (SELECT /*+ HASH_AJ */ SDE_DELETES_ROW_ID FROM VVP.D94 WHERE DELETED_AT IN (SELECT l.lineage_id FROM SDE.state_lineages l WHERE l.lineage_name = :source_lineage_name AND l.lineage_id <= :source_state_id) AND SDE_STATE_ID
    = :"SYS_B_0") UNION ALL SELECT a.ID,a.ANSWERS,a.C_CLASSID, a.C_ID,a.FCI,a.FROM_ID,a.TCI, a.TO_ID,a.FFU,a.TFU,a.NOU, a.ISN,a.SC_NAME,a.DN_NAME, a.DN_ITEM_NUMBER,a.ISC,a.PRIORITY FROM VVP.A94 a, SDE.state_lineages SL WHERE (a.ID, a.SDE_STATE_ID) NOT IN (SELECT /*+ HASH_AJ */ SDE_DELETES_ROW_ID,SDE_STATE_ID FROM VVP.D94 WHERE DELETED_AT IN (SELECT l.lineage_id FROM SDE.state_lineages l WHERE l.lineage_name = :source_lineage_name AND l.lineage_id <= :source_state_id) AND SDE_STATE_ID > :"SYS_B_1") AND a.SDE_STATE_ID = SL.lineage_id AND SL.lineage_name = :source_lineage_name AND SL.lineage_id <= :source_state_id ) R_RO WHERE (ID = :"SYS_B_2")
    call count cpu elapsed disk query current rows
    Parse 3911 2.30 2.14 0 0 0 0
    Execute 3911 2.47 2.43 0 0 0 0
    Fetch 3911 268.96 270.60 28 15696558 0 3911
    total 11733 273.73 275.18 28 15696558 0 3911
    Misses in library cache during parse: 1
    Optimizer mode: FIRST_ROWS
    Parsing user id: 1031
    Rows Row Source Operation
    1 VIEW (cr=3966 pr=0 pw=0 time=84973 us)
    1 UNION-ALL (cr=3966 pr=0 pw=0 time=84968 us)
    1 HASH JOIN ANTI (cr=3963 pr=0 pw=0 time=84707 us)
    1 TABLE ACCESS BY INDEX ROWID CONNECTION (cr=4 pr=0 pw=0 time=123 us)
    1 INDEX UNIQUE SCAN R94_SDE_ROWID_UK (cr=3 pr=0 pw=0 time=88 us)(object id 7404)
    8586 VIEW VW_NSO_2 (cr=3959 pr=0 pw=0 time=112274 us)
    8586 NESTED LOOPS (cr=3959 pr=0 pw=0 time=103686 us)
    3661 INDEX RANGE SCAN LINEAGES_PK (cr=7 pr=0 pw=0 time=67 us)(object id 307740)
    8586 INDEX RANGE SCAN D94_PK1 (cr=3952 pr=0 pw=0 time=70624 us)(object id 1637355)
    0 HASH JOIN ANTI (cr=3 pr=0 pw=0 time=248 us)
    0 NESTED LOOPS (cr=3 pr=0 pw=0 time=71 us)
    0 TABLE ACCESS BY INDEX ROWID A94 (cr=3 pr=0 pw=0 time=68 us)
    0 INDEX RANGE SCAN A94_ROWID_IX1 (cr=3 pr=0 pw=0 time=65 us)(object id 129281)
    0 INDEX UNIQUE SCAN LINEAGES_PK (cr=0 pr=0 pw=0 time=0 us)(object id 307740)
    0 VIEW VW_NSO_1 (cr=0 pr=0 pw=0 time=0 us)
    0 NESTED LOOPS (cr=0 pr=0 pw=0 time=0 us)
    0 INDEX RANGE SCAN D94_PK1 (cr=0 pr=0 pw=0 time=0 us)(object id 1637355)
    0 INDEX UNIQUE SCAN LINEAGES_PK (cr=0 pr=0 pw=0 time=0 us)(object id 307740)
    Elapsed times include waiting on following events:
    Event waited on Times Max. Wait Total Waited
    SQL*Net message to client 3911 0.00 0.00
    SQL*Net message from client 3911 0.49 72.42
    latch: cache buffers chains 1434 0.00 0.07
    latch: shared pool 1 0.00 0.00
    db file sequential read 28 0.14 0.31
    latch free 15 0.02 0.04
    latch: row cache objects 1 0.00 0.00
    log file switch completion 4 0.98 1.64

    ssddgreg wrote:
    Hi Randolf,
    thank you for your excellent interpretation! I have Oracle DBMS 10.2.0.3 Ent Edition deployed on Sun Solaris (64-bit), FIRST_ROWS and CURSOR_SHARING = SIMILAR.
    I also checked the table D94.SDE_DELETES_ROW_ID about indexes, it has 3 indexes on the same column:
    D94_IX1, NONUNIQUE
    D94_IX2, UNIQUE
    D94_PK1, UNIQUE
    This table is a system table from another middle-tier application and all the DXX tables are configured like that.Is this a third-party vendor application for that you don't have any control over the schema? Because your description of the indexes looks like a potential case of massive over-indexing, increasing the workload required to maintain all this indexes. Very likely some of these indexes are redundant and could be covered by a fewer number of indexes.
    Besides that my comment regarding the execution plan was probably not clear enough - what I meant to say is that the HASH_AJ hint prevents the optimizer from doing the clever things with the predicates that I described.
    So in principle the question is: What execution plan do you get if you omit the HASH_AJ hints? And how many consistent gets requires this new plan at execution time? You might need to add a NL_AJ hint instead to achieve what I've described, but it would be interesting to see in first place what execution plan is generated without any hints.
    Some other comments:
    FIRST_ROWS optimizer mode: Does this application require you to use the FIRST_ROWS optimizer mode? Because in principle, if you have an application that actually retrieves most of the time only the first few rows of a larger result set, then you should use the FIRST_ROWS(n) optimizer mode instead. The FIRST_ROWS optimizer mode is deprecated since Oracle 9i if I remember correctly and has some odd side effects on execution plans, in particular if the SQL contains an ORDER BY clause.
    If your application usually processes all rows from a given result set, using the default optimizer mode ALL_ROWS is more appropriate - using FIRST_ROWS as a band-aid because with ALL_ROWS things are slower only shows that there is something wrong that should be addressed in a different way (by investigating why the ALL_ROWS mode doesn't arrive at a suitable execution plan as first activity).
    CURSOR_SHARING=SIMILAR: Note that CURSOR_SHARING = SIMILAR has some other side effects (and bugs). Oracle has recently announced on My Oracle Support (see document 1169017.1) that CURSOR_SHARING=SIMILAR will be deprecated (no longer supported) in Oracle 12. See this note also for a description why this setting can be problematic.
    Of course, if you don't have any control over a vendor application and it works fine and has been optimized for these settings (FIRST_ROWS, CURSOR_SHARING=SIMILAR) then there is not much you can do (or need to do) about that.
    Regards,
    Randolf
    Oracle related stuff blog:
    http://oracle-randolf.blogspot.com/
    Co-author of the "OakTable Expert Oracle Practices" book:
    http://www.apress.com/book/view/1430226684
    http://www.amazon.com/Expert-Oracle-Practices-Database-Administration/dp/1430226684

  • Buffering and creation of secondary indexes.

    Hi All,
    I have a table that has more than 6 million records, due to which performance is slow during the transaction search, kindly let me know if Buffering and creation of secondary indexes will help me.
    I am given to understand that creation of seconary indexes and full buffering may not always improve performance. Kindly let me know when it is advised to go for full buffering.
    Regards,
    Thiru

    Hi,
    create  secondary index  for the table
    check below link
    http://help.sap.com/saphelp_nw70/helpdata/en/cf/21eb20446011d189700000e8322d00/content.htm
    Regards,
    Madhu

  • Buffering. Can I do anything to my computer to reduce or eliminate this?

    I don't understand buffering. Recently, I watched a video that lasted 20 minutes with no interruption of any kind. This is not uncommon. On the other hand, sometimes the video stops every few seconds and the screen says "buffering". Why is it that sometimes the video has to be buffered and sometimes not? More importantly, is there anything i can do do reduce the incidence of buffering? Someone told me to increase my memory, or maybe he said to increase something else. In any event, is there anything I can do to or with my computer to solve or at least reduce the problem? I have DSL. It's true that the station is a great distance from my home, but if the problem is with my DSL service, wouldn't I have the same problem with ALL videos?

    Depends on the speed of your ISP. If you have a fast internet service & still get buffering streaming videos, that usually means the internet is "busy."
    Not too often I would get the buffering when I had Comcast mostly in the mornings & afternoons (folks using a computer at school & jobs). Never during evening times.
    Now with Verizon FIOS, never a buff. Not even a hiccup viewing streaming or regular videos!
    Speed Test

  • Best practice for Number range buffering in SAP BI for FI Cubes

    Hello Experts,
    I have a question regarding Number range buffering. What i have observed is if we use more number of background processes while loading data, it for sure creaets locks with NRIV table bcoz of more calls for bufffered numbers with multiple processes.
    But there is a clause in SNRO while we buffer 'Main Memory' that it should not be used for Financial documents. I understand that this is for serial assignment of numbers for Documents and acoounts on the backend ECC, but does this even stand true for DIM ID's which we are buffering while loading data into a FI Cube?
    I have looked up a SAP note 1398444, which talks about NRIVSHADOW and parallel buffering and different use case scenarios.
    Which one of those should be used if I need to buffer my Dimension while loading a FI Cube in BI with maximun background processes?
    Please help me understand the difference?

    hi,
    well the message is just like a warning to signify that  incase you load more number of new records then your existing limit of buffer then you will have to increase accordingly if no then you can ignore
    if you want to understand the reason it like this....
    if there is not sufficent buffers space available and then process would be rollback and the existing numbers will get lost resulting gaps between the document numbers and for applications like finance this is not desirable .
    see doc more details
    http://help.sap.com/saphelp_nw04/helpdata/en/95/3d5540b8cdcd01e10000000a155106/frameset.htm
    Also if you are not sure you ask your basis team for Early watch alert report in their you can easily see whether number range buffering is really required or not, if yes then for which object/dimensions
    Also check below SAP Note:449030 and 62077
    hope it helps
    regards
    laksh

  • Video playback lagging while buffering

    Having a problem with video in my iPad app. The video is loaded from a server into an FLVPlayback component. While the video is buffering, the video playback is extremely choppy (like 1-2 FPS), but as soon as the buffering is complete, it plays smoothly. So obviously, the buffering itself uses too many resources (I've tested both on an iPad Mini and an ancient iPad 1).
    Is there any way to reduce the resource usage of the buffering process so I can start playing before buffering is complete? YouTube is able to buffer while playing the same devices, so it should be possible. The videos are pretty low quality and around 70mb, and the bufferTime is default, not that that should make a difference.

    But that's not the problem. The problem is that I cannot play the video smoothly while buffering is going on. It doesn't matter how much has actually buffered. It's as if the iPad's CPU is too bogged down by the buffering to play video at the same time, but I don't understand why, since YouTube and other apps (not made by me) are obviously able to do it on the same iPads.

  • Problem with utube it says verify web address after buffering help!

    When I want to watch a video on youtube it starts buffering then writes verify the web address if valid then stops. What's the solution?

    Okay, so I changed the CNAME back to its defults
    but when I went into domain manager, I saw this:
    Notice the hosting. I dont understand because I have the domain hosted with godaddy.
    Anyway, do you think it could be because I had a folder with the domain? i changed it back so it looks like this now:
    (each line is one of my domains)
    And here is what my iweb publishing page looks like
    I just dont understand why its still not publishing, everything seems right
    thanks!

  • Double buffering images

    HELP!!! lol i'm trying to figure out how to get the whole double buffering thing to work with a picture like a gif image i drew in paint. i can't quite understand anything aobut how to do it. lol i've read some things and looked at some code samples but they all do it with a polygon. i just can't seem to get it right. i learn best from code snipets if that helps. don't give me a whole program i just want some lines that will help me learn it like what i have to import. and other things. i know a little about using images but not a whole lot. if anyone can help it will be appreciated.
    andy

    Psst... Tell you teacher that one can read an image with ImageIO, often in one line:
    BufferedImage image = ImageIO.read(file_or_url_or_inputstream);(No need for a MediaTracker!) And the resulting BufferedImage (a subclass of Image)
    is easier to work with than Image and has more useful features.
    Welcome to Java 2D.

Maybe you are looking for

  • Can't import from OUTLOOK EXPRESS 5 to Mail

    I was trying to import contacts and e-mails from OUTLOOK EXPRESS and somehow all my information seemed to be erased from OUTLOOK. When I try to open it up it doesn't have all my emails and addresses. It's as if it just got installed. I don't know whe

  • Saving an updated numbers spreadsheet to icloud

    Hi Everybody! I'm trying to learn how to use the icloud and numbers to seamlessly move between i-devices. I use Numbers a lot on my ipad, and have installed it on my desktop as well.  I would like it if I could create a spreadsheet on my ipad and the

  • List of users of portal per group

    Hi all, I need to make a list of portal users of each group. Where is the table, procedure, function...etc for that ? Exist some solution ? Thanks!!!

  • Adobe photoshop cs6 or cc for 4k display problem.

    I have Toshiba new 4k display (3840 x 2160) laptop (window 8.1). It's showing Photoshop text very small, even I can't read it. How can I enlarge the text? Or what setting I need to follow.

  • Managing backup systems for referenced image masters

    The manual says: +Aperture doesn't back up the masters of referenced images located outside the Aperture library. *You must maintain your own backup system of referenced image masters.* Aperture does back up the versions, previews, and metadata infor