Slow Performance of PL/SQL procedure

Hi, I'm new in PL/SQL. I had wrote a procedure which extract data from a table and write to a text file. However, I found that this procedure took a long time to return the result. Is that anything wrong with my codes? Here is the codes, please advice.
CREATE OR REPLACE PROCEDURE DataExtract
(P_FILEDIR IN VARCHAR2, P_FILENAME IN VARCHAR2)
IS
V_FILEHANDLE UTL_FILE.FILE_TYPE;
V_PRO_DT NUMBER(08);
V_REC_TYPE CHAR(01);
TYPE CUST_REC_TYPE IS RECORD
P_CUST_ID CUSTOMER.CUST_ID%TYPE,
P_NAME CUSTOMER.NAME%TYPE,
P_MARR_STAT CUSTOMER.MARR_STAT%TYPE,
P_HOME_ADDR1 CUSTOMER.HOME_ADDR1%TYPE,
P_HOME_ADDR2 CUSTOMER.HOME_ADDR2%TYPE,
P_HOME_ADDR3 CUSTOMER.HOME_ADDR3%TYPE,
P_HOME_PST_CDE CUSTOMER.HOME_PST_CDE%TYPE,
P_HOME_PH CUSTOMER.HOME_PH%TYPE,
P_OFF_ADDR1 CUSTOMER.OFF_ADDR1%TYPE,
P_OFF_ADDR2 CUSTOMER.OFF_ADDR2%TYPE,
P_OFF_ADDR3 CUSTOMER.OFF_ADDR3%TYPE,
P_OFF_PST_CDE CUSTOMER.OFF_PST_CDE%TYPE,
P_OFF_PH CUSTOMER.OFF_PH1%TYPE,
CUST_REC CUST_REC_TYPE;
CURSOR SEARCH_CUSTOMER IS
SELECT
CRE_TM,
UPD_TM,
CUST_ID,
NAME,
MARR_STAT,
HOME_ADDR1,
HOME_ADDR2,
HOME_ADDR3,
HOME_PST_CDE,
HOME_PH,
OFF_ADDR1,
OFF_ADDR2,
OFF_ADDR3,
OFF_PST_CDE,
OFF_PH
FROM CUSTOMER
WHERE SUBSTR(UPD_TM,1,8)
= V_PRO_DT;
BEGIN
SELECT PRO_DT
INTO V_PRO_DT
FROM PROCESS_TBL;
IF SQL%NOTFOUND THEN
DBMS_OUTPUT.PUT_LINE('NOT FOUND IN PROCESS_TBL');
END IF;
V_FILEHANDLE := UTL_FILE.FOPEN (P_FILEDIR, P_FILENAME, 'w');
WX_REC_TYPE := 'H';
UTL_FILE.PUTF (V_FILEHANDLE, '%s', V_REC_TYPE);
UTL_FILE.PUTF (V_FILEHANDLE, '%s', V_PRO_DT);
UTL_FILE.NEW_LINE (V_FILEHANDLE);
OPEN SEARCH_CUSTOMER;
LOOP
FETCH SEARCH_CUSTOMER INTO
CUST_REC.V_CRE_TM,
CUST_REC.V_UPD_TM,
CUST_REC.V_CUST_NO,
CUST_REC.V_NAME,
CUST_REC.V_MARR_STAT,
CUST_REC.V_HOME_ADDR1,
CUST_REC.V_HOME_ADDR2,
CUST_REC.V_HOME_ADDR3,
CUST_REC.V_HOME_PST_CDE,
CUST_REC.V_HOME_PH,
CUST_REC.V_OFF_ADDR1,
CUST_REC.V_OFF_ADDR2,
CUST_REC.V_OFF_ADDR3,
CUST_REC.V_OFF_PST_CDE,
CUST_REC.V_OFF_PH;
IF SEARCH_CUSTOMER%NOTFOUND THEN
EXIT;
END IF;
IF SUBSTR(CUST_REC.V_CRE_TM,1,8) = V_PRO_DT THEN
V_REC_TYPE := 'A';
ELSE
V_REC_TYPE := 'U';
END IF;
UTL_FILE.PUTF (V_FILEHANDLE, '%s', V_REC_TYPE);
UTL_FILE.PUTF (V_FILEHANDLE, '%s', CUST_REC.V_CUST_NO);
UTL_FILE.PUTF (V_FILEHANDLE, '%s', CUST_REC.V_NAME);
UTL_FILE.PUTF (V_FILEHANDLE, '%s', CUST_REC.V_MARR_STAT);
UTL_FILE.PUTF (V_FILEHANDLE, '%s', CUST_REC.V_HOME_ADDR1);
UTL_FILE.PUTF (V_FILEHANDLE, '%s', CUST_REC.V_HOME_ADDR2);
UTL_FILE.PUTF (V_FILEHANDLE, '%s', CUST_REC.V_HOME_ADDR3);
UTL_FILE.PUTF (V_FILEHANDLE, '%s', CUST_REC.V_HOME_PST_CDE);
UTL_FILE.PUTF (V_FILEHANDLE, '%s', CUST_REC.V_HOME_PH);
UTL_FILE.PUTF (V_FILEHANDLE, '%s', CUST_REC.V_OFF_ADDR1);
UTL_FILE.PUTF (V_FILEHANDLE, '%s', CUST_REC.V_OFF_ADDR2);
UTL_FILE.PUTF (V_FILEHANDLE, '%s', CUST_REC.V_OFF_ADDR3);
UTL_FILE.PUTF (V_FILEHANDLE, '%s', CUST_REC.V_OFF_PST_CDE);
UTL_FILE.PUTF (V_FILEHANDLE, '%s', CUST_REC.V_OFF_PH);
UTL_FILE.NEW_LINE (V_FILEHANDLE);
END LOOP;
CLOSE SEARCH_CUSTOMER;
UTL_FILE.FCLOSE (V_FILEHANDLE);
EXCEPTION
WHEN UTL_FILE.INVALID_FILEHANDLE THEN
RAISE_APPLICATION_ERROR (-20001, 'Invalid File.');
WHEN UTL_FILE.WRITE_ERROR THEN
RAISE_APPLICATION_ERROR (-20002, 'Unable to write to file.');
END;
/

