Liquify & poor performance (scratch drive use)

Hi,
(Firstly, I'm an ex programmer, so fairly technical...)
I've recently been looking into the performance of the liquify filter in Photoshop CS4 11.0.1 on my i7-950, Vista64, 64 bit photoshop, 12Gb RAM. It seems to "stall" for a second or two after certain brush strokes. Other people on the internet have reported similar things.
I've come to the conclusion that the Liquify filter has a fundamental issue, as described below. Firstly, here's what I've noticed:
I'm liquifying a large image (5000 pixels deep) using a large brush (1500 pixels).
When I do a few liquify brush strokes with the push tool, I notice that liquify stalls for a few seconds.
Vista performance monitor tells me that Photoshop is writing a large amount of data to a file on my F drive, which is NOT the drive I've set to be my scratch disk (my scratch disk is Y drive - a fast raptor)
What I believe is happening (this is my guess) is, since Photoshop 7.0, Liquify gained multiple undo states. In the implementation of this, the developers chose to get Liquify to not use the scratch disk that Photoshop does, but instead to choose the largest drive it can find to use to save history states. My evidence for this is that some people with network and USB drives have to disconnect them in order to get liquify to perform well after you lift the mouse button and my F drive is the joint largest I have in my machine. I've also noticed that if you use a 1500 size brush on a SMALL file (like 1500 on it's largest axis) you don't get the same stall - which suggests to me that the history states system saves the entire image (presumably as well as the mesh) in order to speed up the undo.
This problem as described doesn't appear to me anything to do with:
RAM - I have 12Gb on Vista64 and photoshop64 and set photoshop to use 6Gb of that. The photoshop file is a single layer file only at 16bit.
Processor speed - I'm on an i7 950.
OpenGL settings - it's only when I lift the mouse button after several mouse operations that the problem happens. I've also tried switching that off.
History states settings in photoshop - I've tried setting it to one.
I've checked TEMP emvironment variables and virtual memory settings. Neither is specifiying the F drive.
Has anyone else seen this? Can you reproduce it using these steps:
Load a PSD (preferably 16 bit, single layer)
Resize it to over 5000 pixels on it's largest axis.
Start liquify
Change the brush size to 1500 pixels
Do a number of small push brush strokes
After a few, you should notice a small stall
If you can, get the resource monitor up in vista: task manager -> choose "performance" tab -> Click "Resource monitor" button -> open "disk" dropdown -> click on "write b/min" to show you the programs accessing the most disk. This should show you photoshop (liquify presumably) saving a large amount of data to a drive you never told it to use.
I'm quite happy to be wrong with any or all of my guesswork, assumptions and conclusions and would be delighted if anyone has a solution for this - other than the usual "resize, save mesh, load mesh" option to speed up liquify - I have 100 files to liquify and it's just too slow
Thanks everyone in advance for your thoughts
Phil
Finally here's some links which show similar things:
http://www.realgeek.com/forums/photoshop-cs4-liquify-tool-issue-472605.html
http://www.xpertgurus.com/showthread.php?t=171454
http://www.fredmiranda.com/forum/topic/754197/0

Here is what someone else said about the issue:
"When people on here say Photoshop is no longer accessing the scratchdisk as they have lots of ram, are they SURE? I initially thought it was odd when a noise I hadn't noticed before (More than likely due to having loud music on whilst editing) when using alt+click to hide/show all layers was infact my hardrives seeking. It's almost inaudible but I tend to have very sensitive hearing.
So, i'm just working on a large 120 scan building up my layers as you do, and I go to liquify a section of the image. Now it's a large image and even though my PC is fast I don't expect it to absoultely blitz everything I throw at it, and liquify is typically a pretty crap part of Photoshop for speed anyway. So out of curiosity I open up task manager to see what my CPU usage is like.. bouncing along the bottom, jumping upto 25/30% every so often, usually when making larger adjustments, felt happy, and clicked OK.
Something made me open up Resource Monitor and noticed the hardrive jumping upto 180mb/s usage. Expand the view and it is indeed Photoshop absolutely tanning the hardrive. All the while my Ram usage is at around 5GB.
So, if this is indeed normal, a word of advice folks  Invest in a RAID0 scratchdisk volume if you do large edits on large files.. Because photoshop seems to prioritize the scratchdisk before ram in some cases. If this is not normal or doesn't happen to you, please state specs, PS version, settings etc, tar.
For those interested, computer is a 3.2ghz Quad, 16GB of ram, RAID0 array for OS (Which is also the scratchdisk), and Photoshop CS4 64-bit ram usage is set at 70%, Cache Levels 6, History states 20. "
It's from one of the links in my original post.. The thing that I seem to have found that others have not spotted in my investigations is that Liquify is using any disk that it wants and (so far) there doesn't seem to be a way to tell it to use your specified scratch disk.

