slowly decreasing oscillation for PID

In my project, now I am facing a very interesting problem, and I would like to ask the opinion of others.

I control the temperature of a phyiscal object using the LabView PID toolkit, with good results, I set my controller manually using the Ziegler-Nichols closed loop adjustment rule. The process value (PV) reaches the set point (SP) quick (about a year and a half period time and swing left), and I've reached the ultimate accuracy (deviation around SP) fast enough.

However, I realized that in fact, in my experience, a swing slowly decline would be beneficial at the beginning of the process because of certain physical phenomena.

I guess I should use some kind of hourly? For example, I would that my control system having an oscillation decreases with only 5% of amplitude in a period time.

All tips are welcome!

Kind regards

I think that the right adjustment of the values, you could get the controller for you to do. Try to increase the proportional gain - but do not forget that with the LabVIEW PID, which will also affect the gain full and derived, then you may need to set those too. You know, Ziegler-Nichols tuning approach, that there is a proportional gain during which you get stable sustained oscillations, so looking for a proportional gain below the ultimate gain which allows you the degrowth in oscillations that you want.

For more info on math, try a search on "rate of decay PID. Conventional tuning methods aim ratio of disintegration of a quarter - each successive swing has an amplitude of 1/4 of the previous swing. Looks that you want your controller tuned for a greater ratio decomposition, where each successive swing has an amplitude of only slightly lower than the previous.

Alternatively you could overlay a swing decaying about to set. This might be easier.

Gain scheduling is used when you want the different PID gains according to the set point. From your description, I think not hourly is a solution to your problem.

Tags: NI Software