Hi, I'm new in PL/SQL. I had wrote a procedure which extract data from a table and write to a text file. However, I found that this procedure took a long time to return the result. Is that anything wrong with my codes? Here is the codes, please advice.
CREATE OR REPLACE PROCEDURE DataExtract
(P_FILEDIR IN VARCHAR2, P_FILENAME IN VARCHAR2)
IS
V_FILEHANDLE UTL_FILE.FILE_TYPE;
V_PRO_DT NUMBER(08);
V_REC_TYPE CHAR(01);
TYPE CUST_REC_TYPE IS RECORD
P_CUST_ID CUSTOMER.CUST_ID%TYPE,
P_NAME CUSTOMER.NAME%TYPE,
P_MARR_STAT CUSTOMER.MARR_STAT%TYPE,
P_HOME_ADDR1 CUSTOMER.HOME_ADDR1%TYPE,
P_HOME_ADDR2 CUSTOMER.HOME_ADDR2%TYPE,
P_HOME_ADDR3 CUSTOMER.HOME_ADDR3%TYPE,
P_HOME_PST_CDE CUSTOMER.HOME_PST_CDE%TYPE,
P_HOME_PH CUSTOMER.HOME_PH%TYPE,
P_OFF_ADDR1 CUSTOMER.OFF_ADDR1%TYPE,
P_OFF_ADDR2 CUSTOMER.OFF_ADDR2%TYPE,
P_OFF_ADDR3 CUSTOMER.OFF_ADDR3%TYPE,
P_OFF_PST_CDE CUSTOMER.OFF_PST_CDE%TYPE,
P_OFF_PH CUSTOMER.OFF_PH1%TYPE,
CUST_REC CUST_REC_TYPE;
CURSOR SEARCH_CUSTOMER IS
SELECT
CRE_TM,
UPD_TM,
CUST_ID,
NAME,
MARR_STAT,
HOME_ADDR1,
HOME_ADDR2,
HOME_ADDR3,
HOME_PST_CDE,
HOME_PH,
OFF_ADDR1,
OFF_ADDR2,
OFF_ADDR3,
OFF_PST_CDE,
OFF_PH
FROM CUSTOMER
WHERE SUBSTR(UPD_TM,1,8)
= V_PRO_DT;
BEGIN
SELECT PRO_DT
INTO V_PRO_DT
FROM PROCESS_TBL;
IF SQL%NOTFOUND THEN
DBMS_OUTPUT.PUT_LINE('NOT FOUND IN PROCESS_TBL');
END IF;
V_FILEHANDLE := UTL_FILE.FOPEN (P_FILEDIR, P_FILENAME, 'w');
WX_REC_TYPE := 'H';
UTL_FILE.PUTF (V_FILEHANDLE, '%s', V_REC_TYPE);
UTL_FILE.PUTF (V_FILEHANDLE, '%s', V_PRO_DT);
UTL_FILE.NEW_LINE (V_FILEHANDLE);
OPEN SEARCH_CUSTOMER;
LOOP
FETCH SEARCH_CUSTOMER INTO
CUST_REC.V_CRE_TM,
CUST_REC.V_UPD_TM,
CUST_REC.V_CUST_NO,
CUST_REC.V_NAME,
CUST_REC.V_MARR_STAT,
CUST_REC.V_HOME_ADDR1,
CUST_REC.V_HOME_ADDR2,
CUST_REC.V_HOME_ADDR3,
CUST_REC.V_HOME_PST_CDE,
CUST_REC.V_HOME_PH,
CUST_REC.V_OFF_ADDR1,
CUST_REC.V_OFF_ADDR2,
CUST_REC.V_OFF_ADDR3,
CUST_REC.V_OFF_PST_CDE,
CUST_REC.V_OFF_PH;
IF SEARCH_CUSTOMER%NOTFOUND THEN
EXIT;
END IF;
IF SUBSTR(CUST_REC.V_CRE_TM,1,8) = V_PRO_DT THEN
V_REC_TYPE := 'A';
ELSE
V_REC_TYPE := 'U';
END IF;
UTL_FILE.PUTF (V_FILEHANDLE, '%s', V_REC_TYPE);
UTL_FILE.PUTF (V_FILEHANDLE, '%s', CUST_REC.V_CUST_NO);
UTL_FILE.PUTF (V_FILEHANDLE, '%s', CUST_REC.V_NAME);
UTL_FILE.PUTF (V_FILEHANDLE, '%s', CUST_REC.V_MARR_STAT);
UTL_FILE.PUTF (V_FILEHANDLE, '%s', CUST_REC.V_HOME_ADDR1);
UTL_FILE.PUTF (V_FILEHANDLE, '%s', CUST_REC.V_HOME_ADDR2);
UTL_FILE.PUTF (V_FILEHANDLE, '%s', CUST_REC.V_HOME_ADDR3);
UTL_FILE.PUTF (V_FILEHANDLE, '%s', CUST_REC.V_HOME_PST_CDE);
UTL_FILE.PUTF (V_FILEHANDLE, '%s', CUST_REC.V_HOME_PH);
UTL_FILE.PUTF (V_FILEHANDLE, '%s', CUST_REC.V_OFF_ADDR1);
UTL_FILE.PUTF (V_FILEHANDLE, '%s', CUST_REC.V_OFF_ADDR2);
UTL_FILE.PUTF (V_FILEHANDLE, '%s', CUST_REC.V_OFF_ADDR3);
UTL_FILE.PUTF (V_FILEHANDLE, '%s', CUST_REC.V_OFF_PST_CDE);
UTL_FILE.PUTF (V_FILEHANDLE, '%s', CUST_REC.V_OFF_PH);
UTL_FILE.NEW_LINE (V_FILEHANDLE);
END LOOP;
CLOSE SEARCH_CUSTOMER;
UTL_FILE.FCLOSE (V_FILEHANDLE);
EXCEPTION
WHEN UTL_FILE.INVALID_FILEHANDLE THEN
RAISE_APPLICATION_ERROR (-20001, 'Invalid File.');
WHEN UTL_FILE.WRITE_ERROR THEN
RAISE_APPLICATION_ERROR (-20002, 'Unable to write to file.');
END;
/