Similar Messages

  • Poor performance caused by using OCI driver?

    [Sorry for the multipost]
    I'm working on a medium-sized Apache / Tomcat / WLS 5.10 / Oracle
    system hosted on some 4-processor Suns. The Apache / Tomcat tier
    uses one box, the WebLogic tier uses another, and the Oracle tier
    uses a third.
    We've found that the performance, measured as the time it takes user
    operations like loading a page that displays database data, gets
    unacceptably bad at suspiciously low loads. When the system is in
    this state, none of the machines appears to be pushed very hard.
    There's no significant paging going on, the disk and network I/O
    isn't out of line, and the CPU load just isn't high enough to
    explain what's going on. Only the WebLogic tier shows a load over
    10%. When the system is perceived as too slow by the users, the
    CPU load on this tier is only 30-40%.
    To try to find out what's going on, I did a series of thread dumps.
    When the system is heavily loaded, I only see about three Oracle
    statements currently being processed (runnable threads with call
    stacks inside weblogic.db.oci.*). What I do see lots of is blocked
    (and one runnable) threads inside
    weblogic.rjvm.RJVMImpl.removePeerGoneListener or
    weblogic.rjvm.RJVMImpl.addPeerGoneListener. These threads appear to
    be attempting to obtain or release database connections.
    I don't know why, but the site is configured to use the WebLogic OCI
    driver for Oracle, instead of the Oracle-supplied thin driver. Is what I'm
    seeing what Sun is describing in this paragraph
    (excerpted from http://java.sun.com/docs/hotspot/PerformanceFAQ.html#24):
    Oracle provides two types of database drivers: a type-2
    driver, called the OCI (Oracle Call Interface) driver
    that utilizes native code, and a type-4 pure Java driver
    called the thin driver. In single processor environments,
    the thin driver works somewhat better than the OCI driver
    because of the JNI overhead associated with the OCI
    driver. On multi-processor configuations, synchronization
    points within Solaris used by the OCI driver become big
    bottlenecks and prevent scaling. We recommend using the
    thin driver in all cases.
    -- Erik

    Hi. I'll chip in here too. Yes, you are wasting JVM cycles having all those
    wasted threads. Threads aren't free, inexhaustable sources of compute power
    that some people assume (I'm not saying you're one). All these threads do
    share a single OS process and CPU. The JVM has to check all these all the
    time to see if they have something to do. I recommend configuring the
    server to run about 15 or 20 execute-threads.
    I see only one thread waiting on Oracle to return data, so I don't think this
    is a JDBC issue necessarily. What I do see is lots of threads trying to operate
    on a Vector, all being blocked, or at least serialized by the lock this thread has, below.
    Is the server hung at this point, or just slow?
    "ExecuteThread-109" daemon prio=5 tid=0x311fb8 nid=0x78 runnable [0xcf9ff000..0xcf9ffc68]
    at java.util.Vector.removeElementAt(Vector.java:509)
    at java.util.Vector.removeElement(Vector.java:598)
    at weblogic.rjvm.RJVMImpl.removePeerGoneListener(RJVMImpl.java:352)
    at weblogic.time.server.ScheduledTrigger.destroy(ScheduledTrigger.java:112)
    at weblogic.time.server.ScheduledTrigger.cancel(ScheduledTrigger.java:100)
    at weblogic.jts.internal.CoordinatorImpl.cancelCurrentTimer(CoordinatorImpl.java:199)
    at weblogic.jts.internal.CoordinatorImpl.commit(CoordinatorImpl.java:404)
    at weblogic.jts.internal.TxContext.commit(TxContext.java:255)
    at weblogic.ejb.internal.StatelessEJBObject.postInvokeOurTx(StatelessEJBObject.java:103
    at weblogic.ejb.internal.BaseEJBObject.postInvoke(BaseEJBObject.java:849)
    at com.xxx.yyy.as.TaskSessionEJBEOImpl.findTaskByFilter(TaskSessionEJBEOImpl.java:784)
    at
    com.xxx.yyy.as.TaskSessionEJBEOImpl_WLSkel.invoke(TaskSessionEJBEOImpl_WLSkel.java:101)
    at
    weblogic.rmi.extensions.BasicServerObjectAdapter.invoke(BasicServerObjectAdapter.java:347)
    at
    weblogic.rmi.extensions.BasicRequestHandler.handleRequest(BasicRequestHandler.java:96)
    at weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest.java:15)
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:129)
    Erik Horstkotte wrote:
    "Rob Woollen" <[email protected]> wrote in message
    news:[email protected]...
    You generally need a lot of data to find the performance problem in
    a distributed system like this.Understood, but I was hoping that someone would recognize my description
    as the "signature" of the locking problem with the OCI driver that Sun
    describes.
    It's very easy to switch to the Thin driver so you might as well
    try it.I had hoped so, and in most cases, you're likely correct. Unfortunately,
    the OCI driver is a touch more permissive than the thin driver. Some
    errors (too many bind parameters) have crept in to our code that don't
    cause problems for the OCI driver, but cause exceptions to be thrown by
    the thin driver. In this particular case, I'm trying to solve a problem on
    a production system - fixing the code there isn't an option (we are
    switching to thin driver in our next release, so we are fixing these
    problems).
    If that doesn't help, I would suggest inserting some timing logic
    in your code. In particular, I'd want to know the time a request
    entered apache/tomcat, left apache/tomcat, entered WLS, left WLS
    (to go to the database), returned from the database, left WLS, got
    back to apache/tomcat, and finally left apache/tomcat to return the
    response. With information like that, you should be able to narrow
    down the problem a bit.In the next release, this is a good idea, and we'll probably do something
    much like this. Unfortunately I can't make changes to the code on the
    production site, so I have to rely on more passive methods of data
    collection for the moment.
    "Slava Imeshev" <[email protected]> wrote in message
    news:[email protected]...
    There can be other reasons for bad performance ranging from
    serialized access to singletons to inefficient queries to
    server mis-configuration. I have some doubts that oci driver
    would affect performance at low loads.I don't see any evidence of serialization blocking, except for the
    interesting locking issue that I mentioned in the original message (a
    PeerGoneListener table maintained somewhere down inside WLS).
    I'm certain that inefficient queries play a large role in our
    performance problems.
    Service mis-configuration could very well play a role here. Note for
    example the large number of blocked idle execute threads in the thread
    dump below. Clearly this instance has way too many execute threads. Not
    knowing the internal architecture of WebLogic Server, nor the
    implementation method Sun used for monitors in Solaris JVM 1.4.2, I don't
    know how much of an impact an excess of execute threads has on
    performance. Anyone?
    Could you post a questionable thread dump here?See the bottom of this message. The dump has been "blinded" to remove some
    customer-specific information.
    Also, what's the load in terms of number of concurrent users
    and requests per second?At peak load, there are about 60 users logged in, of whom only about 4-12
    actually do much. The number of requests per second is very peaky, and
    varies from about 1-10 per second. The complexity of requests also varies
    wildly.
    I've attached a thread dump from a point in time when the WebLogic Server
    instance was taking about 30% of the CPU.
    Any and all ideas are appreciated.
    -- Erik
    Full thread dump:
    "HighPriority TimeEventGenerator" daemon prio=9 tid=0x4223ed0 nid=0xa7 waiting on monitor [0xcceff000..0xcceffc68]
    at java.lang.Object.wait(Native Method)
    at weblogic.time.common.internal.TimeTable.snooze(TimeTable.java:279)
    at weblogic.time.common.internal.TimeEventGenerator.run(TimeEventGenerator.java:141)
    at java.lang.Thread.run(Thread.java:484)
    "ListenThread" prio=5 tid=0x423f7a0 nid=0xa6 runnable [0xccbff000..0xccbffc68]
    at java.net.PlainSocketImpl.socketAccept(Native Method)
    at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:421)
    at java.net.ServerSocket.implAccept(ServerSocket.java:243)
    at java.net.ServerSocket.accept(ServerSocket.java:222)
    at weblogic.socket.WeblogicServerSocket.accept(WeblogicServerSocket.java:26)
    at weblogic.t3.srvr.ListenThread.run(ListenThread.java:325)
    "NBExecuteThread-1" daemon prio=5 tid=0x331ea0 nid=0xa2 waiting on monitor [0xccfff000..0xccfffc68]
    at java.lang.Object.wait(Native Method)
    at java.lang.Object.wait(Object.java:420)
    at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:99)
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:126)
    "NBExecuteThread-0" daemon prio=5 tid=0x3317b8 nid=0xa1 waiting on monitor [0xcd0ff000..0xcd0ffc68]
    at java.lang.Object.wait(Native Method)
    at java.lang.Object.wait(Object.java:420)
    at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:99)
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:126)
    "ExecuteThread-149" daemon prio=5 tid=0x330228 nid=0xa0 runnable [0xcd1ff000..0xcd1ffc68]
    at weblogic.socket.PosixSocketMuxer.poll(Native Method)
    at weblogic.socket.PosixSocketMuxer.processSockets(PosixSocketMuxer.java:290)
    at weblogic.socket.SocketReaderRequest.execute(SocketReaderRequest.java:23)
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:129)
    "ExecuteThread-148" daemon prio=5 tid=0x32f740 nid=0x9f waiting on monitor [0xcd2ff000..0xcd2ffc68]
    at java.lang.Object.wait(Native Method)
    at java.lang.Object.wait(Object.java:420)
    at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:99)
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:126)
    "ExecuteThread-147" daemon prio=5 tid=0x32ec58 nid=0x9e waiting for monitor entry [0xcd3ff000..0xcd3ffc68]
    at weblogic.socket.PosixSocketMuxer.processSockets(PosixSocketMuxer.java:289)
    at weblogic.socket.SocketReaderRequest.execute(SocketReaderRequest.java:23)
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:129)
    "ExecuteThread-146" daemon prio=5 tid=0x32e170 nid=0x9d waiting for monitor entry [0xcd4ff000..0xcd4ffc68]
    at weblogic.socket.PosixSocketMuxer.processSockets(PosixSocketMuxer.java:289)
    at weblogic.socket.SocketReaderRequest.execute(SocketReaderRequest.java:23)
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:129)
    "ExecuteThread-145" daemon prio=5 tid=0x32ce80 nid=0x9c waiting on monitor [0xcd5ff000..0xcd5ffc68]
    at java.lang.Object.wait(Native Method)
    at java.lang.Object.wait(Object.java:420)
    at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:99)
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:126)
    "ExecuteThread-144" daemon prio=5 tid=0x32c398 nid=0x9b waiting for monitor entry [0xcd6ff000..0xcd6ffc68]
    at java.util.Vector.removeElement(Vector.java:595)
    at weblogic.rjvm.RJVMImpl.removePeerGoneListener(RJVMImpl.java:352)
    at weblogic.jts.internal.CoordinatorImpl.unregisterClientDeathNotification(CoordinatorImpl.java:101)
    at weblogic.jts.internal.CoordinatorImpl.commit(CoordinatorImpl.java:347)
    at weblogic.jts.internal.TxContext.commit(TxContext.java:255)
    at weblogic.ejb.internal.StatelessEJBObject.postInvokeOurTx(StatelessEJBObject.java:103)
    at weblogic.ejb.internal.BaseEJBObject.postInvoke(BaseEJBObject.java:849)
    at com.xxx.yyy.as.ProfileSessionEJBEOImpl.getContactNumbers(ProfileSessionEJBEOImpl.java:5687)
    at com.xxx.yyy.as.ProfileSessionEJBEOImpl_WLSkel.invoke(ProfileSessionEJBEOImpl_WLSkel.java:222)
    at weblogic.rmi.extensions.BasicServerObjectAdapter.invoke(BasicServerObjectAdapter.java:347)
    at weblogic.rmi.extensions.BasicRequestHandler.handleRequest(BasicRequestHandler.java:96)
    at weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest.java:15)
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:129)
    "ExecuteThread-143" daemon prio=5 tid=0x32b8b0 nid=0x9a waiting on monitor [0xcd7ff000..0xcd7ffc68]
    at java.lang.Object.wait(Native Method)
    at java.lang.Object.wait(Object.java:420)
    at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:99)
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:126)
    "ExecuteThread-142" daemon prio=5 tid=0x32adc8 nid=0x99 waiting on monitor [0xcd8ff000..0xcd8ffc68]
    at java.lang.Object.wait(Native Method)
    at java.lang.Object.wait(Object.java:420)
    at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:99)
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:126)
    "ExecuteThread-141" daemon prio=5 tid=0x32a2e0 nid=0x98 waiting on monitor [0xcd9ff000..0xcd9ffc68]
    at java.lang.Object.wait(Native Method)
    at java.lang.Object.wait(Object.java:420)
    at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:99)
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:126)
    "ExecuteThread-140" daemon prio=5 tid=0x3297f8 nid=0x97 waiting on monitor [0xcdaff000..0xcdaffc68]
    at java.lang.Object.wait(Native Method)
    at java.lang.Object.wait(Object.java:420)
    at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:99)
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:126)
    "ExecuteThread-139" daemon prio=5 tid=0x328d10 nid=0x96 waiting for monitor entry [0xcdbff000..0xcdbffc68]
    at java.util.Vector.addElement(Vector.java:573)
    at weblogic.rjvm.RJVMImpl.addPeerGoneListener(RJVMImpl.java:348)
    at weblogic.time.server.ScheduledTrigger.setExecCon(ScheduledTrigger.java:46)
    at weblogic.t3.srvr.T3ServerServices.getScheduledTrigger(T3ServerServices.java:177)
    at weblogic.jts.internal.CoordinatorImpl.resetTimer(CoordinatorImpl.java:210)
    at weblogic.jts.internal.CoordinatorImpl.<init>(CoordinatorImpl.java:83)
    at weblogic.jts.internal.CoordinatorFactoryImpl.createCoordinator(CoordinatorFactoryImpl.java:95)
    at weblogic.jts.internal.CoordinatorFactoryImpl_ServiceStub.createCoordinator(CoordinatorFactoryImpl_ServiceStub.java:69)
    at weblogic.jts.internal.TxContext.getCoordinator(TxContext.java:139)
    at weblogic.jts.internal.TxContext.begin(TxContext.java:93)
    at weblogic.jts.internal.CurrentImpl.begin(CurrentImpl.java:48)
    at weblogic.jts.internal.TransactionManagerImpl.begin(TransactionManagerImpl.java:56)
    at weblogic.ejb.internal.EJBHomeImpl.setupTransaction(EJBHomeImpl.java:838)
    at weblogic.ejb.internal.BaseEJBObject.setupTransaction(BaseEJBObject.java:281)
    at weblogic.ejb.internal.BaseEJBObject.preInvoke(BaseEJBObject.java:471)
    at com.xxx.yyy.as.SecuritySessionEJBEOImpl.getClientConfigurationSiteSpecific(SecuritySessionEJBEOImpl.java:143)
    at com.xxx.yyy.as.SecuritySessionEJBEOImpl_WLSkel.invoke(SecuritySessionEJBEOImpl_WLSkel.java:254)
    at weblogic.rmi.extensions.BasicServerObjectAdapter.invoke(BasicServerObjectAdapter.java:347)
    at weblogic.rmi.extensions.BasicRequestHandler.handleRequest(BasicRequestHandler.java:96)
    at weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest.java:15)
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:129)
    "ExecuteThread-138" daemon prio=5 tid=0x328228 nid=0x95 waiting on monitor [0xcdcff000..0xcdcffc68]
    at java.lang.Object.wait(Native Method)
    at java.lang.Object.wait(Object.java:420)
    at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:99)
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:126)
    "ExecuteThread-137" daemon prio=5 tid=0x326d38 nid=0x94 waiting on monitor [0xcddff000..0xcddffc68]
    at java.lang.Object.wait(Native Method)
    at java.lang.Object.wait(Object.java:420)
    at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:99)
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:126)
    "ExecuteThread-136" daemon prio=5 tid=0x326250 nid=0x93 waiting on monitor [0xcdeff000..0xcdeffc68]
    at java.lang.Object.wait(Native Method)
    at java.lang.Object.wait(Object.java:420)
    at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:99)
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:126)
    "ExecuteThread-135" daemon prio=5 tid=0x325768 nid=0x92 waiting on monitor [0xcdfff000..0xcdfffc68]
    at java.lang.Object.wait(Native Method)
    at java.lang.Object.wait(Object.java:420)
    at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:99)
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:126)
    "ExecuteThread-134" daemon prio=5 tid=0x324c80 nid=0x91 waiting on monitor [0xce0ff000..0xce0ffc68]
    at java.lang.Object.wait(Native Method)
    at java.lang.Object.wait(Object.java:420)
    at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:99)
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:126)
    "ExecuteThread-133" daemon prio=5 tid=0x324198 nid=0x90 waiting on monitor [0xce1ff000..0xce1ffc68]
    at java.lang.Object.wait(Native Method)
    at java.lang.Object.wait(Object.java:420)
    at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:99)
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:126)
    "ExecuteThread-132" daemon prio=5 tid=0x3236b0 nid=0x8f waiting on monitor [0xce2ff000..0xce2ffc68]
    at java.lang.Object.wait(Native Method)
    at java.lang.Object.wait(Object.java:420)
    at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:99)
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:126)
    "ExecuteThread-131" daemon prio=5 tid=0x322bc8 nid=0x8e waiting on monitor [0xce3ff000..0xce3ffc68]
    at java.lang.Object.wait(Native Method)
    at java.lang.Object.wait(Object.java:420)
    at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:99)
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:126)
    "ExecuteThread-130" daemon prio=5 tid=0x3220e0 nid=0x8d waiting on monitor [0xce4ff000..0xce4ffc68]
    at java.lang.Object.wait(Native Method)
    at java.lang.Object.wait(Object.java:420)
    at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:99)
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:126)
    "ExecuteThread-129" daemon prio=5 tid=0x3215f8 nid=0x8c waiting on monitor [0xce5ff000..0xce5ffc68]
    at java.lang.Object.wait(Native Method)
    at java.lang.Object.wait(Object.java:420)
    at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:99)
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:126)
    "ExecuteThread-128" daemon prio=5 tid=0x320b10 nid=0x8b waiting on monitor [0xce6ff000..0xce6ffc68]
    at java.lang.Object.wait(Native Method)
    at java.lang.Object.wait(Object.java:420)
    at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:99)
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:126)
    "ExecuteThread-127" daemon prio=5 tid=0x320028 nid=0x8a waiting on monitor [0xce7ff000..0xce7ffc68]
    at java.lang.Object.wait(Native Method)
    at java.lang.Object.wait(Object.java:420)
    at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:99)
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:126)
    "ExecuteThread-126" daemon prio=5 tid=0x31f540 nid=0x89 waiting on monitor [0xce8ff000..0xce8ffc68]
    at java.lang.Object.wait(Native Method)
    at java.lang.Object.wait(Object.java:420)
    at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:99)
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:126)
    "ExecuteThread-125" daemon prio=5 tid=0x31ea58 nid=0x88 waiting on monitor [0xce9ff000..0xce9ffc68]
    at java.lang.Object.wait(Native Method)
    at java.lang.Object.wait(Object.java:420)
    at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:99)
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:126)
    "ExecuteThread-124" daemon prio=5 tid=0x31df70 nid=0x87 waiting on monitor [0xceaff000..0xceaffc68]
    at java.lang.Object.wait(Native Method)
    at java.lang.Object.wait(Object.java:420)
    at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:99)
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:126)
    "ExecuteThread-123" daemon prio=5 tid=0x31d488 nid=0x86 waiting on monitor [0xcebff000..0xcebffc68]
    at java.lang.Object.wait(Native Method)
    at java.lang.Object.wait(Object.java:420)
    at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:99)
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:126)
    "ExecuteThread-122" daemon prio=5 tid=0x31bb90 nid=0x85 waiting on monitor [0xcecff000..0xcecffc68]
    at java.lang.Object.wait(Native Method)
    at java.lang.Object.wait(Object.java:420)
    at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:99)
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:126)
    "ExecuteThread-121" daemon prio=5 tid=0x31b0a8 nid=0x84 waiting on monitor [0xcedff000..0xcedffc68]
    at java.lang.Object.wait(Native Method)
    at java.lang.Object.wait(Object.java:420)
    at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:99)
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:126)
    "ExecuteThread-120" daemon prio=5 tid=0x31a5c0 nid=0x83 waiting for monitor entry [0xceeff000..0xceeffc68]
    at java.util.Vector.addElement(Vector.java:573)
    at weblogic.rjvm.RJVMImpl.addPeerGoneListener(RJVMImpl.java:348)
    at weblogic.jdbc20.rmi.internal.ConnectionImpl.<init>(ConnectionImpl.java:39)
    at weblogic.jdbc20.common.internal.RmiDataSource.getConnection(RmiDataSource.java:65)
    at weblogic.jdbc20.common.internal.RmiDataSource_ServiceStub.getConnection(RmiDataSource_ServiceStub.java:179)
    at com.xxx.yyy.asutil.DataAccessManager.getConnection(DataAccessManager.java:113)
    at com.xxx.yyy.as.MetricsSessionEJB.logEvent(MetricsSessionEJB.java:222)
    at com.xxx.yyy.as.MetricsSessionEJBEOImpl.logEvent(MetricsSessionEJBEOImpl.java:324)
    at com.xxx.yyy.as.MetricsSessionEJBEOImpl_WLSkel.invoke(MetricsSessionEJBEOImpl_WLSkel.java:242)
    at weblogic.rmi.extensions.BasicServerObjectAdapter.invoke(BasicServerObjectAdapter.java:347)
    at weblogic.rmi.extensions.BasicRequestHandler.handleRequest(BasicRequestHandler.java:96)
    at weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest.java:15)
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:129)
    "ExecuteThread-119" daemon prio=5 tid=0x319ad8 nid=0x82 waiting on monitor [0xcefff000..0xcefffc68]
    at java.lang.Object.wait(Native Method)
    at java.lang.Object.wait(Object.java:420)
    at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:99)
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:126)
    "ExecuteThread-118" daemon prio=5 tid=0x318ff0 nid=0x81 runnable [0xcf0fe000..0xcf0ffc68]
    at weblogic.db.oci.OciCursor.execAndFetch(Native Method)
    at weblogic.db.oci.OciCursor.oci_execAndFetch(OciCursor.java:1890)
    at weblogic.jdbcbase.oci.Statement.executeQuery(Statement.java:905)
    at weblogic.jdbcbase.jts.Statement.executeQuery(Statement.java:58)
    at weblogic.jdbc20.rmi.internal.PreparedStatementImpl.executeQuery(PreparedStatementImpl.java:46)
    at weblogic.jdbc20.rmi.SerialPreparedStatement.executeQuery(SerialPreparedStatement.java:40)
    at com.xxx.yyy.as.SecuritySessionEJB.getClientConfiguration(SecuritySessionEJB.java:1669)
    at com.xxx.yyy.as.SecuritySessionEJBEOImpl.getClientConfiguration(SecuritySessionEJBEOImpl.java:985)
    at com.xxx.yyy.as.SecuritySessionEJBEOImpl_WLSkel.invoke(SecuritySessionEJBEOImpl_WLSkel.java:234)
    at weblogic.rmi.extensions.BasicServerObjectAdapter.invoke(BasicServerObjectAdapter.java:347)
    at weblogic.rmi.extensions.BasicRequestHandler.handleRequest(BasicRequestHandler.java:96)
    at weblogic.rmi.extensions.BasicRequestDispatcher.dispatch(BasicRequestDispatcher.java:82)
    at weblogic.rmi.internal.ServerRequest.sendOneWay(ServerRequest.java:73)
    at weblogic.rmi.internal.ServerRequest.sendReceive(ServerRequest.java:77)
    at com.xxx.yyy.as.SecuritySessionEJBEOImpl_WLStub.getClientConfiguration(SecuritySessionEJBEOImpl_WLStub.java:703)
    at com.xxx.yyy.as.QuestionnaireSessionEJB.getQuestionnaireBatches(QuestionnaireSessionEJB.java:3479)
    at com.xxx.yyy.as.QuestionnaireSessionEJBEOImpl.getQuestionnaireBatches(QuestionnaireSessionEJBEOImpl.java:631)
    at com.xxx.yyy.as.QuestionnaireSessionEJBEOImpl_WLSkel.invoke(QuestionnaireSessionEJBEOImpl_WLSkel.java:237)
    at weblogic.rmi.extensions.BasicServerObjectAdapter.invoke(BasicServerObjectAdapter.java:347)
    at weblogic.rmi.extensions.BasicRequestHandler.handleRequest(BasicRequestHandler.java:96)
    at weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest.java:15)
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:129)
    "ExecuteThread-117" daemon prio=5 tid=0x317f00 nid=0x80 waiting on monitor [0xcf1ff000..0xcf1ffc68]
    at java.lang.Object.wait(Native Method)
    at java.lang.Object.wait(Object.java:420)
    at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:99)
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:126)
    "ExecuteThread-116" daemon prio=5 tid=0x317418 nid=0x7f waiting on monitor [0xcf2ff000..0xcf2ffc68]
    at java.lang.Object.wait(Native Method)
    at java.lang.Object.wait(Object.java:420)
    at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:99)
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:126)
    "ExecuteThread-115" daemon prio=5 tid=0x316930 nid=0x7e waiting on monitor [0xcf3ff000..0xcf3ffc68]
    at java.lang.Object.wait(Native Method)
    at java.lang.Object.wait(Object.java:420)
    at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:99)
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:126)
    "ExecuteThread-114" daemon prio=5 tid=0x315e48 nid=0x7d waiting on monitor [0xcf4ff000..0xcf4ffc68]
    at java.lang.Object.wait(Native Method)
    at java.lang.Object.wait(Object.java:420)
    at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:99)
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:126)
    "ExecuteThread-113" daemon prio=5 tid=0x314b58 nid=0x7c waiting on monitor [0xcf5ff000..0xcf5ffc68]
    at java.lang.Object.wait(Native Method)
    at java.lang.Object.wait(Object.java:420)
    at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:99)
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:126)
    "ExecuteThread-112" daemon prio=5 tid=0x314070 nid=0x7b waiting on monitor [0xcf6ff000..0xcf6ffc68]
    at java.lang.Object.wait(Native Method)
    at java.lang.Object.wait(Object.java:420)
    at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:99)
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:126)
    "ExecuteThread-111" daemon prio=5 tid=0x313588 nid=0x7a waiting on monitor [0xcf7ff000..0xcf7ffc68]
    at java.lang.Object.wait(Native Method)
    at java.lang.Object.wait(Object.java:420)
    at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:99)
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:126)
    "ExecuteThread-110" daemon prio=5 tid=0x312aa0 nid=0x79 waiting on monitor [0xcf8ff000..0xcf8ffc68]
    at java.lang.Object.wait(Native Method)
    at java.lang.Object.wait(Object.java:420)
    at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:99)
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:126)
    "ExecuteThread-109" daemon prio=5 tid=0x311fb8 nid=0x78 runnable [0xcf9ff000..0xcf9ffc68]
    at java.util.Vector.removeElementAt(Vector.java:509)
    at java.util.Vector.removeElement(Vector.java:598)
    at weblogic.rjvm.RJVMImpl.removePeerGoneListener(RJVMImpl.java:352)
    at weblogic.time.server.ScheduledTrigger.destroy(ScheduledTrigger.java:112)
    at weblogic.time.server.ScheduledTrigger.cancel(ScheduledTrigger.java:100)
    at weblogic.jts.internal.CoordinatorImpl.cancelCurrentTimer(CoordinatorImpl.java:199)
    at weblogic.jts.internal.CoordinatorImpl.commit(CoordinatorImpl.java:404)
    at weblogic.jts.internal.TxContext.commit(TxContext.java:255)
    at weblogic.ejb.internal.StatelessEJBObject.postInvokeOurTx(StatelessEJBObject.java:103)
    at weblogic.ejb.internal.BaseEJBObject.postInvoke(BaseEJBObject.java:849)
    at com.xxx.yyy.as.TaskSessionEJBEOImpl.findTaskByFilter(TaskSessionEJBEOImpl.java:784)
    at com.xxx.yyy.as.TaskSessionEJBEOImpl_WLSkel.invoke(TaskSessionEJBEOImpl_WLSkel.java:101)
    at weblogic.rmi.extensions.BasicServerObjectAdapter.invoke(BasicServerObjectAdapter.java:347)
    at weblogic.rmi.extensions.BasicRequestHandler.handleRequest(BasicRequestHandler.java:96)
    at weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest.java:15)
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:129)
    "ExecuteThread-108" daemon prio=5 tid=0x3114d0 nid=0x77 waiting on monitor [0xcfaff000..0xcfaffc68]
    at java.lang.Object.wait(Native Method)
    at java.lang.Object.wait(Object.java:420)
    at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:99)
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:126)
    "ExecuteThread-107" daemon prio=5 tid=0x3109e8 nid=0x76 waiting on monitor [0xcfbff000..0xcfbffc68]
    at java.lang.Object.wait(Native Method)
    at java.lang.Object.wait(Object.java:420)
    at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:99)
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:126)
    "ExecuteThread-106" daemon prio=5 tid=0x30ff00 nid=0x75 waiting on monitor [0xcfcff000..0xcfcffc68]
    at java.lang.Object.wait(Native Method)
    at java.lang.Object.wait(Object.java:420)
    at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:99)
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:126)
    "ExecuteThread-105" daemon prio=5 tid=0x30f418 nid=0x74 waiting for monitor entry [0xcfdff000..0xcfdffc68]
    at java.util.Vector.removeElement(Vector.java:595)
    at weblogic.rjvm.RJVMImpl.removePeerGoneListener(RJVMImpl.java:352)
    at weblogic.jdbc20.rmi.internal.ConnectionImpl.close(ConnectionImpl.java:161)
    at weblogic.jdbc20.rmi.SerialConnection.close(SerialConnection.java:162)
    at com.xxx.yyy.asutil.Util

  • Poor performance: portal report using inline views

    I have created a portal report that uses inline views that performs terribly. It has 6 inline views. When I cut out half the views, the performance doubles. When I run the same query in sql + on my portal database with all the views, I get the results back instantly. Any ideas on what is causing the performance hit in portal? Any ideas on a remedy?

    More info
    SELECT patch_no, count(*) frequency
    FROM users_requests
    WHERE patchset IN (SELECT arps2.patchset_name
    FROM aru_bugfix_relationships abr, aru_bugfixes ab, aru_status_codes ac,
    aru_patchsets arps, aru_patchsets arps2
    WHERE arps.patchset_name = '11i.FIN_PF.E'
    AND abr.bugfix_id = ab.bugfix_id
    AND arps.bugfix_id = ab.bugfix_id
    AND abr.relation_type = ac.status_id
    AND arps2.bugfix_id = abr.related_bugfix_id
    AND abr.relation_type IN (601, 602))
    AND included ='Y'
    GROUP BY patch_no
    order by frequency desc, patch_no
    Runs < 1 sec from SQL navigator and from portal (if i hardcode the value for fampack.
    Takes ~50 secs if i replace with :fampack and set default value to 11i.FIN_PF.D

  • Poor performance of BLOB queries using ODBC

    I'm getting very poor performance when querying a BLOB column using ODBC. I'm using an Oracle 10g database and the Oracle 10g ODBC driver on Windows XP.
    I create two tables:
    create table t1 ( x int primary key, y raw(2000) );
    create table t2 ( x int primary key, y blob );
    Then I load both tables with the same data. Then I run the following queries using ODBC:
    SELECT x, y FROM t1;
    SELECT x, y FROM t2;
    I find that the BLOB query takes about 10 times longer than the RAW query to execute.
    However, if I execute the same queries in SQL*Plus, the BLOB query is roughly as fast as the RAW query. So the problem seems to be ODBC-related.
    Has anyone else come across this problem ?
    Thanks.

    Hi Biren,
    By GUID, are you referring to the Oracle Portal product?

  • What RAID Setup do you use for your Macbook Pro Scratch Drive?

    Is there any benefit to using an Express-ESata Raid Enclosure vs a single esata drive as the scratch drive?
    If so, is there any benefit to using a 4 drive Raid 0 vs a 2 drive raid 0?
    What Raid setups are any of you all using with your MacBook Pro's? Is there a significant performance difference between using a E-Sata drive and a FW800 drive. Is RAID the right way to go?
    Sorry I'm not making a lot of sense right now, but I've searched through 20 or so pages of the forum and didn't see that anyone had addressed this question yet.

    OK, just to give you a frame of reference, I just performed the following tests -
    I hooked up my Sony AVCHD camera to my Mac Book Pro 2.4 ghz with 4 GB ram - (pretty close configuration to yours) - and imported a 26 second clip into FCP 7 with the following drive configurations:
    Capture to internal Mac Drive, no externals: 26 Second clip takes 44 seconds
    Capture to external WD USB2 drive: 26 Second clip takes 44 Seconds
    Capture to external CalDigit 2 Sata Drive Array, Raid 0, via Firewire 800: 26 Second clip takes 42 seconds
    OK, so now I move the camera over to my Mac Pro 8-Core, 2 x 3.2 Ghz Quad Core Xeon with 14 gigs of ram, and capture *to the same external CalDigit 2 Sata Drive Array,* Raid 0, via Firewire 800: 26 Second clip takes 11 seconds
    My conclusion would be the drives and drive throughput is not as consequential as the CPU horsepower in doing the conversion from AVCHD to Pro Res. However, there are many very knowledgeable people who look at these threads, and I would be interested to hear what they have to say.
    Hope this helps.
    Message was edited by: Meg The Dog to correct typo

  • Poor performance of CMP entity bean finder that uses unicode notation N''

    I am using Weblogic 6.1 with SQL Server 2000. I have an entity bean
    with a finder method that does a lookup based on a (indexed) varchar
    field. I noticed during testing that the performance of this finder
    method was much worse than other finders. I did some profiling of the
    SQL calls going from the Weblogic container to the database, and
    noticed that the query generated for the finder call used the unicode
    notation, which seems to result in very poor performance. If you run
    the following two queries through SQL Analyzer (or SQL Profiler),
    you'll notice a significant performance hit on the query that uses the
    unicode notation:
    example of generated SQL:
    SELECT WL0.field1, WL0.field2 ... FROM tblAccount WL0 WHERE
    WL0.accountId = N'40879'
    example of desired SQL:
    SELECT WL0.field1, WL0.field2 ... FROM tblAccount WL0 WHERE
    WL0.accountId = '40879'
    Is there any way to force it to generate the SQL without using the
    notation with the unicode 'N'?
    Thanks for any help,
    Don

    Don wrote:
    That worked (we use the Weblogic JDBC driver). The performance is MUCH
    better! Glad to help.
    Is there some place in the documentation where I should have
    seen this (ie. where can I find the documentation on other possibly
    useful connection properties)?It should be documented in the jdbc driver documents...
    Joe
    >
    Thanks,
    Don Tranquillo
    Joe Weinstein wrote:
    Hi. The driver does this to ensure that any 16-bit character string
    that Java has,
    is absorbed unaltered into the DBMS. There is no way to know a-priori
    whether
    the DBMS needs/wants an nvarchar datum or an 8-bit varchar datum. As
    you see,
    there is a big performance issue. You can tell the jdbc driver to
    send data
    as 8-bit (without the "N'" prefix) by setting a connection property:
    If you are using the weblogic mssqlserver driver, add the
    useVarChars=true
    property. If you are using the MS free driver or the DataDirect driver,
    add a property sendStringParametersAsUnicode=false.
    Joe
    Don wrote:
    I am using Weblogic 6.1 with SQL Server 2000. I have an entity bean
    with a finder method that does a lookup based on a (indexed) varchar
    field. I noticed during testing that the performance of this finder
    method was much worse than other finders. I did some profiling of the
    SQL calls going from the Weblogic container to the database, and
    noticed that the query generated for the finder call used the unicode
    notation, which seems to result in very poor performance. If you run
    the following two queries through SQL Analyzer (or SQL Profiler),
    you'll notice a significant performance hit on the query that uses the
    unicode notation:
    example of generated SQL:
    SELECT WL0.field1, WL0.field2 ... FROM tblAccount WL0 WHERE
    WL0.accountId = N'40879'
    example of desired SQL:
    SELECT WL0.field1, WL0.field2 ... FROM tblAccount WL0 WHERE
    WL0.accountId = '40879'
    Is there any way to force it to generate the SQL without using the
    notation with the unicode 'N'?
    Thanks for any help,
    Don

  • Poor Performance using Generic Conectivity for ODBC

    Hi my friends.
    I have a problem usign Generic Conectivity , I need update 500,000 records in MS SQL Server 2005, I'm using Generic Conectivity for ODBC. In my Oracle Database i have create a DB_LINK called TEST to redirect to MS SQL Server database.
    Oracle Database: 10.2.0.4
    MS SQL Server version: 2005
    The time for update 1,000 records in MS SQL Server using DBMS_HS_PASSTHROUGH is ten minutes. This is a poor performance.
    This is de PL/SQL
    DECLARE
    c INTEGER;
    nr INTEGER;
    CURSOR c_TEST
    IS
    SELECT "x", "y"
    FROM TEST_cab
    WHERE ROWNUM <= 1000
    ORDER BY "y";
    BEGIN
    FOR cur IN c_TEST
    LOOP
    c := DBMS_HS_PASSTHROUGH.OPEN_CURSOR@TEST;
    DBMS_HS_PASSTHROUGH.PARSE@TEST(
    c,
    'UPDATE sf_TEST_sql
    SET observation= ?
    WHERE department_id = ?
    AND employee_id = ? ');
    DBMS_HS_PASSTHROUGH.BIND_VARIABLE@TEST (c, 1, 'S');
    DBMS_HS_PASSTHROUGH.BIND_VARIABLE@TEST (c, 2, 'N');
    DBMS_HS_PASSTHROUGH.BIND_VARIABLE@TEST (c, 3, 'ELABORADO');
    DBMS_HS_PASSTHROUGH.BIND_VARIABLE@TEST (c, 4, 'PENDIENTE');
    DBMS_HS_PASSTHROUGH.BIND_VARIABLE@TEST (c, 5, cur."x");
    DBMS_HS_PASSTHROUGH.BIND_VARIABLE@TEST (c, 6, cur."y");
    nr := DBMS_HS_PASSTHROUGH.EXECUTE_NON_QUERY@TEST (c);
    DBMS_HS_PASSTHROUGH.CLOSE_CURSOR@TEST (c);
    COMMIT;
    END LOOP;
    END;
    You can help, how better the performance for update 500,000 record by record in MS SQL Server. I need advantages of use Oracle Transparent Gateway for Microsoft SQL Server.
    your's can suggest my another solution ?
    Thanks.

    Hi,
    There are no real parameters to tune the gateways. You should turn on gateway debug tracing and check the SQL that is being sent to SQL*Server to make sure is update statements and nothing else.
    If this is the case then the time taken will be down to various factors, such as network delays, processing on SQL*Server and so on.
    How long does it take to update the same number of records directly on SQL*Server without the Oracle or the gateway involved or if you use another non-Oracle client to do the same updates across a network, if a network is involved ?
    It may be possible to improve performance by changing the HS_RPC_FETCH_REBLOCKING parameter, so have a look at this note in My Oracle Support -
    Tuning Generic Connectivity And Gateways (Doc ID 230543.1)
    Regards,
    Mike

  • Use of Express Slot Solid State Drive as a scratch drive

    Is there a way to allow removeable drives to be used as a scratch drive?
    I would like to use an express slot 32GB drive as a scratch drive in windows 7.  The drive is loaded
    by windows as a removeable drive.  When I go to select it in CS4 the drive is not listed.
    Windows loads it as a removable disk, not a local disk.  If you use a USB external drive like a
    western digital 500GB, via the usb port.  Windows loads it as a local disk even though it's remote.
    The expressslot drive should be plenty fast to drive a scratch drive.
    Paul Caldwell

    Zirynx:
    The main problem with SSD drives is the space limitation. There are also reported difficulties with BootCamp and Windows, but that is not an issue for you. I believe they are available in larger capacities, but they become very expensive as you can see here.
    Advantages include being very silent, and very fast.
    Installation will be the same as a regular PATA Hard Disk Drive.
    If the space limitation is not an issue for you, go for it.
    cornelius

  • Is anyone able to explain really poor performance when using 'If Exists'?

    Hello all.  We've recently had a performance spike when using the 'if exists' construct, which is a construct that we use through much of our code.  The problem is, it appears illogical since if can be removed via a tiny modification that does
    not change the core code.
    I can demonstrate  
    This is the (simplified) format of the base original code.  It's purpose is to identify when a column value has changed comparing to a main table and a complex view
    select 1 from MainTable m
    inner join ComplexView v on m.col2 = v.col2
    where m.col3 <> v.col3
    This is doing a table scan, however the table only has 17000 rows while the view only has 7000 rows.  The sql executes in approximately 3 seconds.
    However if we add the 'If Exists' construct around the original query, like such:
    if exists (
    select 1 from MainTable m
    inner join ComplexView v on m.col2 = v.col2
    where m.col3 <> v.col3
    print 1
    The sql now takes over 2 minutes to run.  Note that the core sql is unchanged.  All I have done is wrap it with 'If Exists'
    I can't fathom why the if exists construct is taking so much longer, especially since the code code is unchanged, however more importantly I would like to understand why since we commonly use this type of syntax.
    Any advice would be greatly appreciated

    OK, that's interesting.  Adding the top 1 clause greatly affects the performance (in a bad way).
    The original query (as below) still runs in a few seconds.
    select 1 from MainTable m
    inner join ComplexView v on m.col2 = v.col2
    where m.col3 <> v.col3
    The 'Top 1' query (as below) takes almost 2 minutes however.  It's exactly the same query, but with 'top 1' added to it.
    select top 1 1 from MainTable m
    inner join ComplexView v on m.col2 = v.col2
    where m.col3 <> v.col3
    I suspect that the top 1 is performing a very similar operation to the exists, in that it is 'supposed' to exit as soon as it finds a single row that satisfies it's results.
    It's still not really any closer to making me understand what is causing the issue however.

  • 64 Bit CS5 Won't run after I unchecked the 'C' Scratch Drive....

    The problem started when I went into the 64 bit version of CS5;  edit : preferences : performance and in the scratch drive options I unchecked the ‘C’ drive option. (I know.... doesn't make sense to do that)  CS5 runs from the C drive BTW.  I then closed the program and on restart it would not work. When trying to open CS5 64 bit version I get an Adobe Photoshop CS5 message that states: “Could not open a scratch file because the file is locked or you do not have the necessary access privleges.  Use the ‘Properties’ command in the Windows Explorer to unlock the file. When I click on the OK button I get a second message that says, “Could not initialize Photoshop because the file is locked or you do not have the necessary access privledges.  Use the ‘Properties’ command in the Windows Explorer to unlock the file. Un install and install takes me to the same problem.  For what it’s worth the 32 bit version of CS5 runs fine. This is probably an easy fix for an expert but alas... that is not me. Any suggestions would be appreciated. Thanks in advance. Richard on the Eastern Shore of Virginia

    The root cause is likely a permissions issue.  You need to make sure you have Full Control privileges to the root folder of each of the hard drives you have told Photoshop to use, as well as to the folder identified on your system by the TEMP environment variable.
    Also, you may want to just turn off Windows UAC entirely, though you should research UAC and fully understand what it does and what the additional risks are before making the decision to do this.
    A quick fix for you to get you working again might be to press and hold the Control and Alt keys immediately after starting Photoshop from its icon or menu item.  If you're quick enough, it will pop up a dialog allowing you to re-specify the scratch disks you had before when it worked.
    -Noel

  • Poor performance of the BDB cache

    I'm experiencing incredibly poor performance of the BDB cache and wanted to share my experience, in case anybody has any suggestions.
    Overview
    Stone Steps maintains a fork of a web log analysis tool - the Webalizer (http://www.stonesteps.ca/projects/webalizer/). One of the problems with the Webalizer is that it maintains all data (i.e. URLs, search strings, IP addresses, etc) in memory, which puts a cap on the maximum size of the data set that can be analyzed. Naturally, BDB was picked as the fastest database to maintain analyzed data on disk set and produce reports by querying the database. Unfortunately, once the database grows beyond the cache size, overall performance goes down the drain.
    Note that the version of SSW available for download does not support BDB in the way described below. I can make the source available for you, however, if you find your own large log files to analyze.
    The Database
    Stone Steps Webalizer (SSW) is a command-line utility and needs to preserve all intermediate data for the month on disk. The original approach was to use a plain-text file (webalizer.current, for those who know anything about SSW). The BDB database that replaced this plain text file consists of the following databases:
    sequences (maintains record IDs for all other tables)
    urls -primary database containing URL data - record ID (key), URL itself, grouped data, such as number of hits, transfer size, etc)
    urls.values - secondary database that contains a hash of the URL (key) and the record ID linking it to the primary database; this database is used for value lookups)
    urls.hits - secondary database that contains the number of hits for each URL (key) and the record ID to link it to the primary database; this database is used to order URLs in the report by the number of hits.
    The remaining databases are here just to indicate the database structure. They are the same in nature as the two described above. The legend is as follows: (s) will indicate a secondary database, (p) - primary database, (sf) - filtered secondary database (using DB_DONOTINDEX).
    urls.xfer (s), urls.entry (s), urls.exit (s), urls.groups.hits (sf), urls.groups.xfer (sf)
    hosts (p), hosts.values (s), hosts.hits (s), hosts.xfer (s), hosts.groups.hits (sf), hosts.groups.xfer (sf)
    downloads (p), downloads.values (s), downloads.xfer (s)
    agents (p), agents.values (s), agents.values (s), agents.hits (s), agents.visits (s), agents.groups.visits (sf)
    referrers (p), referrers.values (s), referrers.values (s), referrers.hits (s), referrers.groups.hits (sf)
    search (p), search.values (s), search.hits (s)
    users (p), users.values (s), users.hits (s), users.groups.hits (sf)
    errors (p), errors.values (s), errors.hits (s)
    dhosts (p), dhosts.values (s)
    statuscodes (HTTP status codes)
    totals.daily (31 days)
    totals.hourly (24 hours)
    totals (one record)
    countries (a couple of hundred countries)
    system (one record)
    visits.active (active visits - variable length)
    downloads.active (active downloads - variable length)
    All these databases (49 of them) are maintained in a single file. Maintaining a single database file is a requirement, so that the entire database for the month can be renamed, backed up and used to produce reports on demand.
    Database Size
    One of the sample Squid logs I received from a user contains 4.4M records and is about 800MB in size. The resulting database is 625MB in size. Note that there is no duplication of text data - only nodes and such values as hits and transfer sizes are duplicated. Each record also contains some small overhead (record version for upgrades, etc).
    Here are the sizes of the URL databases (other URL secondary databases are similar to urls.hits described below):
    urls (p):
    8192 Underlying database page size
    2031 Overflow key/data size
    1471636 Number of unique keys in the tree
    1471636 Number of data items in the tree
    193 Number of tree internal pages
    577738 Number of bytes free in tree internal pages (63% ff)
    55312 Number of tree leaf pages
    145M Number of bytes free in tree leaf pages (67% ff)
    2620 Number of tree overflow pages
    16M Number of bytes free in tree overflow pages (25% ff)
    urls.hits (s)
    8192 Underlying database page size
    2031 Overflow key/data size
    2 Number of levels in the tree
    823 Number of unique keys in the tree
    1471636 Number of data items in the tree
    31 Number of tree internal pages
    201970 Number of bytes free in tree internal pages (20% ff)
    45 Number of tree leaf pages
    243550 Number of bytes free in tree leaf pages (33% ff)
    2814 Number of tree duplicate pages
    8360024 Number of bytes free in tree duplicate pages (63% ff)
    0 Number of tree overflow pages
    The Testbed
    I'm running all these tests using the latest BDB (v4.6) built from the source on Win2K3 server (release version). The test machine is 1.7GHz P4 with 1GB of RAM and an IDE hard drive. Not the fastest machine, but it was able to handle a log file like described before at a speed of 20K records/sec.
    BDB is configured in a single file in a BDB environment, using private memory, since only one process ever has access to the database).
    I ran a performance monitor while running SSW, capturing private bytes, disk read/write I/O, system cache size, etc.
    I also used a code profiler to analyze SSW and BDB performance.
    The Problem
    Small log files, such as 100MB, can be processed in no time - BDB handles them really well. However, once the entire BDB cache is filled up, the machine goes into some weird state and can sit in this state for hours and hours before completing the analysis.
    Another problem is that traversing large primary or secondary databases is a really slow and painful process. It is really not that much data!
    Overall, the 20K rec/sec quoted above drop down to 2K rec/sec. And that's all after most of the analysis has been done, just trying to save the database.
    The Tests
    SSW runs in two modes, memory mode and database mode. In memory mode, all data is kept in memory in SSW's own hash tables and then saved to BDB at the end of each run.
    In memory mode, the entire BDB is dumped to disk at the end of the run. First, it runs fairly fast, until the BDB cache is filled up. Then writing (disk I/O) goes at a snail pace, at about 3.5MB/sec, even though this disk can write at about 12-15MB/sec.
    Another problem is that the OS cache gets filled up, chewing through all available memory long before completion. In order to deal with this problem, I disabled the system cache using the DB_DIRECT_DB/LOG options. I could see OS cache left alone, but once BDB cache was filed up, processing speed was as good as stopped.
    Then I flipped options and used DB_DSYNC_DB/LOG options to disable OS disk buffering. This improved overall performance and even though OS cache was filling up, it was being flushed as well and, eventually, SSW finished processing this log, sporting 2K rec/sec. At least it finished, though - other combinations of these options lead to never-ending tests.
    In the database mode, stale data is put into BDB after processing every N records (e.g. 300K rec). In this mode, BDB behaves similarly - until the cache is filled up, the performance is somewhat decent, but then the story repeats.
    Some of the other things I tried/observed:
    * I tried to experiment with the trickle option. In all honesty, I hoped that this would be the solution to my problems - trickle some, make sure it's on disk and then continue. Well, trickling was pretty much useless and didn't make any positive impact.
    * I disabled threading support, which gave me some performance boost during regular value lookups throughout the test run, but it didn't help either.
    * I experimented with page size, ranging them from the default 8K to 64K. Using large pages helped a bit, but as soon as the BDB cached filled up, the story repeated.
    * The Db.put method, which was called 73557 times while profiling saving the database at the end, took 281 seconds. Interestingly enough, this method called ReadFile function (Win32) 20000 times, which took 258 seconds. The majority of the Db.put time was wasted on looking up records that were being updated! These lookups seem to be the true problem here.
    * I tried libHoard - it usually provides better performance, even in a single-threaded process, but libHoard didn't help much in this case.

    I have been able to improve processing speed up to
    6-8 times with these two techniques:
    1. A separate trickle thread was created that would
    periodically call DbEnv::memp_trickle. This works
    especially good on multicore machines, but also
    speeds things up a bit on single CPU boxes. This
    alone improved speed from 2K rec/sec to about 4K
    rec/sec.Hello Stone,
    I am facing a similar problem, and I too hope to resolve the same with memp_trickle. I had these queries.
    1. what was the % of clean pages that you specified?
    2. What duration were you clling this thread to call memp_trickle?
    This would give me a rough idea about which to tune my app. Would really appreciate if you can answer these queries.
    Regards,
    Nishith.
    >
    2. Maintaining multiple secondary databases in real
    time proved to be the bottleneck. The code was
    changed to create secondary databases at the end of
    the run (calling Db::associate with the DB_CREATE
    flag), right before the reports are generated, which
    use these secondary databases. This improved speed
    from 4K rec/sec to 14K rec/sec.

  • Poor performance and overheat

    Story
    I've been using arch for the past four months, dual booting with my old Windows XP. As I'm very fond of Flash games and make my own programs with a cross-platform language, I've found few problems with the migration. One of them was the Adobe Flash Player performance, which was stunningly bad. But everyone was saying that was normal, so I left it as is.
    However, one special error always worried me: a seemingly randomly started siren sound coming from the motherboard speaker. Thinking it was a alarm about some fatal kernel error, I had been solving it mostly with reboots.
    But then it happened. While playing a graphics intensive game on Windows quickly after rebooting from Arch, the same siren sound started. It felt like a slap across the face: it was not a kernel error, it was an motherboard overheat alarm.
    The Problem
    Since the computer was giving overheat signs, I started looking at things from another angle. I noticed that some tasks take unusually long times in Arch (i.e.: building things from source; Firefox / OpenOffice startup; any graphics intensive program), specially from the Flash Player.
    A great example is the game Penguinz, that runs flawlessly in Windows but is unbearably slow in Arch. So slow that it alone caused said overheat twice. And trying to record another flash game's record using XVidCap things went so bad that the game halved the FPS and started ignoring key presses.
    Tech Info
    Dual Core 3.2 processor
    1 gb RAM
    256 mb Geforce FX 5500 video card
    Running Openbox
    Using proprietary NVIDIA driver
    TL;DR: poor performance on some tasks. Flash Player is so slow that overheats CPU and makes me cry. It's fine on Windows.
    Off the top of my head I can think up some reasons: bad video driver, unwanted background application messing up, known Flash Player performance problems and Actionscript Linux/Arch-only bug.
    Where do you think is the problem?

    jwcxz wrote:Have you looked at your process table for any program with abnormal CPU usage?  That seems like the logical place to start.  You shouldn't be getting poor performance in anything with that system.  I have a 2.0GHz Core 2 Duo and an Intel GMA 965 and I've never had any problems with Flash.  It's much better than it used to be.
    Pidgin scared me for a while because it froze for no apparent reason. After fixing this, the table contains this two guys here:
    %CPU
    Firefox: 80%~100%
    X: 0~20%
    Graphic intensive test, so I think the X usage is normal. It might be some oddity at the Firefox+Linux+Flash sum, maybe a conflict. I'll try another browser.
    EDIT:
    Did a Javascript benchmark to test both systems and browsers.
    Windows XP + Firefox = 4361.4ms
    Arch + Firefox = 5146.0ms
    So, it's actually a lot slower without even taking Flash into account. If someone knows a platform-independent benchmark to test both systems completely, and not only the browser, feel free to point out.
    I think that something is already wrong here and the lack of power saving systems only aggravated the problem, causing overheat.
    EDIT2:
    Browser performance fixed: migrated to Midori. Flash stills slower than on Windows, but now it's bearable. Pretty neat browser too, goes better with the Arch Way. It shouldn't fix the temperature, however.
    Applied B's idea, but didn't test yet. I'm not into the mood of playing flash games for two straight hours today.
    Last edited by BoppreH (2009-05-03 04:25:20)

  • Crashing and poor performance during playback of a large project.

    Hi,
    I've been a regular user of iMovie for about 3 years and have edited several 50GB+ projects of DV quality footage without too many major issues with lag or 'dropped frames'. I currently have a 80GB project that resides on a 95% full 320GB Firewire 400 external drive that has been getting very slow to open and near impossible to work with.
    Pair the bursting-at-the-seams external drive, with an overburdened 90% full internal drive - the poor performance wasn't to be unexpected. So I bought a 1TB Firewire 400 drive to free up some space on my Mac. My large iTunes library (150GB) was the main culprit and it was quickly moved onto the new drive.
    The iMovie project was then moved onto my Mac's movie folder - I figured that the project needs some "room" to work (not that I really understand how Macs use memory) and that having roughly 80GB free with 1.5GB RAM (which is more than used to have) would make everything just that much smoother.
    Wrong.
    The project opened in roughly the same amount of time - but when I tried to play back the timeline, it plays like rubbish and then after 10-15 secs the Mac goes into 'sleep' mode. The screen goes off, the fans dies down and the 'heartbeat' light goes on. A click of the mouse 'wakes' the Mac only to find that if i try again, I get the same result.
    I've probably got so many variables going on here that it's probably hard to suggest what the problem might be but all I could think of was repairing permissions (which I did and none needed it).
    Stuck on this. Anyone have any advice?

    I understand completely, having worked with a 100 GB project once. I found that getting a movie bloated up to that size was just more difficult with jerky playback.
    I do have a couple of suggestions for you.
    You may need more than that 80GB free space for this movie. Is there any reason you cannot move it to the 1TB drive? If you have only your iTunes on it, you should have about 800 GB free.
    If you still need to have the project on your computer's drive, set your computer to never sleep.
    How close to finishing editing are you with this movie? If you are nearly done except for adding audio clips, you can export (share) it as QuickTime Full Quality movie. The resultant quicktime version of your iMovie will be smaller because it will contain only the clips actually used in the movie, not all the saved whole clips that iMovie keeps as its nondestructive editing feature. The quicktime movie will be one continuous clip, incorporating all your edits and added audio. It CAN be further edited, but you cannot change text of titles already there, or change transitions or remove already added audios.
    I actually do this with nearly every iMovie. I create my movies by first importing videos, then adding still photos, then editing with titles, effects and transitions. I add audio last, and if it becomes too distorted in playback, I export the movie and then continue adding audio clips.
    My 100+ GB movie slimmed down to only 8 GB with this method. (The large size was due to having so many clips. The movie was from VHS footage of my son's little league all-star game, and the video had so many skipped segments that I had to split it into thousands of clips to remove the dropped ones. Very old VHS tape!).
    I haven't upgraded to QT 7.5.5, but I heard that the jerky playback issue is mostly resolved with this new upgrade. I am in mid-project with about 5 iMovies, so I will probably plod along with my work-around method, not wanting to upgrade in the middle of any of them.
    Hope this is helpful to you.

  • Extremely poor performance on good machine (dual xeon, Revodrive, SLI etc.)

    Hello,
    I've looked for answer, read all the articles about making better performance of PS and I still can't solve the problem... I even tried Photoshop CC and the performance was... worse. I measured time it took to open some files or make some of my actions.
    Programs performance is so incredible bad, it's not even annoying it is some disaster... sometimes I have to wait more than 10 seconds for response when I'm moving a layer or few seconds when applying some very simple transformations to smart object (logo etc.). I spent a lot of money on my workstation hoping it will work smooth and fine, and it seems that it is working worse than my old machine for 1/10 of its price. I hoped that moving to Cloud will solve the problem and the new software understands better new hardware I own, but NO! as I mentioned it is working even slower.
    The problem only affects Photoshop and Illustrator, After Effects run perfectly fast... but I work mostly on Photoshop and Illustrator. Most of the time both programs are opened.
    Some more hardware details of my workstation:
    Dual Xeon 2630 @ 2.3 GHz
    32 GB Ram
    System Drive: PCI-E Revodrive 3 x2 240 GB
    Storage Drive: 3GB WD
    Graphic Card: 2x GF GTX 680 in SLI (2GB memory each)
    System: Windows 8.1 Pro 64-bit
    Adobe Suite CS 6 Master
    I keep to all advices from "Photoshop performance" articles. I tried another SSD drive as scratch drive, all drivers are up to date, system is "fresh installed" without any garbage...
    I'll really apreciate any good advice that could help me solve the problem, so I'll be able to work normal. Without lost hours on waiting for the simpliest actions.

    I just to reinstalled drivers and NOTHING... (Latest nVidia drivers clean install)... I also looked on my resources manager and after few munutes photoshop easly uses more than 50% of avaiable RAM... when I'M working procesor usage is about 5-9% (12% was maximum) and when I run also Adobe Illustrator memory usage goes above 60% but cpu usage is still low (5-7%). I have 32GB of memory... PSD file I work on is 750MB... Maybe there is some issue with my memory, buffer or something like this? Any idea?
    When I copy 1920x1080px layer from one program to the other it takes few minutes, and sometimes programes crush... even if I'm not working the memory usage is now above 60% - shouldn't it go down?
    oth Photoshop and files I work on are on the same drive (PCI-E SSD OCZ RevoDrive 3x2 - so it shoulb be super-fast...).
    Sorry for bad spellings - I'm so angry now!!!
    HELP PLEASE!

  • Best practice question re. importing and scratch drive

    Hello:
    Will be editing .mov files primarily (Panasonic TM900 files wrapped as ProRes 422HQ - via ClipWrap).  I'm using an external scratch drive.
    Questions:
    1. is it best to "copy" the files to the project as is the default check mark or uncheck and save disk space?
    2. on the scratch drive, I currently have the original .mts files and then a new folder with the wrapped files.  Is it better to keep these on the main HDD or is it ok to be on the scratch drive as well.  Thnaks.
    Steve

    Yes read your manual to understand more but here is a clip:
    Create proxy media: This option creates video and still-image proxy files. Video is transcoded to the Apple ProRes 422 (Proxy) codec format, which provides high-quality files useful for offline editing at the original frame size, frame rate, and aspect ratio. Final Cut Pro creates medium-quality (one-quarter resolution) proxy versions that increase editing performance. Video proxy files take up considerably less disk space, which often means you can work on a portable computer instead of a desktop computer that has significantly more memory and processing power. Still images are transcoded to either JPEG (if the original file doesnʼt have alpha channel information) or PNG files (if the file has alpha channel information). Still-image proxy files facilitate faster processing and rendering when the original image is very large.
    Note: When transcoding files, Final Cut Pro always retains the original media for future use. For more information about where to find original media, proxy media, and transcoded media files, see Where your media and project files are located.

Maybe you are looking for

  • Does family sharing allow content not purchased through itunes?

    Most of my music has been ripped from my CDs, not purchased through itunes. The family sharing feature in ios8 sounds tempting since I currently have 4 of us working from a single account which causes some issues at times. Will I still be able to sha

  • "Member of the cloud"

    Hi! I have troble geting Photoshop CC to start, moreover the team in India seems to have that to... I join the Cloud i march this year, I live in Sweden, but there is no support i Swedish, Ok I can live with that,  I was than booked for Photoshop CS6

  • Websites with passwords on an N95

    I've been trying to access websites that require me to enter a login but it doesn't seem to accept it. Is there something wrong with my setup? Thanks in advance. (and before anyone asks - the websites are work related not naughty ones! :-) )

  • No results when running KOB1 for Service Orders

    Hi gurus, We have a process with Service Orders where actual costs are posted. When running report KOB1 for service orders with actual posts, no result is showing. Any idea why this is happening? Thanks, VL

  • Three-Way Match

    We currently use three-way match as a standard AP process.  A recent change has required a number of suppliers to be paid before actual goods receipt. What is the best practice for the scenario where invoice needs to be paid ahead of physical goods r