Similar Questions

  • Oscillation of PID control

    Hello

    I have a loop of circulating water, and I control the temperature in the following way:

    The sensor is a thermistor bridge, this bridge is driven with an accuracy of 5V reference (http://www.voltagestandard.com/New_Products.html). The output of this bridge is connected to a nanovoltmeter Keithley 2182. My LabView PID control (I bought the PID toolkit) drives a current source Keithley 2400 which is connected to a water - air heat exchanger Peltier solid state. On the side of this heat exchanger air is at a controlled temperature of the cabinet (air temperature stability is +-0.02 Celsius). The thermistor Bridge gives a signal of 50 mV/Kelvin to the excitement of 5V.

    I have attached a photo where you can see measurement of a time data (sampling rate of 1 Hz). In general, I have a stability +-3rd-6 volt (standard deviation), which corresponds to the stability of Kelvin +-6-5.

    I've set this PID command with the Ziegler-Nicholes tuning protocol standard, then first that I brought the stable oscillation system, and I measured the ultimate period time (1.375 minutes), and the nec plus ultra (147). The table Z - N gave to these values the following PID parameters:

    P = 86.47

    I have 0,687 min =

    D = min 0,171

    Overall, I am satisfied with my temperature control, but I'm looking for advice how to remove the visible oscillatory effect. This oscillation has a period of about 30-40 minutes, as you can see in the picture.

    Is there something I could try to make my even more precise control? (it is also possible that I'm already at the possible gate given by the structural limits...)

    Thank you very much!

    Martins wrote:

    Is there something I could try to make my even more precise control? (it is also possible that I'm already at the possible gate given by the structural limits...)

    Can trace you to the output of the control loop (the value being written to the power source)? Specifically, draw out of the Keithley (if available), since the PID algorithm can output values with a finer resolution the Keithley can generate; Otherwise, around the PID output to match the resolution of the Keithley. See if the current alternates constantly between two specific output values, or if the output is continuously evolving during the swing.

    What I think is happening, is that you have reached the limit of resolution of the power source, in this case, it will be difficult to eliminate this oscillation using PID, because the current source cannot output the exact value that you would allow to maintain the equilibrium temperature. If it does, the output changes between the two values from the nearest exit of you and you will always have a swing. You can try to increase the full gain (reduce integration time) to see if you can get a faster response and reduce the amplitude of the oscillation, but the trade-off is perhaps more great overtaking when you change the set value.

  • "Impossible to allocate 0.000 MB of memory, or decrease memory for rendering of thi requirements

    Why I get this message, it is a new computer (MacBook Pro)

    Intel Core i7 2.7 GHz

    8 GB 1600 MHz DDR3

    Intel HD Graphics 4000 1024 MB

    584,48 GB of free space.

    "Impossible to allocate 0.000 MB memory, decrease memory for rendering of this framework requirements, or install more RAM... »


    The after effects CC (12,2) update solves this problem.

    Let us know how it works for you after installing the update.

  • Local data store slowly decreases (ESXi 4.1)

    Hello people! Don't know what happens with my data store. In my inventory, I created multiple virtual machines with thin configured hard drives. I thought that was the reason why my storage started to decline slowly. Then I did a procedure of inflating this thin disc because I was sure that this action can help. In any case, this decreases every day little be small. It starts to become quite dangerous.

    Can I stop it? I'm looking for the real reason for this problem?

    Thanks in advance!

    Race out of a snapshot slowly begins to cause problems of performance, t he longer the virtual machine runs on snapshots.  In addition, there is the danger of the data store fills as you watch happen.

    Delete all deletes all snapshots on this virtual machine.  Other virtual machines are not affected.

    You can, but do not, no.

  • Reading USB-6210 tension slowly decreases with switch

    I am able to output constant 5V to an adapter hung on the wall.  The positive wire goes through a switch to the positive terminal AI and the negative wire goes directly to the corresponding terminal negative AI (basically I want the analog voltage to reflect when the switch is on or off).  I have the DAQmx configuration for differential configuration.  When the switch is activated, it reflects 5V quickly, however when the switch deactivates the voltage goes down very slowly, taking 30 seconds or more to bottom. Also, it does not on 0V, she settled on approximately - 600mV or.

    My configuration configuration is incorrect?

    Also when I connect a multimeter to the circuit the DAQ steps perfectly, with the tension fall closed when the switch is opened.  So maybe the configuration is correct and the introduced impedance is what it takes?

    Andrew:

    Your train is correct. 6210 has an input impedance of 10Gohms, so, when you open the switch, the factor of the resitance/capacimetres will take much time to bleed pressure down and the entry of data now being an open circuit, it can float just about any level of tension. You could put an arbitrary ristance between terminals of input data acquisition (but not too low). Try something like 10K or 100K ohms.

    Alternatively, you can use one of the digital inputs on the 6210 to monitor the switch. Given that supply is 5V, it is compatible for the TTL inputs.

    -AK2DM

  • I have a problem with the simulation in Matlab 6.5 and LabVIEW for PID controllers

    I have a problem with the simulation in Matlab 6.5 and LabVIEW. I have a few methods for granting regulators PID in MATLAB to go but not of LabVIEW. Degree of international teams of two transfer but when I passed to the fourth degree is no longer working. We have changed the formula to calculate the parameters for the fourth year and gave me some good values for assignment of Matlab, but when I put on LabVIEW are not resolved. the formulas are available in PDF format and are. Please help me and me someone if possible. Thank you
    Lim.4 generation in comparison methods and the MATLAB program settings are for the service of transfer to the second degree.

    Hello Lascarica,

    I noticed that you are using the screw of PID. Gains on these screws are based on TIME instead of GAIN. You should be able to build a PID regulator and vary the gains and then compare the results.

  • How can I set a deadband for PID regulation

    When I use a PID. VI to set pressure, when the PV nearby OAS, I want the PID.vi hold its output, but I have no idea to set the parameters of dead zone! (can not find the definition of dead zone)

    An engineer PLC said that the dead zone is a common parameters PID, but idon't know not how to configure in labview pid!

    Help, please, thank you!

    You've already written that you have to do. A possible implementation is simply "freeze" the output of the PID controller. Use the "advanced version" of the screw of PID (normal or with automatic adjustment in case of need).

  • Why are my upload and decent download speeds but the webpages load slowly (> 5 sec for a google image search)

    My internet speed seems fine.
    http://www.Speedtest.net/result/2476407148.PNG
    But I get the loading time huge to standard Web pages as images, and who's who more than 5 seconds. I have already restarted firefox and it uninstalled/reinstalled. The same problem occurs in google chrome as well. Firefox Safe mode does not solve the problem either.

    This could be a hardware problem?

    The reset Firefox feature can solve a lot of problems in restaurant Firefox to its factory default condition while saving your vital information.
    Note: This will make you lose all the Extensions, open Web sites and preferences.

    To reset Firefox, perform the following steps:

    1. Go to Firefox > help > troubleshooting information.
    2. Click on the button 'Reset Firefox'.
    3. Firefox will close and reset. After Firefox is finished, it will display a window with the imported information. Click Finish.
    4. Firefox opens with all the default settings applied.

    Information can be found in the article Firefox Refresh - reset the settings and Add-ons .

    This solve your problems? Please report to us!

  • My disk space decreases for no apparent reason!

    I have a Gateway with Windows Vista laptop.  I tried to clean up disk space using disk cleanup, deletion of temp. files from the Internet and even delete programs and files I don't use.  For some reason, the amount of free space on my C drive keeps getting smaller and smaller!  Is it because I have a virus download programs and taking up space?  I'm not add additional programs or files.

    For example, earlier today, I had 2 GB of free space left, and I noticed its been slowly decreasing.  I'm at 435 MB as I write this.

    Can someone help me?

    Hi John,.

    The usual culprit is the system restore. Have you tried to disable the system restore to see if you have new space that you lost? See this link from my Web site: http://www.winuser.co.uk/windows_vista_faq/11_turn_off_system_restore.html

    System Restore will have up to 15% of your disk space when creating restore points, so he can easily eat disk space on hard disks that are already full. By disabling the system restore can back space for you, once you re-enable the system restore then fresh restore points will be created (i per day) and the space will start to disappear again. Personally I disable restoring the system completely on my machine, but I don't have a regular regime of imagery of my hard drive using Acronis True Image (not free, unfortunately) just in case of problems

    John Barnett MVP: Windows XP Expert associated with: Windows Desktop Experience: Web: http://www.winuser.co.uk ; Web: http://xphelpandsupport.mvps.org ; Web: http://vistasupport.mvps.org ; Web: http://www.silversurfer-guide.com

  • When I select recently bookmarked it works ok, but when I select unsorted bookmarks it opens a window not closing cycles for a long time.and I want to close the window manually and not automatically

    When I use the selection recently marked with a bookmark in bookmarks, it works very well and load the page quickly and opens another window. but when I go to unsorted bookmarks and double-click on the desired bookmark it loads very slowly and cycles for a long time. If I go to the firefox icon in the Launcher on natty 11.04 with unity it shows two open windows. I click on the unsorted Bookmarks window and manually stop and it works well and unordered finishes, loading the bookmark page I was trying to see. Why the unsorted Bookmarks window closes on its own? Is there a setting I can do close automatically. It really slows down the loading of the page, I tried to see. well thank you for any help or advice.

    Create a new profile as a test to see if your profile is the source of the problems.

    See basic troubleshooting: make a new profile:

    There may be extensions and plugins installed by default in a new profile, so check that in "tools > Modules > Extensions & Plugins" in case there are still problems.

    If this new profile works then you can transfer files from the old profile to the new profile (be careful not to copy corrupted files)

    See:

  • Output of PID VI looks to On / Off signal

    Hi all

    I'm new to requests for PID and currently starting a project involving the PID of a heater of air command. I came across some problems and I'd appreciate really all of the suggestions here

    The installation consists of a cDAQ-9174 with RTD module (for example NOR-9217) and an output module current (NOR-9265). The process variable is the incoming temperature which is extracted from the RTD, and current output module sends the output of PID of 4-20mA to the incubator, 4mA is equivalent to heating off, and everything above that turns heater at different levels as a result.

    I found a sample program on the site OR I have changed according to my installation. PID loop rate is 10 Hz, and for this I used the calendar software (please see the attached VI). The output for the PID VI range is set to 4-20mA.

    During execution of the program, we can see RTD works well (process variable updates correctly), but the output of the PID VI signal varies between these two extremes (4 MA or 20 MA), which apparently turned into a On / Off attached template instead of PID (see the "On-off MV.jpg" screenshot). As a result, the oscillating system in undesirable ways.

    I looked at the example LabVIEW, ran to some of them, programs and they seem to work well. I also looked to their diagrams and outside the middle range output different (default is from-100 to 100), I can't see any significant difference for the other parameters to the PID VI.

    Was there everything I hard set, or was there something I missed? Any help will be greatly appreciated... Thank you!!

    Best regards

    Victor

    If you want to be using PID loops you need to learn about the setting of a PID.  There is a lot of information around on the internet on how to do and there are different methods depending on who you talk to.

    How is it tuned and the small selected output range will make things very quickly.  What you can do is to change the output of pid to 0-100 range.  Then you can use the percentage of PID to EGU vi use the output of the pid to control your 4-20mA signal.  So the 0-100 =.004 A02.  Then, you must always set the PID to your system.

    https://en.Wikipedia.org/wiki/PID_controller

  • How can I make my photos in my slideshow move slowly towards the screen while this mixture?

    I was looking at my pictures of holiday and hit the word "slideshow".  A photo could evolve slowly towards me for a few seconds, and then again one right after the other... it looked really cool.  Now - for some reason any... He is not doing that.  Everything that happens is photo suddenly appear on the screen - one right after the other.  No discoloration or movement.  How to bring back the soft cool slideshow?  Thank you - Heath

    Hi Heather,

    -What program do you use to view photos on the computer?
    -Were there any changes made to the computer before the show?

    If you use Windows Photo Viewer to display pictures on the computer, then try these steps and check.

    a. double click on a photo and click the slide show button.
    b. right-click on the photo and select slideshow speed or slide show average speed.
    c. When finished, close the Windows Photo Viewer and once more open it and check if the problem persists.

    For reference:

    View and use your pictures in Windows Photo Viewer
     http://windows.microsoft.com/is-IS/windows7/View-and-use-your-pictures-in-Windows-Photo-Viewer

    Working with digital images 
    http://Windows.Microsoft.com/en-us/Windows7/working-with-digital-pictures

    If you use program Photo Gallery to see the pictures, then I suggest you to ask your question in the forums Windows Live Photo Gallery is a product provided through Windows Live Essentials.
    http://answers.Microsoft.com/en-us/windowslive/Forum

    If you use a third-party program to look at pictures, then I suggest that you contact the software vendor for assistance.

  • Makes to default (RAM problem) for Windows 10

    I had problems with makes it default since the update to Windows 10 with the following error message:

    After effects error: unable to allocate enough memory to render the current image (1280 x 720 @ 16bpc). Decrease memory for rendering of this framework requirements, or install more RAM. (12805) for more information, see www.adobe.com/go/learn_ae_mem (7: 66) After Effects error: not enough memory Timewarp. (4) (25: 60)

    He has no less mid-term to make (at 01:58:22 04:10) after 2 h 57 min. Also my project is 8bpc set in the project settings so why the error says his 16bpc rendering (is this due to an effect)?

    Using the version of EI:

    AE CC2015.2 Version 13.7.1.6 (I do not use multiprocessing, in fact I don't see even as an option in the Menu preferred?)

    Plugins:

    Magic Bullet Suite (12.1.4)

    Rendering parameters:

    MOV Quicktime H264 with Audio (AAC), 100% quality, 8bpc

    Specifications of the PC:

    16 GB of RAM, Intel i7-4790, NVIDIA GeForce 720

    Running Windows 10 (1511) 64-bit with any questions, or running Windows 8.1 (6.3 Build 9600) 64-bit without problems.

    QuickTime:

    Version 7.7.9

    I have no other applications running while using the AE and rendering. Rendering will end if I set the quality up to 70%, which seemed strange to me because I would have assumed that AE needed to store more information on each image (and images on each side) in order to make the compression. I drove back to 8.1 Win and using the same make settings, him finished in 2:32 with no error. I've also been able to release no compressed Animation QuickTime in 16bpc on 8.1 Win I can't do on 10 to win.

    The film is loaded in AE as sequences of images (uncompressed), with a DOF, motion blur, color correct pass - there is a lot of stuff happening on each image, but his uniform in the project. I mean, he didn't suddenly to a framework intensive and abandoned, it not there no difference between managers, that he had failed and the rest of the project. There is nothing he should not be able to manage (and it is worked on Win 8.1).

    I'm just confused as to why it would be rendered OK on Win 8.1 but so sluggish and fail on 10 to win? And what can be a solution? Looks like a problem with the RAM not be reconstituted?

    The first thing I want to say is that he is a very good question. Thank you.

    I'm sure that your AE is updated but make sure. I'm on a Mac so right now our version numbers are different. Because the full architecture is being rebuilt, there is no Multi treatment in 2015 CC.

    Make sure that the Magic Bullet is up-to-date. As good that I have not updated my Magic Bullet for a long time because they have a different workflow for the color adjustment.

    The problem I see is with the rendering parameters. QuickTime has completely abandoned their support for H.264 in a Quicktime container. He has never worked well, and when he did he was unreliable and slow to render as a delivery format. I would never use this format. If you use Adobe Media Encoder to render your h.264 as a MP4 using one of the predefined default settings then that is the way to go. If you make a computer directly in the SOUL, than rendering through AE output module because AE are running in the background. If you have used the Ray-tracing and have a NVIDIA / map CUDA compatible then the SOUL will not use your GPU for rendering and she will be forever and may not work at all.

    I guess that's your pass rendering because you choose a MPEG format which is not really suitable for mounting more far and re - compress. My recommendation would be first purge the cache of your disk and the image in AE and will then return in a production master format adapted from the landmark Render, and then encode your H.264 in the SOUL. Several times, it will be faster that make a model directly in the SOUL. By far the shortest makes time in him come from SOUL of a master of production without loss of quality. Most of the time I just send makes the TEA directly from the AE, and then I continue to work on other shots because I can't afford to wait. It is the most effective for me, but if the project is under a tight delivery deadline I'll usually make a mastery of the production of EI and then compress it in SOUL for delivery.

    If you get the error, there could be another thing that past can be fixed by changing the cache settings in the Panel preferences Secret. You access this Panel by holding down the SHIFT key when you open Preferences > General. Disable the Cache layer and serve the latest images.

  • The execution plan changes for the same query.

    Hi all

    This issue was raised before also, but still not able to find the real cause of this.

    Thread1:
    Re: Research of fragmentation of the table in Oracle 8.1.6.3.0

    Thread2:
    CBC latch and buffer busy await you on the same table.

    It comes, sometimes hammers server 100% CPU utilization with free latch and buffer busy wait events.

    We found a single query consumes high CPU usage that is run by different sessions.

    This query have two types of execution plans, where one is accurate and is not (its primary key hit index index no appropriate means present on the table)

    Because its primary key index hit repeatedly at various sessions, some sessions are powerful db file sequential read and a few sessions waiting buffer busy waits for event. Also during this time a few sessions waiting for latch free event.

    My doubt is how to sql even with different literal values execution plan changes and causes a prob.
    select count(*),event from v$session_wait group by event;
      COUNT(*) EVENT
    ---------- ----------------------------------------------------------------
           165 SQL*Net message from client
             1 SQL*Net message to client
             3 buffer busy waits
             2 db file parallel read
            18 db file sequential read
            10 latch free
             5 log file sync
             1 pmon timer
             6 rdbms ipc message
             1 smon timer
    
    SQL> select sid from v$session_wait where event='db file sequential read';
           SID
    ----------
            26
            58
            82
           107
           116
           223
           212
           203
           192
           173
           161
           157
           150
           147
           254
           238
           229
           112
           101
            81
            68
    
    SQL> select spid, sid, s.serial#, p.program from v$session s, v$process p where paddr=addr and sid=&SID;
    Enter value for sid: 161
    old   1: select spid, sid, s.serial#, p.program from v$session s, v$process p where paddr=addr and sid=&SID
    new   1: select spid, sid, s.serial#, p.program from v$session s, v$process p where paddr=addr and sid=161
    
    SPID             SID    SERIAL# PROGRAM
    --------- ---------- ---------- ------------------------------------------------
    4231             161      49569 oracle@tfrdb3 (TNS V1-V3)
    
    
    SQL> select sql_text
    from v$process a,
         v$session b,  2    3
         v$sql c
    where a.addr = b.paddr and
         b.sql_hash_value = c.hash_value and
        a.spid = &PID;  4    5    6    7
    Enter value for pid: 4231
    old   7:     a.spid = &PID
    new   7:     a.spid = 4231
    
    SQL_TEXT
    --------------------------------------------------------------------------------
    SELECT ERROR,TIME_STAMP,O_RESOURCE,QUEUE,NEW_QUEUE FROM LOG WHERE ID = '09292AMR
    10B41FE' AND TYPE IN (11, 28, 25, 18, 60, 13) AND (LOG_SEQ>'234225222' OR TYPE =
     18 AND LOG_SEQ='234225222') ORDER BY TIME_STAMP ASC
    
    SQL> set autotrace traceonly exp
    SQL> SELECT ERROR,TIME_STAMP,O_RESOURCE,QUEUE,NEW_QUEUE FROM amrwf1.LOG WHERE ID = '09292AMR10B41FE' AND TYPE IN (11, 28, 25, 18, 60, 13) AND (LOG_SEQ>'234225222' OR TYPE =18 AND LOG_SEQ='234225222') ORDER BY TIME_STAMP ASC;
    
    Execution Plan
    ----------------------------------------------------------
       0      SELECT STATEMENT Optimizer=CHOOSE (Cost=11 Card=2 Bytes=126)
       1    0   SORT (ORDER BY) (Cost=11 Card=2 Bytes=126)
       2    1     CONCATENATION
       3    2       TABLE ACCESS (BY INDEX ROWID) OF 'LOG' (Cost=4 Card=1
              Bytes=63)
    
       4    3         INDEX (UNIQUE SCAN) OF 'PK_LOG_LOG_SEQ' (UNIQUE) (Co
              st=3 Card=1)
    
       5    2       TABLE ACCESS (BY INDEX ROWID) OF 'LOG' (Cost=4 Card=1
              Bytes=63)
    
       6    5         INDEX (RANGE SCAN) OF 'PK_LOG_LOG_SEQ' (UNIQUE) (Cos
              t=3 Card=1)
    
    
    SQL> select spid, sid, s.serial#, p.program from v$session s, v$process p where paddr=addr and sid=&SID;
    Enter value for sid: 147
    old   1: select spid, sid, s.serial#, p.program from v$session s, v$process p where paddr=addr and sid=&SID
    new   1: select spid, sid, s.serial#, p.program from v$session s, v$process p where paddr=addr and sid=147
    
    SPID             SID    SERIAL# PROGRAM
    --------- ---------- ---------- ------------------------------------------------
    6255             147      38306 oracle@tfrdb3 (TNS V1-V3)
    
    SQL> select sql_text
    from v$process a,
         v$session b,
         v$sql c  2    3
    where a.addr = b.paddr and
         b.sql_hash_value = c.hash_value and
        a.spid = &PID;  4    5    6    7
    Enter value for pid: 6255
    old   7:     a.spid = &PID
    new   7:     a.spid = 6255
    
    SQL_TEXT
    --------------------------------------------------------------------------------
    SELECT ERROR,TIME_STAMP,O_RESOURCE,QUEUE,NEW_QUEUE FROM LOG WHERE ID = '09273AMR
    62B4894' AND TYPE IN (11, 28, 25, 18, 60, 13) AND (LOG_SEQ>'223324996' OR TYPE =
     18 AND LOG_SEQ='223324996') ORDER BY TIME_STAMP ASC
    
    
    SQL> set autotrace traceonly exp
    SQL> SELECT ERROR,TIME_STAMP,O_RESOURCE,QUEUE,NEW_QUEUE FROM amrwf1.LOG WHERE ID = '09273AMR62B4894' AND TYPE IN (11, 28, 25, 18, 60, 13) AND (LOG_SEQ>'223324996' OR TYPE =18 AND LOG_SEQ='223324996') ORDER BY TIME_STAMP ASC;
    
    Execution Plan
    ----------------------------------------------------------
       0      SELECT STATEMENT Optimizer=CHOOSE (Cost=1538 Card=736 Bytes=
              46368)
    
       1    0   SORT (ORDER BY) (Cost=1538 Card=736 Bytes=46368)
       2    1     TABLE ACCESS (BY INDEX ROWID) OF 'LOG' (Cost=1527 Card=7
              36 Bytes=46368)
    
       3    2       INDEX (RANGE SCAN) OF 'LOG_ID' (NON-UNIQUE) (Cost=32 C
              ard=736)
    
    
    
    SQL> select spid, sid, s.serial#, p.program from v$session s, v$process p where paddr=addr and sid=&SID;
    Enter value for sid: 82
    old   1: select spid, sid, s.serial#, p.program from v$session s, v$process p where paddr=addr and sid=&SID
    new   1: select spid, sid, s.serial#, p.program from v$session s, v$process p where paddr=addr and sid=82
    
    SPID             SID    SERIAL# PROGRAM
    --------- ---------- ---------- ------------------------------------------------
    6172              82      45378 oracle@tfrdb3 (TNS V1-V3)
    
    
    SQL> select sql_text
    from v$process a,
         v$session b,
         v$sql c
    where a.addr = b.paddr and
         b.sql_hash_value = c.hash_value and  2
      3      a.spid = &PID;  4    5    6    7
    Enter value for pid: 6172
    old   7:     a.spid = &PID
    new   7:     a.spid = 6172
    
    SQL_TEXT
    --------------------------------------------------------------------------------
    INSERT INTO LOG (ID,TIME_STAMP,TYPE,ERROR,INSTANCE,RULE_NUM,RULE_TYPE,PRIORITY,F
    LAGS,NAME,BATCH,O_RESOURCE,QUEUE,NEW_QUEUE,SERVER,FORM,WORKSET) VALUES (:V001,:V
    002,11,0,0,3,1,0,1,:V003,:V004,:V005,:V006,:V007,:V008,:V009,:V010)
    
    INSERT INTO LOG (ID,TIME_STAMP,TYPE,ERROR,INSTANCE,RULE_NUM,RULE_TYPE,PRIORITY,F
    LAGS,NAME,BATCH,O_RESOURCE,QUEUE,NEW_QUEUE,SERVER,FORM,WORKSET) VALUES (:V001,:V
    002,11,0,0,3,1,0,1,:V003,:V004,:V005,:V006,:V007,:V008,:V009,:V010)
    
    INSERT INTO LOG (ID,TIME_STAMP,TYPE,ERROR,INSTANCE,RULE_NUM,RULE_TYPE,PRIORITY,F
    LAGS,NAME,BATCH,O_RESOURCE,QUEUE,NEW_QUEUE,SERVER,FORM,WORKSET) VALUES (:V001,:V
    002,11,0,0,3,1,0,1,:V003,:V004,:V005,:V006,:V007,:V008,:V009,:V010)
    
    SQL_TEXT
    --------------------------------------------------------------------------------
    
    INSERT INTO LOG (ID,TIME_STAMP,TYPE,ERROR,INSTANCE,RULE_NUM,RULE_TYPE,PRIORITY,F
    LAGS,NAME,BATCH,O_RESOURCE,QUEUE,NEW_QUEUE,SERVER,FORM,WORKSET) VALUES (:V001,:V
    002,11,0,0,3,1,0,1,:V003,:V004,:V005,:V006,:V007,:V008,:V009,:V010)
    
    INSERT INTO LOG (ID,TIME_STAMP,TYPE,ERROR,INSTANCE,RULE_NUM,RULE_TYPE,PRIORITY,F
    LAGS,NAME,BATCH,O_RESOURCE,QUEUE,NEW_QUEUE,SERVER,FORM,WORKSET) VALUES (:V001,:V
    002,11,0,0,3,1,0,1,:V003,:V004,:V005,:V006,:V007,:V008,:V009,:V010)
    
    INSERT INTO LOG (ID,TIME_STAMP,TYPE,ERROR,INSTANCE,RULE_NUM,RULE_TYPE,PRIORITY,F
    LAGS,NAME,BATCH,O_RESOURCE,QUEUE,NEW_QUEUE,SERVER,FORM,WORKSET) VALUES (:V001,:V
    
    SQL_TEXT
    --------------------------------------------------------------------------------
    002,11,0,0,3,1,0,1,:V003,:V004,:V005,:V006,:V007,:V008,:V009,:V010)
    
    INSERT INTO LOG (ID,TIME_STAMP,TYPE,ERROR,INSTANCE,RULE_NUM,RULE_TYPE,PRIORITY,F
    LAGS,NAME,BATCH,O_RESOURCE,QUEUE,NEW_QUEUE,SERVER,FORM,WORKSET) VALUES (:V001,:V
    002,11,0,0,3,1,0,1,:V003,:V004,:V005,:V006,:V007,:V008,:V009,:V010)
    How to avoid this... why its different execution plan using (I mean bad index PK)

    Is it possible to avoid this?

    If any details please check out some of my previous post on this specific URL (above)

    -Yasser

    My doubt is how to sql even with different literal values execution plan changes and causes a prob.

    Different literal values cause analysis difficult.
    Hard analysis includes the re-evaluation of the best path.
    Literal value is included in the assessment of the selectivity for the scan interval (log_seq >...)

    See
    http://www.centrexcc.com/A%20Look%20under%20The%20Hood%20Of%20CBO%20-%20The%2010053%20Event.ppt.PDF
    http://www.centrexcc.com/fallacies%20Of%20The%20Cost%20Based%20Optimizer.PDF
    more the book of Jonathan Lewis which other threads, I believe that you already have.

    You must lower your CPU.
    Previous discussions, if the situation is still the same, it sounded like hard analysis particularly with this SELECTION against the NEWSPAPER plays an important role in that.

    How to avoid this... why its different execution plan using (I mean bad index PK)

    The points raised in the previous discussion remain valid.
    -Do you have access to this SQL to change?
    for example using bind variable or trick it if necessary due to problems caused by data as discussed in the previous thread.
    - Or you could it repoint the view to a view and a hint?
    -If a particular user makes this sql, could affect you cursor_sharing just for this user. If not, you should consider implementing pan-Canadian database.

    Oracle 8.1.6 still?

  • Using the loop will decrease performance

    Hello
    Using the loop with a query will decrease performance.

    for r_row in (select * from table) Loop
    end of loop.

    This is done within another loop for, more cases, it returns a single value.
    It will decrease the performance of the procedure.
    kindly advice...

    Kind regards
    Balu

    user575682 wrote:
    Using the loop with a query will decrease performance.

    for r_row in (select * from table) Loop
    end of loop.

    This is done within another loop for, more cases, it returns a single value.
    It will decrease the performance of the procedure.

    Perhaps better understand everything that makes this PL/SQL loop construction.

    PL/SQL is two languages. It's PL (logic programming code) like Pascal, C or Java. You can use a 2nd language in it called SQL. The PL engine will be able to recognize when the 2nd language is used. And it compiles all the things that are necessary for motor PL call the SQL engine, pass the data to the SQL engine and get back data, etc. (compare this with the complexity of the use of SQL in Pascal, C or Java language).

    So what's this loop? The PL engine recognizes the SQL SELECT statement. It creates an implicit cursor by calling the SQL engine to analyze (I hope a soft Parser), then run it.

    As part of the loop of the PL, the PL engine now calls the SQL engine to extract data (lines) of the cursor. With 10g and later, the engine of the PL is smart enough to use the implicit treatment in bulk.

    Before 10 g that he used to extract a line from the SQL engine, make the loop, the next line extraction, the loop, etc. In other words, if there is a 1000 lines to pick up, he'll call the SQL engine after 1000.

    With 10g and later he get a 100 lines, which store in a buffer internal and then make the loop once 100. With a 1000 lines to fetch, it requires 10 extractions in bulk instead of one 1000 rank of extractions.

    These extractions require a change of context - as the engine PL must not out back, and in the SQL engine to extract a line. It is an overhead projector and can become so slow the context switch nothing more.

    And it's the construction of bases for this loop (and most other cursor loops) in PL/SQL.

    The ideal is to reduce the number of context switches. It is an overload that can have an impact on performance.

    What about using a loop in a loop. As 'bad '. This example uses the outer loop to retrieve the data. These data are then used to excite the extraction in internal or nested loop. The outside loop draws data from the SQL engine in PL variables Inside loop drives that same data back to the SQL engine.

    Why? It would have been much faster not to pull and push data between the loops using PL.

    It will be much faster do so only through SQL. Write the two loops as a single SQL statement and have the SQL engine directly driving these loops itself. This is called a JOIN in SQL. And the SQL engine can do not only more quickly, but it has a few algorithms of multiplied can be used which are even faster than a nested loop process (called merge joins, hash joins, etc.).

    Bottom line. Optimize SQL. Reduce to a minimum the PL. *

    Do as much of your data, crunch in SQL as possible. SQL is the fastest 'place' and process the data. No PL (or C/Pascal/Java).

Maybe you are looking for

  • Available in Win7 disk Admin 3 TB drive; only 801GB recognized by BIOS

    Hello I used the seagate Disk Wizard to format GPT disk, and 1 partition of size 3 TB.  The operating system recognizes the disc as such.  However, once I try to write more than 800 GB (which is what recognizes the bios), the system interrupts the an

  • Installation of an earlier version of iTunes

    Get message 'Cannot install' - 42401. I have a music library, but can not access! Help! Thank you Frustrated in Iowa

  • Waveform addons

    I need to be able to add noise (Gaussian, uniform or no noise) to my VI, yes it is a homework problem. I went to the book and many tutorials. So I'm pretty stuck on this. Would need another enum control? But how can I when may only be connected to th

  • HP Color Laserjet 277dw MFP: recording digitized files in smaller formats such as jpeg or pdf

    The scanner automatically saves files as TIF, which are too big for my needs. How can I change this setting to save the files scanned in JPEG or PDF format? (I scan using only HP Easy Scan of my computer, because my home computer is not on a network,

  • ISA-570W behind router 1921

    Hi all We just bought a 570W ISA.  I have a router in 1921 that we use for our DSL connection.  Basic configuration on 1921 only for the DSL connection and pass-through.  How do you get the NATTING on ISA to allow internal users internet.  External i