Similar Messages

  • Checking the performance of Pl/SQL Procedure

    I have a PL/SQL procedure of 10,000 lines, & I dont have any Tool of performance checking only thing I have is SQL Client & database how whould I check the performance of the procedure

    Why do you want to check the performance? Have you indentified a specific problem?
    It is not easy to to "simply check the performance" of code. Let's say it has an elapsed execution time of 90 seconds. What does that tell you? Fast? Slow? Average? What does 90 seconds tell you about the resource utilisation? Nothing much - are resources being red lined for those 90 seconds or not?
    So unless there is a specific performance problem that has been diagnosed, e.g. the process uses too much PGA memory, you cannot really identify a performance problem.
    What you can do is use DBMS_PROFILE (Oracle supplied PL/SQL package) to profile the execution time of the code. This will tell you which pieces of the code are slower than others. This allows you to focus on area where possible optimisation can reduce overall execution time - or it could be that these areas are already optimised.
    What you can miss with this approach is a small loop that takes a few seconds to execute - less than 1% of the total elapsed execution time. But this loop can be very wrong and should have taken a few millisecs to do. A month later running against big production data volumes, this loop's runtime changes into minutes and over 50% of the overall execution time of the process.
    You may look at the FOR CURSOR FETCH loop and see that it has been optimised. Great, so you move on to look at the next piece of code. Only, there are other loop constructs that can be exponentially faster than this loop - like a bulk processing loop instead.
    You may look at a SQL that seems slow, but after investigation it seems to be optimal. And it could well be. But performance can be increased by 80% by not touching the SQL and instead changing the table's structure from a normal heap table to a ranged partitioned table.
    The bottom line is that there are no magic wands and crystal balls that can be used to check performance and tell you that "abc" is wrong. Tools can tell you what is slow, what is resource expensive - but it cannot tell you whether the code does what it is suppose to do in the best and most effective way. Only a programmer can. Which means that things like code reviews, design walk-thru's and so on, are critical pieces to ensure that the code is performant and can scale.

  • Slow performance of the SQL statement

    Hi All,
    the verison of the db is 10.2.0.5 & the windows 2008 server OS version. Currenty we are facing the issue with a particular query which is taking a long to complete. The query is within a procedure and its consuming resources highly like RAM,CPU,etc. the present size of SGA is 8GB .
    Please let me know how to troubleshoot it. I just need to resolve it and its taking lot of time to resolve it. Please help me out.
    Regards,
    imran khan

    DB verion is 10.2.0.4.0
    OPtimizer related parameters :
    SQL> show parameter optimizer
    NAME TYPE VALUE
    optimizer_dynamic_sampling integer 2
    optimizer_features_enable string 10.2.0.4
    optimizer_index_caching integer 0
    optimizer_index_cost_adj integer 100
    optimizer_mode string ALL_ROWS
    optimizer_secure_view_merging boolean TRUE
    The job runs daily and not sure how to generate the trace file.
    Regards,
    imran khan

  • PL/SQL procedure is 10x slower when running from weblogic

    Hi everyone,
    we've developed a PL/SQL procedure performing reporting - the original solution was written in Java but due to performance problems we've decided to switch this particular piece to PL/SQL. Everything works fine as long as we execute the procedure from SQL Developer - the batch processing 20000 items finishes in about 80 seconds, which is a serious improvement compared to the previous solution.
    But once we call the very same procedure (on exactly the same data) from weblogic, the performance seriously drops - instead of 80 seconds it suddenly runs for about 23 minutes, which is 10x slower. And we don't know why this happens :-(
    We've profiled the procedure (in both environments) using DBMS_PROFILER, and we've found that if the procedure is executed from Weblogic, one of the SQL statements runs noticeably slower and consumes about 800 seconds (90% of the total run time) instead of 0.9 second (2% of the total run time), but we're not sure why - in both cases this query is executed 32742-times, giving 24ms vs. 0.03ms in average.
    The SQL is
    SELECT personId INTO v_personId FROM (            
            SELECT personId FROM PersonRelations
            WHERE extPersonId LIKE v_person_prefix || '%'
    ) WHERE rownum = 1;Basically it returns an ID of the person according to some external ID (or the prefix of the ID). I do understand why this query might be a performance problem (LIKE operator etc.), but I don't understand why this runs quite fast when executed from SQL Developer and 10x slower when executed from Weblogic (exactly the same data, etc.).
    Ve're using Oracle 10gR2 with Weblogic 10, running on a separate machine - there are no other intensive tasks, so there's nothing that could interfere with the oracle process. According to the 'top' command, the wait time is below 0.5%, so there should be no serious I/O problems. We've even checked JDBC connection pool settings in Weblogic, but I doubt this issue is related to JDBC (and everything looks fine anyway). The statistics are fresh and the results are quite consistent.
    Edited by: user6510516 on 17.7.2009 13:46

    The setup is quite simple - the database is running on a dedicated database server (development only). Generally there are no 'intensive' tasks running on this machine, especially not when the procedure I'm talking about was executed. The application server (weblogic 10) is running on different machine so it does not interfere with the database (in this case it was my own workstation).
    No, the procedure is not called 20000x - we have a table with batch of records we need to process, with a given flag (say processed=0). The procedure reads them using a cursor and processes the records one-by-one. By 'processing' I mean computing some sums, updating other table, etc. and finally switching the record to processed=1. I.e. the procedure looks like this:
    CREATE PROCEDURE process_records IS
        v_record records_to_process%ROWTYPE;
    BEGIN
         OPEN records_to_process;
         LOOP
              FETCH records_to_process INTO v_record;
              EXIT WHEN records_to_process%NOTFOUND;
              -- process the record (update table A, insert a record into B, delete from C, query table D ....)
              -- and finally mark the row as 'processed=1'
         END LOOP;
         CLOSE records_to_process;
    END process_records;The procedure is actually part of a package and the cursor 'records_to_process' is defined in the body. One of the queries executed in the procedure is the SELECT mentioned above (the one that jumps from 2% to 90%).
    So the only thing we actually do in Weblogic is
    CallableStatement cstmt = connection.prepareCall("{call ProcessPkg.process_records}");
    cstmt.execute();and that's it - there is only one call to the JDBC, so the network overhead shouldn't be a problem.
    There are 20000 rows we use for testing - we just update them to 'processed=0' (and clear some of the other tables). So actually each run uses exactly the same data, same code paths and produces the very same results. Yet when executed from SQL developer it takes 80 seconds and when executed from Weblogic it takes 800 seconds :-(
    The only difference I've just noticed is that when using SQL Developer, we're using PL/SQL notation, i.e. "BEGIN ProcessPkg.process_records; END;" instead of "{call }" but I guess that's irrelevant. And yet another difference - weblogic uses JDBC from 10gR2, while the SQL Developer is bundled with JDBC from 11g.

  • How to send a java array to a pl/sql procedure

    Hi,
    This is similar to a post about 6 months ago on retrieving pl/sql tables from a java application but I can't seem to figure out how to use what I learned there to solve this.
    In a java application I have a Long[] array, and in the database I have a pl/sql procedure which takes a numeric in parameter. I currently loop through the array in my java application and call the procedure multiple times. What I'd prefer to do is to be able to pass the entire array to a new procedure which performs the looping internally.
    John
    null

    Kathy,
    Search the archives of this forum and the JDBC forum for the terms STRUCT and ARRAY and you can find some sample code on the JDBC How-To Documents page and the JDBC Samples which can both be accessed from this page:
    http://www.oracle.com/technology/tech/java/sqlj_jdbc/index.html
    Good Luck,
    Avi.

  • Passing variable of size greater than 32767 from Pro*C to PL/SQL procedure

    Hi,
    I am trying to pass a variable os size greater than 32767 from Pro*C to an SQL procedure.I tried assigning the host variable directly to a CLOB in the SQL section but nothing happens.In the below code the size of l_var1 is 33000.PROC_DATA is a procedure that takes CLOB as input and gives the other three(Data,Err_Code,Err_Msg) as output.These variables are declared globally.
    Process_Data(char* l_var1)
    EXEC SQL EXECUTE
    DECLARE
    l_clob clob;
    BEGIN
    l_clob := :l_var1
    PROC_DATA(l_clob,:Data,:Err_Code,:Err_Msg) ;
    COMMIT;
    END;
    END-EXEC;
    I also tried using DBMS_LOB.This was the code that i used.
    Process_Data(char* l_var1)
    EXEC SQL EXECUTE
    DECLARE
    l_clob clob;
    BEGIN
    DBMS_LOB.CREATETEMPORARY(l_clob,TRUE);
    DBMS_LOB.OPEN(l_clob,dbms_lob.lob_readwrite);
    DBMS_LOB.WRITE (l_clob, LENGTH (:l_var1), 1,:l_var1);
    PROC_DATA(l_clob,:Data,:Err_Code,:Err_Msg) ;
    COMMIT;
    END;
    END-EXEC;
    Here since DBMS_LOB packages allow a maximum of 32767,the value of l_var1 is not being assigned to l_clob.
    I am able to do the above process provided i split l_var1 into two variables and then append to l_clob using WRITEAPPEND.i.e l_var1 is 32000 in length and l_var2 contains the rest.
    Process_Data(char* l_var1,char* l_var2)
    EXEC SQL EXECUTE
    DECLARE
    l_clob clob;
    BEGIN
    dbms_lob.createtemporary(l_clob,TRUE);
    dbms_lob.OPEN(l_clob,dbms_lob.lob_readwrite);
    DBMS_LOB.WRITE (l_clob, LENGTH (:l_var1), 1,:l_var1);
    DBMS_LOB.WRITEAPPEND (l_clob, LENGTH(:l_var2), :l_var2);
    PROC_DATA(l_clob,:Data,:Err_Code,:Err_Msg) ;
    COMMIT;
    END;
    END-EXEC;
    But the above code requires dynamic memory allocation in Pro*C which i would like to avoid.Could you let me know if there is any other way to perform the above?

    Hi,
    The Long Datatype has been deprecated use Clob or Blob. This will solve lot of problems inherent with the datatype.
    Regards,
    Ganesh R

  • Passing value from ADF to BPEL, and to PL/SQL  procedure

    1. I have created BPEL which take 2 inputs and concatenate them.
    2. have created a PL/SQL procedure for invoking this BPEL( working fine).
    Now i need to create a simple ADF page which contain 2 text box, 2 for input and 1 for result(concatenate), this will take 2 inputs and send them into BPEL, this will invoke the BPEL process and perform the necessary concatenate function...
    in addition to this, i am passing code into PL/SQL procedure ...
    <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
    <soap:Body xmlns:ns1="http://xmlns.oracle.com/OrderImportDemo">
    <ns1:InputRequest>
    <ns1:FirstName>abcdef</ns1:FirstName>
    <ns1:LastName>aaaaaa</ns1:LastName>
    </ns1:InputRequest>
    </soap:Body>
    </soap:Envelope>';
    this code will take vaule from BPEL and run properly.
    can you please help me,

    thanks for help, but the problem is diff.
    i don't have any schema, what i want i need to create a adf page that will contain 3 tent field, 2 for input and 1 for output. when i will enter 2 input field and click on ok button, this will invoke BPEL, BPEL will take these 2 inputs and do the concat on this and send back to adf with result.

  • Creating page items from pl/sql procedure and using them on a page

    I have a page containing 2 select lists (P21_DEPARTMENTS and P21_DATE). Originally I added them as items that were "select list with submits". The problem is that based on the clearance level of the currently logged on user I only wanted the P21_DEPARTMENTS to be a select list if the user was an administrator. If however the user is not an admin then I want the page to have a hidden form field called P21_DEPARTMENTS that stores the user's department and has a label item that has the department name.
    There is also a report region that generates a table based on the department selected from the select list (if the user is an admin) or the value stored in the hidden form field if the user is not.
    My problem is that I cannot have both those items on the same page and use the HTML built-in authentication to determine which item should be rendered because I need to use the same ID for both items so that the stored procedure in my report region doesn't break. HTML does not permit items to share the same ID.
    I tried to circumvent the problem by creating a stored procedure that performs all of the item rendering in the procedure and uses "htp.p()" to output all of my HTML code. This solution would allow me to pass a parameter into the procedure informing me as to whether or not the user is an administrator. If the user is an administrator the procedure would use a conditional statement and render a select list. If not, the hidden form field and label option would be used instead.
    I finally got the stored procedure working perfectly. Now I am encountering the most bizarre thing. Since the "select list with submit" was not working (I used the same code that gets generated when I created other items using htmlDB's GUI) I decided to use a JavaScript function instead that gets triggered by the onChange event. I send along the value that is currently selected in the select list and in the function I set:
    location.href='http://www.myoraclesite.com/pls/htmldb/f?p=111:21:729740000000000000::NO::P21_DEPARTMENTS:1';
    In theory this should work. The problem is that it doesn't. The page reloads and the P21_DEPARTMENTS select list is not pre-selected.
    The only thing I can think of is that when htmlDB generates page items that you've created with it's own admin tool it assigns some internal guid or something as opposed to when someone tries to generate dynamic page items of their own from a pl/sql procedure it's like the application doesn't even know they exist.
    Any help would be GREATLY appreciated.
    My only other solution would be to create a totally separate page (one for admin and another for non-admin). I would really like to avoid this.
    Thanks in advance.

    I would love to be able to generate my menus and
    various other items in my htmlDB applications in much
    the same way I can using ASP, PHP and Cold Fusion.
    Users should have the ability to write server-side
    code wherever they feel like it. The way htmlDB works
    right now I spend more time trying to figure out how
    to create simple effects and generate simple
    interfaces when I need to be building a portal. Ami - it's important to understand that HTML DB is not like other languages. Thus, trying to force concepts which are common in other languages into HTML DB will often result in more work.
    It's definitely worth the time to go over the HTML DB 2-day Developer, which can be found here: http://www.oracle.com/technology/products/database/htmldb/pdf/B14377_01.pdf
    I can build a portal using Classic ASP, C#, PHP or Cold
    Fusion in like 1/10 of the time that it takes me to
    build one using htmlDB. I understand that this is not
    meant for the hard-core programmer but no web
    programming application in today's day and age should
    prevent experts from getting under the hood.And I can build a Portal in HTML DB in 1/10 the time it will take me to do it in any other language. It's like anything else - proficiency comes with practice and work.
    As for getting under the hood, there is plenty of places you can do that with HTML DB. Keep in mind that HTML DB itself is an HTML DB application, so the limits on what you can build with HTML DB are virtually limitless.
    Sorry for the vent there. After spending the last 2
    days trying to figure out how to implement such a
    straightforward thing and now being informed that it
    can't be done kind of bugged me.I understand your frustration, as I've been there before. My rule for beginners is that if you are writing more than a line or two of code in the first week, you're doing something wrong. Stop, take a break, and then use the ample resources (including searching this forum) to help solve your problem. There are plenty of resources available for you to learn about HTML DB on the HTML DB home page: http://otn.oracle.com/htmldb
    Good luck,
    - Scott -

  • Include Button that executes PL/SQL procedure to SQL query based region

    I would like to add two columns to a SQL query region.
    These columns would not be sourced from the query, but rather would be used to execute a PL/SQL procedure.
    For example, I would like to have a manager approve or deny adding an additional employee to the department.
    There would be one button for APPROVE. And, one button for DENY.
    The PL/SQL procedure would execute to perform the required DML based upon the selected action (either APPROVE or DENY).
    A sample output would look like this:
    <APPROVE>, <DENY>, John Doe, Accountant
    <APPROVE>, <DENY>, Jane Doe, Accountant
    Is there any way to add a button to a SQL Query based report region where that button executes a stored proc? If so, what is the basic process for doing this?
    Thanks!
    -Reid

    Is there any way to add a button to a SQL Query based report region where that button executes a stored proc? If so, what is the basic process for doing this?Conditional page item? You can associate processes with buttons on a page

  • Slow Performance in Non IE Browsers

    I'm struggling with slow performance with non IE browsers (I.e. Opera or Firefox), or connections through a proxy server to an applicaton I wrote. This is what I am using...
    JSF 1.2
    EJB 3.0
    Facelets
    RichFaces Taglib
    SJSAS 9.1
    Anyone have any suggestions where to direct my frusterations?

    There is enhancement filed about this issue that you are experiencing. Also, there are a new set of PL/SQL API documentation that is automatically generated and we are checking to see if those have the same issue.
    Thanks,
    Sue Vickers

  • Slow performance of PreparedStatement

    I am having difficulty with extremely slow performance or a relatively simply Microsoft SQL Server 2000 call from my Java applet. Most of the application runs fine, but there are certain parts that are repeatedly giving me a long delay before completing their execution. The code is as follows:
    // Create the try block for the execution of the SQL code
            try{
                // Create the command to be executed
                String command = new String( "select Description, Enabled " );
                command += "from tLineInfo where( Line = ? )";
                // Create the SQL text to be executed
                PreparedStatement get = _connection.prepareStatement( command );
                get.setInt( 1, lineNo );
                // Execute the SQL command
                ResultSet lineInfo = get.executeQuery();
                // Display the information accordingly
                if( lineInfo.next() ){
                    // Populate the user data fields
                    description.setText( lineInfo.getString( "Description" ) );
                          <! more display code here >
    }   // End of if statment
                else{
                    // Clear the user data fields
                    description.setText( " " );
                           <! more display code here >
                }   // End of else statements
                // Close the result set in preparation for the next query
                lineInfo.close();
            }   // End of try block
            catch( Exception e ){
                // Display a dialog box informing the user of the problem
                Object[] options = { "     OK     " };
                JOptionPane.showOptionDialog( null, e.getMessage(),
                        "Error",
                        JOptionPane.OK_OPTION, JOptionPane.ERROR_MESSAGE,
                        null, options, options[ 0 ] ); 
            }   // End of Exception catch
            // Get the related area information
            populateAreaCombo( lineNo );       
    private void populateAreaCombo( int lineNo ){
            // Format the areaComboBox
             try{
                // Create a command to get the devices from the database
                String command = new String( "select Area, [Name], [Description] " );
                command += "from tAreas where( Line = ? )";
                // Create the SQL statement to grab the information, and
                // populate the search parameter
                PreparedStatement getAreas =
                        _connection.prepareStatement( command );
                getAreas.setInt( 1, lineNo );
                // Execute the command
                ResultSet areas = getAreas.executeQuery();
                // Loop through the result set, and add collect the areas
                Vector< String > controlAreas = new Vector();
                while( areas.next() ){
                    // Add the area to the comboBox
                    controlAreas.add( Integer.toString( areas.getInt( "Area" ) ) +
                            " - " + areas.getString( "Name" ) + ": " +
                            areas.getString( "Description" ) );
                }   // End of while loop
                      <! more display code here >
                    The application always seem to pause at the second PrepraredStatement call:
    PreparedStatement getAreas =
                        _connection.prepareStatement( command );This seems to be a very simple operation, and it is not even the execution of the query where the long delay is realized. Rather, it is in the actual creation of the object prior to the execution.
    The delay is very repeatable at this exact statement each time.
    Additionally, of interest, is that the delay is only realized on computers remotely connected to the database. If I run this code on the localhost, then there is no delay. As soon as I distribute it, then the delay is incurred. That being said, there is not a network related issue that I can identify here. I have even isolated the server to be on the network with just one other PC, and the delay still persisted.
    Does anyone have any ideas?
    Thanks

    I can determine where the delay occurs by adding
    dialog boxes at a bunch of different steps, then
    monitoring them for when they appear; a little
    archaic, of course, but an easy way to find this
    out.You should
    1. Get the start time
    2. Get the current time at each step.
    3. Print the results at the end.
    4. Repeat a number of times to average.
    >
    When you say that I should not mix database code with
    display code... What exactly do you mean? To be
    more precise in my description, I was simply setting
    a bunch of different text fields and/or check boxes,
    etc., based on the result set returned. It was not
    as if I was creating a portion of the GUI there or
    something. I am assuming that is an allowable
    practice...
    You should have a class that does nothing but the database work. That class should be used by other classes (like classes that do GUI.)
    I have made little effort to close my resources, and
    sometimes they are not closed at all. When you say
    "resources", what exactly do you mean by that? Are
    you referring to the result sets, for example? I do
    not know of other resources that need to be closed,
    except for the connection to the DB itself. This, I
    have as persistent throughout the duration of the
    user's session.
    You must close result sets, statements and connections. They must be closed in that order.
    I am not running this code on the Internet, but it
    has been designed to be run on a small corporate
    network ( < 10 users). This is why I opted for the
    applet to run the entire application through instead
    of doing more HTML work.That is ok.

  • Need clear steps for doing performance tuning on SQL Server 2008 R2 (DB Engine, Reporting Services and Integration Services)

    We have to inverstigate about a reporting solution where things are getting slow (may be material, database design, network matters).
    I have red a lot in MSDN and some books about performance tuning on SQL Server 2008 R2 (or other) but frankly, I feel a little lost in all that stuff
    I'am looking for practical steps in order to do the tuning. Someone had like a recipe for that : a success story...
    My (brain storm) Methodology should follow these steps:
     Resource bottlenecks: CPU, memory, and I/O bottlenecks
     tempdb bottlenecks
     A slow-running user query : Missing indexes, statistics,...
     Use performance counters : there are many, can one give us the list of the most important
    how to do fine tuning about SQL Server configuration
    SSRS, SSIS configuration ? 
    And do the recommandations.
    Thanks
    "there is no Royal Road to Mathematics, in other words, that I have only a very small head and must live with it..."
    Edsger W. Dijkstra

    Hello,
    There is no clear defined step which can be categorized as step by step to performance tuning.Your first goal is to find out cause or drill down to factor causing slowness of SQL server it can be poorly written query ,missing indexes,outdated stats.RAM crunch
    CPU crunch so on and so forth.
    I generally refer to below doc for SQL server tuning
    http://technet.microsoft.com/en-us/library/dd672789(v=sql.100).aspx
    For SSIS tuning i refer below doc.
    http://technet.microsoft.com/library/Cc966529#ECAA
    http://msdn.microsoft.com/en-us/library/ms137622(v=sql.105).aspx
    When I face issue i generally look at wait stats ,wait stats give you idea about on what resource query was waiting.
    --By Jonathan KehayiasSELECT TOP 10
    wait_type ,
    max_wait_time_ms wait_time_ms ,
    signal_wait_time_ms ,
    wait_time_ms - signal_wait_time_ms AS resource_wait_time_ms ,
    100.0 * wait_time_ms / SUM(wait_time_ms) OVER ( )
    AS percent_total_waits ,
    100.0 * signal_wait_time_ms / SUM(signal_wait_time_ms) OVER ( )
    AS percent_total_signal_waits ,
    100.0 * ( wait_time_ms - signal_wait_time_ms )
    / SUM(wait_time_ms) OVER ( ) AS percent_total_resource_waits
    FROM sys.dm_os_wait_stats
    WHERE wait_time_ms > 0 -- remove zero wait_time
    AND wait_type NOT IN -- filter out additional irrelevant waits
    ( 'SLEEP_TASK', 'BROKER_TASK_STOP', 'BROKER_TO_FLUSH',
    'SQLTRACE_BUFFER_FLUSH','CLR_AUTO_EVENT', 'CLR_MANUAL_EVENT',
    'LAZYWRITER_SLEEP', 'SLEEP_SYSTEMTASK', 'SLEEP_BPOOL_FLUSH',
    'BROKER_EVENTHANDLER', 'XE_DISPATCHER_WAIT', 'FT_IFTSHC_MUTEX',
    'CHECKPOINT_QUEUE', 'FT_IFTS_SCHEDULER_IDLE_WAIT',
    'BROKER_TRANSMITTER', 'FT_IFTSHC_MUTEX', 'KSOURCE_WAKEUP',
    'LAZYWRITER_SLEEP', 'LOGMGR_QUEUE', 'ONDEMAND_TASK_QUEUE',
    'REQUEST_FOR_DEADLOCK_SEARCH', 'XE_TIMER_EVENT', 'BAD_PAGE_PROCESS',
    'DBMIRROR_EVENTS_QUEUE', 'BROKER_RECEIVE_WAITFOR',
    'PREEMPTIVE_OS_GETPROCADDRESS', 'PREEMPTIVE_OS_AUTHENTICATIONOPS',
    'WAITFOR', 'DISPATCHER_QUEUE_SEMAPHORE', 'XE_DISPATCHER_JOIN',
    'RESOURCE_QUEUE' )
    ORDER BY wait_time_ms DESC
    use below link to analyze wait stats
    http://www.sqlskills.com/blogs/paul/wait-statistics-or-please-tell-me-where-it-hurts/
    HTH
    PS: for reporting services you can post in SSRS forum
    Please mark this reply as the answer or vote as helpful, as appropriate, to make it useful for other readers

  • ITunes 10.1 (64-bit) slow performance

    Hello all,
    I have recently bought a new pc, a very fast machine (see details below), but I'm experiencing bad performance with iTunes 10.1 (64-bit) for windows.
    I don't have a lot of stuff in iTunes, I have about 120 apps, 500 songs, 1200 photos, couple of ringtones and 0 videos in my library. The whole iTunes interface responds slowly. Like clicking on Music, Videos, my iPhone in the side menu makes iTunes freeze for a couple of seconds and then switches to the screen. Even after loading a screen iTunes is freezed for a seconds before it's responsive.
    I've googled around for a while, and got some tips to disable some options in the preference window, so I've set all unnecessary things off, like: crossfadings songs, automatic update checking, looking for devices, automatic organizing, ping, genius, shared libraries, etc. but it doesn't speed up iTunes much.
    It gets even worse whenever I connect my iPhone 3G (Fw 4.2.1, 16GB, Black). iTunes simply freezes for like half a minute and the pc makes a few beeping noises because of connecting an usb-device. Even Windows 7 slows down a lot while connecting. iTunes gets responsive once my iPhone appears under devices in the side menu.
    Software I have constantly running in the backround are: AVG anti-virus free edition, SQL Server 2008, Steam and Skype. Turning off these softwares doesn't make a difference as well. There are no virusses or whatever on my pc. I let AVG anti-virus do a complete scan like once a week.
    Taskmanager shows iTunes using about 240,000K of memory, followed by steam with 70,000k of memory and skype with 30,000k of memory.
    Anyone else experiencing slow performance or know how to resolve this ?
    System details:
    Windows 7 64-bit
    Intel i7 950 @ 3.06GHz quad core processor
    6gigs of ddr3 (1600mhz) memory
    Ocz vertex2 ssd (The O/S and all music, photos, apps are on this disk)
    nvidia graphics card gtx460
    Message was edited by: Leon49

    Same with me! I recently bought a new laptop, and iTunes 9 was working just fine. It takes like 5 seconds to scroll down one line. Clicking on different tabs and things takes forever as well. I am not sure what is causing it yet, but like you, I have disabled all sorts of iTunes settings which has not helped yet. Hopefully Apple will fix this problem soon! Let me know if you find a way to solve this.
    My PC Specs which are well above the minimum requirements:
    Asus UL80Jt
    Windows 7 64-Bit
    Intel i3 330UM Dual Core Processor @ 1.2GHz (ASUS Overclocking to 1.7 GHz)
    4GB RAM
    1.3 GB Dedicated Video RAM
    128 SSD

  • Need help in improving the performance for the sql query

    Thanks in advance for helping me.
    I was trying to improve the performance of the below query. I tried the following methods used merge instead of update, used bulk collect / Forall update, used ordered hint, created a temp table and upadated the target table using the same. The methods which I used did not improve any performance. The data count which is updated in the target table is 2 million records and the target table has 15 million records.
    Any suggestions or solutions for improving performance are appreciated
    SQL query:
    update targettable tt
    set mnop = 'G',
    where ( x,y,z ) in
    select a.x, a.y,a.z
    from table1 a
    where (a.x, a.y,a.z) not in (
    select b.x,b.y,b.z
    from table2 b
    where 'O' = b.defg
    and mnop = 'P'
    and hijkl = 'UVW';

    987981 wrote:
    I was trying to improve the performance of the below query. I tried the following methods used merge instead of update, used bulk collect / Forall update, used ordered hint, created a temp table and upadated the target table using the same. The methods which I used did not improve any performance. And that meant what? Surely if you spend all that time and effort to try various approaches, it should mean something? Failures are as important teachers as successes. You need to learn from failures too. :-)
    The data count which is updated in the target table is 2 million records and the target table has 15 million records.Tables have rows btw, not records. Database people tend to get upset when rows are called records, as records exist in files and a database is not a mere collection of records and files.
    The failure to find a single faster method with the approaches you tried, points to that you do not know what the actual performance problem is. And without knowing the problem, you still went ahead, guns blazing.
    The very first step in dealing with any software engineering problem, is to identify the problem. Seeing the symptoms (slow performance) is still a long way from problem identification.
    Part of identifying the performance problem, is understanding the workload. Just what does the code task the database to do?
    From your comments, it needs to find 2 million rows from 15 million rows. Change these rows. And then write 2 million rows back to disk.
    That is not a small workload. Simple example. Let's say that the 2 million row find is 1ms/row and the 2 million row write is also 1ms/row. This means a 66 minute workload. Due to the number of rows, an increase in time/row either way, will potentially have 2 million fold impact.
    So where is the performance problem? Time spend finding the 2 million rows (where other tables need to be read, indexes used, etc)? Time spend writing the 2 million rows (where triggers and indexes need to be fired and maintained)? Both?

  • Help with Performance tunning PL/SQL

    Hi All,
    I have a PL/SQL procedure, it works fine. No errors, and no bugs. However its taking forever to finish. I am using the concatenation operator (||), and I know its expensive. How can I improve performance to the procedure ?
    Here is the code
    create or replace
    PROCEDURE POST_ADDRESS_CLEANSE AS
    CURSOR C1 IS
    SELECT Z.ROW_ID,
            Z.NAME
    FROM  STGDATA.ACCOUNT_SOURCE Z;
    CURSOR  C2 IS
    SELECT  DISTINCT CLEANSED_NAME || CLEANSED_STREET_ADDRESS ||
            CLEANSED_STREET_ADDRESS_2 || CLEANSED_CITY || CLEANSED_STATE ||
            CLEANSED_POSTAL_CODE AS FULLRECORD
    FROM    STGDATA.ACCOUNT_SOURCE_CLEANSED;
    V_ROWID Number := 1;
    V_FLAG VARCHAR2(30);
    TEMP_ROW_ID VARCHAR2(10) := NULL;
    BEGIN
      -- This loop will update CLEANSED_NAME column in ACCOUNT_SOURCE_CLEANSED table.
      FOR X IN C1 LOOP
        TEMP_ROW_ID := TO_CHAR(X.ROW_ID);
      UPDATE STGDATA.ACCOUNT_SOURCE_CLEANSED A
      SET  A.CLEANSED_NAME = X.NAME
      WHERE A.ROW_ID = TEMP_ROW_ID;
        COMMIT;
      END LOOP;
      -- This loop will update columns EM_PRIMARY_FLAG, EM_GROUP_ID in ACCOUNT_SOURCE_CLEANSED table
      FOR Y IN C2 LOOP
        UPDATE  STGDATA.ACCOUNT_SOURCE_CLEANSED
        SET     EM_GROUP_ID = V_ROWID
        WHERE   CLEANSED_NAME || CLEANSED_STREET_ADDRESS || CLEANSED_STREET_ADDRESS_2 ||
                CLEANSED_CITY || CLEANSED_STATE || CLEANSED_POSTAL_CODE = Y.FULLRECORD;
        UPDATE  STGDATA.ACCOUNT_SOURCE_CLEANSED
        SET     EM_PRIMARY_FLAG = 'Y'
        WHERE   CLEANSED_NAME || CLEANSED_STREET_ADDRESS || CLEANSED_STREET_ADDRESS_2 ||
                CLEANSED_CITY || CLEANSED_STATE || CLEANSED_POSTAL_CODE = Y.FULLRECORD
        AND     ROWNUM = 1;
        V_ROWID := V_ROWID + 1;
        COMMIT;
      END LOOP;
      UPDATE  STGDATA.ACCOUNT_SOURCE_CLEANSED
      SET     EM_PRIMARY_FLAG = 'N'
      WHERE   EM_PRIMARY_FLAG IS NULL;
      COMMIT;
      --dbms_output.put_line('V_ROW:'||V_ROWID);
      --dbms_output.put_line('CLEANSED_NAME:'||Y.FULLRECORD); 
    END POST_ADDRESS_CLEANSE;
    Thanks in advance.
    Message was edited by: Rooney -- added code using syntax highlight

    I was able to modify my code a bit, however I don't see a way of not using loops.
    In the loop, I am updating 2 columns. EM_PRIMARY_FLAG, and EM_GROUP_ID. The data I am working with has duplicate records, and that is why I am using a distinct in the cursor. The requirements are is to make one record a primary record, and the rest are reference records. What makes my record primary is updating column EM_PRIMARY_FLAG with a 'Y', and updating EM_GROUP_ID with a number combines all duplicate records into a group.
    In the procedure, I am getting the distinct records, looping through each one, and then doing 2 updates:
    1 - Update EM_PRIMARY_FLAG to 'Y' where rownum = 1, this will set one record to be primary
    2 - Update EM_GROUP_ID to a number (V_ROWID := V_ROWID + 1) where V_ROWID starts from 1, to group all records into a set.
    Here is my latest code after modifying it:
    create or replace
    PROCEDURE POST_ADDRESS_CLEANSE AS
    CURSOR  C1 IS
    SELECT      DISTINCT NVL(CLEANSED_NAME, '') AS NAME_CLEANSED,
                      NVL(CLEANSED_STREET_ADDRESS, '') AS ADDRESS_CLEANSED,
                      NVL(CLEANSED_STREET_ADDRESS_2, '') AS ADDRESS2_CLEANSED,
                      NVL(CLEANSED_CITY, '') AS CITY_CLEANSED,
                      NVL(CLEANSED_STATE, '') AS STATE_CLEANSED,
                      NVL(CLEANSED_POSTAL_CODE, '') AS POSTAL_CODE_CLEANSED
    FROM        STGDATA.ACCOUNT_SOURCE_CLEANSED;
    V_ROWID Number := 1;
    V_FLAG VARCHAR2(30);
    TEMP_ROW_ID VARCHAR2(10) := NULL;
    BEGIN
        UPDATE STGDATA.ACCOUNT_SOURCE_CLEANSED A
        SET  A.CLEANSED_NAME = (SELECT   Z.NAME
                                                       FROM     STGDATA.ACCOUNT_SOURCE Z
                                                       WHERE    Z.ROW_ID = (SELECT  TO_NUMBER(B.ROW_ID)
                                                                                           FROM    STGDATA.ACCOUNT_SOURCE_CLEANSED B
                                                                                           WHERE   B.ROW_ID = A.ROW_ID));
        COMMIT;
      -- This loop will update columns EM_PRIMARY_FLAG, EM_GROUP_ID in ACCOUNT_SOURCE_CLEANSED table
      FOR Y IN C1 LOOP
        UPDATE   STGDATA.ACCOUNT_SOURCE_CLEANSED
        SET          EM_GROUP_ID = V_ROWID
        WHERE    CLEANSED_NAME = Y.NAME_CLEANSED
        AND          CLEANSED_STREET_ADDRESS = Y.ADDRESS_CLEANSED
        AND          CLEANSED_STREET_ADDRESS_2 = Y.ADDRESS2_CLEANSED
        AND          CLEANSED_CITY = Y.CITY_CLEANSED
        AND          CLEANSED_STATE = Y.STATE_CLEANSED
        AND          CLEANSED_POSTAL_CODE = Y.POSTAL_CODE_CLEANSED;
        UPDATE  STGDATA.ACCOUNT_SOURCE_CLEANSED
        SET     EM_PRIMARY_FLAG = 'Y'
        WHERE   CLEANSED_NAME = Y.NAME_CLEANSED
        AND     CLEANSED_STREET_ADDRESS = Y.ADDRESS_CLEANSED
        AND     CLEANSED_STREET_ADDRESS_2 = Y.ADDRESS2_CLEANSED
        AND     CLEANSED_CITY = Y.CITY_CLEANSED
        AND     CLEANSED_STATE = Y.STATE_CLEANSED
        AND     CLEANSED_POSTAL_CODE = Y.POSTAL_CODE_CLEANSED
        AND     ROWNUM = 1;
        V_ROWID := V_ROWID + 1;
      END LOOP;
      COMMIT;
      UPDATE  STGDATA.ACCOUNT_SOURCE_CLEANSED
      SET     EM_PRIMARY_FLAG = 'N'
      WHERE   EM_PRIMARY_FLAG IS NULL;
      COMMIT;
    END POST_ADDRESS_CLEANSE;
    Thanks
    Message was edited by: Rooney - Just added the code in SQL block using syntax highlight.

Maybe you are looking for

  • Can't connect a servlet to a mysql database (jdbc)

    import javax.servlet.*; import javax.servlet.http.*; import java.io.*; import java.sql.*; public class LoginServletJDBC extends HttpServlet{      public void doGet(HttpServletRequest request,HttpServletResponse response)      throws ServletException,

  • Running Mac OS 8.6 software on Mac OSX

    I received an old copy of a game I used to play that runs on both Windows and Macintosh OS 8.6 or higher. There is a note that says, to install this software on Mac OSX, I must double-click the CD Icon and then double-click the AutoPlay Icon. However

  • How to get Final Transform value for a 3DLayer after Camera is applied?

    Hi, I need to export final transform values (position, rotation, scale, etc) from a Layer. I used ProjDumper example to extract the values. But I'm having trouble if the Layer is a 3D Layer and there is a Camera, because the Camera will affect the 3D

  • RGB swatches in CMYK document

    hi all here's a conondrum: I am working on a document that I have set up in CMYK but, after placing an image from the web which must have been an RGB and using eyedropper to copy a colour from it, all the swatches and colours turned to RGB. Even the

  • Monitoring Access

    1. I have need to create a user to monitor in the database..on SAP. 2. They have requested for a user on the 000 client with profile S_A.ADMIN 3. they want it as a SYSTEM user Some how i feel there is something a miss here-- a. If its a system user -