Binding is 60 times slower than non-binding

Hi,
I have a quite serious problem using binding with Toplink. My configuration is
Toplink 9.0.4.5
Oracle 10g EE 10.2.0.4.0 (64 Bit, Partitioning, Data Mining and Real Application Testing options)
Oracle Thin JDBC Driver (either 11.2.0.1.0 or 10.2.0.4.0)
running in a Tomcat 5.5 environment.
Our usual configuration is with BindAllParameters = "true", which is fine in 99% of all cases. But in one special case, which is the search functionality of our application (insurance agents management application),
a SQL is about 60 times slower with binding, than without binding. I attach the SQL at the end of the message, but what is quite special about it is, that it uses quite a large amount of "IN" clauses. I found an earlier
posting stating, that Toplink (or Oracle JDBC) has a problem with IN-clauses and binding. Can anyone confirm this?
As I said, the SQL is part of a people search functionality, so there is a great amount of different variations. Not all variations show this behaviour, so I assume, that Oracle probably uses different execution plans regarding using prepared statments or direct execution. Can anyone confirm this also?
Lastly, is there any way to record the execution plan inside the Tomcat application?
Thanks in advance for any help, as I said before, this problem is currently very critical, since we are 2 weeks before production,
Thorsten.
Here is the example SQL (with the bind varaibles already replaced):
/* Formatted on 2010/02/08 10:27 (Formatter Plus v4.8.8) */
SELECT t0.partner_id
  FROM aidatint.papartner t0
WHERE (    (    (    (    (   (    (t0.schwebe_kz = 'S')
                                AND (t0.aktgfid_rid = '126562119515400004')
                            OR (    (t0.schwebe_kz = 'O')
                                AND (t0.aktgfid_rid <> '126562119515400004')
                       AND (   (t0.gueltigbis_dt IS NULL)
                            OR (t0.gueltigvon_dt < t0.gueltigbis_dt)
                  AND (t0.mcname_txt = 'MEIER')
             AND (t0.partner_id IN (
                     SELECT DISTINCT t1.partner_id
                                FROM aidatint.paadresse t1
                               WHERE (    (    (   (    (t1.schwebe_kz = 'S'
                                                    AND (t1.aktgfid_rid =
                                                            '126562119515400004'
                                                OR (    (t1.schwebe_kz = 'O'
                                                    AND (t1.aktgfid_rid <>
                                                            '126562119515400004'
                                           AND (   (t1.gueltigbis_dt IS NULL
                                                OR (t1.gueltigvon_dt <
                                                              t1.gueltigbis_dt
                                      AND (t1.mcort_txt = 'KOELN')
        AND (t0.partner_id IN (
                SELECT t2.partner_id
                  FROM aidatint.paparolle t2
                 WHERE (    (    (    (   (    (t2.schwebe_kz = 'S')
                                           AND (t2.aktgfid_rid =
                                                          '126562119515400004'
                                       OR (    (t2.schwebe_kz = 'O')
                                           AND (t2.aktgfid_rid <>
                                                          '126562119515400004'
                                  AND (    (t2.gueltigvon_dt <=
                                               TO_DATE ('20100208',
                                                        'YYYYMMDD')
                                       AND (   (t2.gueltigbis_dt >
                                                   TO_DATE ('20100208',
                                                            'YYYYMMDD'
                                            OR (t2.gueltigbis_dt IS NULL)
                             AND (t2.geschobjtyp_typ = 'VMVT')
                        AND (t2.goid_id IN (
                                SELECT t3.vermittlervertragid_id
                                  FROM aidatint.prvvsvermittlervertrag t3
                                 WHERE (    (   (    (t3.schwebe_kz = 'S')
                                                 AND (t3.aktgfid_rid =
                                                          '126562119515400004'
                                             OR (    (t3.schwebe_kz = 'O')
                                                 AND (t3.aktgfid_rid <>
                                                          '126562119515400004'
                                        AND (t3.kumulnr_txt IN (
                                                SELECT t4.bereichsnr_txt
                                                  FROM aidatint.prvvsstrukturangausdienst t4
                                                 WHERE (    (    (   (    (t4.schwebe_kz =
                                                                              'S'
                                                                      AND (t4.aktgfid_rid =
                                                                              '126562119515400004'
                                                                  OR (    (t4.schwebe_kz =
                                                                              'O'
                                                                      AND (t4.aktgfid_rid <>
                                                                              '126562119515400004'
                                                             AND (    (t4.gueltigvon_dt <=
                                                                          TO_DATE
                                                                             ('20100208',
                                                                              'YYYYMMDD'
                                                                  AND (   (t4.gueltigbis_dt >
                                                                              TO_DATE
                                                                                 ('20100208',
                                                                                  'YYYYMMDD'
                                                                       OR (t4.gueltigbis_dt IS NULL
                                                        AND (t4.schluessel_txt LIKE
                                                                '##TH###1###4%'
       )

Odd, I would assume it is a db/JDBC issue. You can confirm this by trying the same through raw JDBC, or enabling the TopLink profiler.
It could be related to the large size of the SQL and large number of parameters to the call. You may wish to check with the JDBC group to see what the issue is.
You can disable binding for just this query, to get the binding benefit elsewhere and avoid the binding issue for just this query.
EclipseLink: http://www.eclipselink.org

Similar Messages

  • Why is the download/upload speed so slow on my MBA (about 5 times slower than my PC)?

    Why is the download/upload speed so slow on my MBA (about 5 times slower than my PC)?

    Are you on band 13 or band 4?  13 is the original LTE band and remains relatively congested. Band 4 is the XLTE band and is less congested and has higher overall potential bandwidth (15 MHz vs 10 MHz). Even so, 7 Mbps is more than enough for doing stuff on your phone and is not considered slow. 
    To check band,
    dial *3001#12345#*
    select serving cell info
    frequency band will say 13 or 4
    FInd an area with band 4 and retest. 

  • "localStorage.setItem" is 1000 times slower than in IE,Opera,Chrome.Is it normal?

    Hi.
    If you try to open this HTML page in Firefox 3.6.8, Firefox is 1000 times slower than IE 8,Opera 10 and Chrome. I cannot believe that localStorage.setItem is so slow in Firefox.
    Is there a solution ?
    Thanks in advance
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <title>Storage test</title>
    </head>
    <body>
    <script type="text/javascript">
    var TestValue = "1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890";
    for (var i = 0; i < 1000; i++) {
    localStorage.setItem(i, TestValue);
    </script>
    </body>
    </html>

    Hi.
    If you try to open this HTML page in Firefox 3.6.8, Firefox is 1000 times slower than IE 8,Opera 10 and Chrome. I cannot believe that localStorage.setItem is so slow in Firefox.
    Is there a solution ?
    Thanks in advance
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <title>Storage test</title>
    </head>
    <body>
    <script type="text/javascript">
    var TestValue = "1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890";
    for (var i = 0; i < 1000; i++) {
    localStorage.setItem(i, TestValue);
    </script>
    </body>
    </html>

  • Why is Firefox about 5 times slower than chrome on same tablet?

    Hei, I love the idea behind firefox, but as mobile browser it feels very slow.
    Using the zimbra ajax email client, firefox mobile on a powerfull sony xperia tablet z takes 25s to start up, and even then, usage is laggy. Chrome on the same device starts in 5s and works smooth.
    About the same results I get with http://tagesschau.de firefox mobile takes several seconds to display the page readably, while chrome gives the wanted results immediately. I even deleted all history and private stuff, and don't use any addons in firefox, as I read at your help pages, but firefox feels far behind in usability compared to chrome.
    Best regards,
    Heiko

    Are these numbers pertaining to the first request only. Actually there has been quite a lot of changes in classloader and jasper compiler etc,. in sp4. Infact sp4 is proved to be much faster than earlier versions (Though I donot have exact figures with me, sp4 is faster than sp1). But some times it also depends on the settings like the debug level, type of session(lite or distributed) etc. At this time, as you are using only the defualt set up, I suggest you to try with other samples and verify is sp4 really 7-10 times slower than sp1. And then come up to a conclusion.
    After having tested with multiple samples, with the "same parameters" on both the service packs, Still if you feel sp1 is faster or any further queries please get back to the forum. Please provide information about your settings also, so that I can investigate.
    Thanks,
    Rakesh.

  • Windows Graphics 20 times slower than Linux Graphics?

    Hello,
    I am working on a java application to visualize 3D crystal structures. The atomes in the structure are drawn with "DrawOval" and "FillOval". Most of the processor time is spent on these two commands. Since I want to draw several thousands up to tens of thousands of atoms in real time, performance is a serious issue.
    The program works well, however I made the following observance: The code running on Windows XP is about 20 tims slower (approx. 100 ms/frame vs. 5 ms/frame) than the same code running on the same computer under Linux!
    Why is there such a big performance difference?
    Is there a way to have the same performance on the windows machine as on the linux machine?
    Is it necessary to use a different way to display circles?
    Hardware: AMD dual Athlon, NVidia GeForce4 Ti 4400.
    Thanks a lot for your help!

    I should say I'm surprised that there is such a big difference in performance, but if you want really great performance you might want to look into using OpenGL, even if you only do 2D graphics. 3D drivers are usually more optimized than the 2D counterparts (simply because of greater demand, unless you look into HighEnd CAD graphics cards).
    Obviously OpenGL will only be faster if you've got accelerated 3D drivers for every platform.

  • PreparedStatement is About 60 times slower than Statements

    I am highly suprised that in my programme a normal statement is a lot faster than a Prepared Statement. I am posting below both the Programmes, in one I am using Prepared Statements and in another I am using normal Statements. My OS is Win NT My Database is SQL Server 7. THe progamme extracts data from a file and inserts records in the database. In the test case I had A file of about 1440 records ie. 1440 inserts are made to the database, The database table is very large ie. It has around 126 Columns.
    So for inserting 1440 record froma file the Prepared Statements take around 7 Minutes . And for reading the same file and inserting the same no of records in the same database normal Statements Take only about 7 seconds. Now the JAcva docs clearly Specify that when we need to use the same stmt many times it is better to use Prepared Satements < the results that I am Getting is clear and complete violation of what java docs say.
    Here is the code with Prepared Statements
    package mps.mpsPTLF;
    import java.io.*;
    import java.sql.*;
    import java.util.*;
    import java.util.Calendar;
    import java.util.Date;
    import gen.genCommon.genConnectionPool.*;
    import gen.genCommon.*;
    public class PTLFProcessor
         private static clsLogFile moLogFile = new clsLogFile("");
         private gen.genCommon.genConnectionPool.SharedConnectionPool mConnPool = SharedConnectionPool.getInstance(2);
         FileReader fPTLF = null;
         BufferedReader brPTLF = null;
    //**************** Begin Constructor declaration ************************
    To intialize the class variables for new Fee
         public PTLFProcessor(String pathPTLF) throws GenException
              try
                   fPTLF = new FileReader(pathPTLF);
                   brPTLF = new BufferedReader(fPTLF);
              catch (Exception e)
                   throw new GenException("Error Accessing file : " + pathPTLF + " - " + e.toString(),e );     
    //**************** End  Constructor declaration ************************
         public void PTLFGetData() throws GenException
              char pcData[];
              int HEADERSIZE = 6;
              boolean pbEndOfFile = false;
              boolean pbisFirstBlock = true;
              int piBlocksize = 0;
              int piOffset = 0;
              int piRecordsize = 0;
              String psRecordContent = "";
              Connection pConn = null;
              try
                   String psInsSql=" INSERT INTO FILE_PTLF_IN ( " +
                                       " fpi_DAT_TIM , " +
                                       " fpi_REC_TYP , " +
                                       " fpi_CRD_LN , " +
                                       " fpi_CRD_FIID , " +
                                       " fpi_CRD_NUM , " +
                                       " fpi_MBR_NUM , " +
                                       " fpi_MER_LN , " +
                                       " fpi_MER_FIID , " +
                                       " fpi_MER_GRP , " +
                                       " fpi_MER_REGN , " +
                                       " fpi_MER_ID , " +
                                       " fpi_TERM_ID , " +
                                       " fpi_SHIFT_NUM , " +
                                       " fpi_BATCH_NUM , " +
                                       " fpi_TERM_LN , " +
                                       " fpi_TERM_FIID , " +
                                       " fpi_TERM_ID_1 , " +
                                       " fpi_TRAN , " +
                                       " fpi_TERM_ID_2 , " +
                                       " fpi_REC_FRMT , " +
                                       " fpi_MER_ID_1 , " +
                                       " fpi_CLERK_ID , " +
                                       " fpi_DATA_FLAG , " +
                                       " fpi_TYP , " +
                                       " fpi_RTE_STAT , " +
                                       " fpi_ORIGINATOR , " +
                                       " fpi_RESPONDER , " +
                                       " fpi_ISS_CDE , " +
                                       " fpi_ENTRY_TIM , " +
                                       " fpi_EXIT_TIM , " +
                                       " fpi_RE_ENTRY_TIM , " +
                                       " fpi_TRAN_DAT , " +
                                       " fpi_TRAN_TIM , " +
                                       " fpi_POST_DAT , " +
                                       " fpi_ACQ_ICHG_SETL_DAT , " +
                                       " fpi_ISS_ICHG_SETL_DAT , " +
                                       " fpi_SEQ_NUM , " +
                                       " fpi_TERM_NAME_LOC , " +
                                       " fpi_TERM_OWNER_NAME , " +
                                       " fpi_TERM_CITY , " +
                                       " fpi_TERM_ST , " +
                                       " fpi_TERM_CNTRY_CDE , " +
                                       " fpi_BRCH_ID , " +
                                       " fpi_USER_FLD2 , " +
                                       " fpi_TERM_TIM_OFST , " +
                                       " fpi_ACQ_INST_ID_NUM , " +
                                       " fpi_RCV_INST_ID_NUM , " +
                                       " fpi_TERM_TYP , " +
                                       " fpi_CLERK_ID_1 , " +
                                       " fpi_GRP , " +
                                       " fpi_USER_ID , " +
                                       " fpi_RETL_SIC_CDE , " +
                                       " fpi_ORIG , " +
                                       " fpi_DEST , " +
                                       " fpi_TC , " +
                                       " fpi_T , " +
                                       " fpi_AA , " +
                                       " fpi_C , " +
                                       " fpi_CRD_TYP , " +
                                       " fpi_ACCT , " +
                                       " fpi_RESP_CDE , " +
                                       " fpi_AMT_1 , " +
                                       " fpi_AMT_2 , " +
                                       " fpi_EXP_DAT , " +
                                       " fpi_TRACK2 , " +
                                       " fpi_PIN_OFST , " +
                                       " fpi_PRE_AUTH_SEQ_NUM , " +
                                       " fpi_INVOICE_NUM , " +
                                       " fpi_ORIG_INVOICE_NUM , " +
                                       " fpi_AUTHORIZER , " +
                                       " fpi_AUTH_IND , " +
                                       " fpi_SHIFT_NUM_1 , " +
                                       " fpi_BATCH_SEQ_NUM , " +
                                       " fpi_APPRV_CDE , " +
                                       " fpi_APPRV_CDE_LGTH , " +
                                       " fpi_ICHG_RESP , " +
                                       " fpi_PSEUDO_TERM_ID , " +
                                       " fpi_RFRL_PHONE , " +
                                       " fpi_DFT_CAPTURE_FLG , " +
                                       " fpi_SETL_FLAG , " +
                                       " fpi_RVRL_CDE , " +
                                       " fpi_REA_FOR_CHRGBCK , " +
                                       " fpi_NUM_OF_CHRGBCK , " +
                                       " fpi_PT_SRV_COND_CDE , " +
                                       " fpi_PT_SRV_ENTRY_MDE , " +
                                       " fpi_AUTH_IND2 , " +
                                       " fpi_ORIG_CRNCY_CDE , " +
                                       " fpi_AUTH_CRNCY_CDE , " +
                                       " fpi_AUTH_CONV_RATE , " +
                                       " fpi_SETL_CRNCY_CDE , " +
                                       " fpi_SETL_CONV_RATE , " +
                                       " fpi_CONV_DAT_TIM , " +
                                       " fpi_IMP_IND , " +
                                       " fpi_AVAIL_BAL , " +
                                       " fpi_LEDG_BAL , " +
                                       " fpi_AMT_ON_HOLD , " +
                                       " fpi_TTL_FLOAT , " +
                                       " fpi_CUR_FLOAT , " +
                                       " fpi_ADJ_SETL_IMPACT_FLG , " +
                                       " fpi_PBF1 , " +
                                       " fpi_PBF2 , " +
                                       " fpi_PBF3 , " +
                                       " fpi_PBF4 , " +
                                       " fpi_FRWD_INST_ID_NUM , " +
                                       " fpi_CRD_ACCPT_ID_NUM , " +
                                       " fpi_CRD_ISS_ID_NUM , " +
                                       " fpi_ORIG_MSG_TYP , " +
                                       " fpi_ORIG_TRAN_TIM , " +
                                       " fpi_ORIG_TRAN_DAT , " +
                                       " fpi_ORIG_SEQ_NUM , " +
                                       " fpi_ORIG_B24_POST_DAT , " +
                                       " fpi_EXCP_RSN_CDE , " +
                                       " fpi_OVRRDE_FLG , " +
                                       " fpi_ADDR , " +
                                       " fpi_ZIP_CDE , " +
                                       " fpi_ADDR_VRFY_STAT , " +
                                       " fpi_PIN_IND , " +
                                       " fpi_PIN_TRIES , " +
                                       " fpi_PRE_AUTH_TS_DAT , " +
                                       " fpi_PRE_AUTH_TS_TIM , " +
                                       " fpi_PRE_AUTH_HLDS_LVL , " +
                                       " fpi_USER_FLD5 , " +
                                       " fpi_LEN , " +
                                       " fpi_INFO )" +
                                       " VALUES ( " +
                                       " ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?, " +
                                       " ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?, " +
                                       " ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?, " +
                                       " ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?, " +
                   pConn = mConnPool.getConnection();
                   PreparedStatement pStmt = pConn.prepareStatement(psInsSql);
                   while (!pbEndOfFile)
                        pcData = new char [HEADERSIZE];                    // Reading each Block Header
                        brPTLF.read (pcData, 0, HEADERSIZE);
                        piBlocksize = Integer.parseInt (new String (pcData));
                        piOffset = HEADERSIZE;
                        while (piOffset < piBlocksize)
                        {                      // Read the records upto end of block
                             pcData = new char [HEADERSIZE];               // Reading each Record Header
                             brPTLF.read (pcData, 0, HEADERSIZE);
                             piRecordsize = Integer.parseInt (new String (pcData));
                             piOffset += HEADERSIZE;
                             pcData = new char [piRecordsize - HEADERSIZE];     // Reading each Record Content
                             brPTLF.read (pcData, 0, piRecordsize - HEADERSIZE);
                             psRecordContent = new String (pcData);
                             piOffset += piRecordsize - HEADERSIZE;
                             moLogFile.writeToLog(psRecordContent);
                             if (pbisFirstBlock)
                                  if (!psRecordContent.startsWith ("TH"))
                                       throw new GenException ("Invalid File Format, missing 'TH'");
                                  pcData = new char [HEADERSIZE];          // Reading next Record Header
                                  brPTLF.read (pcData, 0, HEADERSIZE);
                                  piRecordsize = Integer.parseInt (new String (pcData));
                                  piOffset += HEADERSIZE;
                                  pcData = new char [piRecordsize - HEADERSIZE];// Reading next Record Content (Must be FH)
                                  brPTLF.read (pcData, 0, piRecordsize - HEADERSIZE);
                                  psRecordContent = new String (pcData);
                                  piOffset += piRecordsize - HEADERSIZE;
                                  if (!psRecordContent.startsWith ("FH"))
                                       throw new GenException ("File Header Not Found");
                                  pbisFirstBlock = false;
                             else if (psRecordContent.startsWith ("DR"))
                                  psRecordContent = psRecordContent.substring(2);
                        /*          if (psRecordContent.length() != 1820 ) // && psRecordContent.length() != 846)
                                       // insert in error table
                                       continue;
                                  if ( psRecordContent.substring(453-1, 455).equals ("000") || psRecordContent.substring(453-1, 455).equals ("001") )
                                       pStmt.setString (1, psRecordContent.substring(1-1,19));
                                       pStmt.setString (2, psRecordContent.substring(20-1,21));
                                       pStmt.setString (3, psRecordContent.substring(22-1,25));
                                       pStmt.setString (4, psRecordContent.substring(26-1,29));
                                       pStmt.setString (5, psRecordContent.substring(30-1,48));
                                       pStmt.setString (6, psRecordContent.substring(49-1,51));
                                       pStmt.setString (7, psRecordContent.substring(52-1,55));
                                       pStmt.setString (8, psRecordContent.substring(56-1,59));
                                       pStmt.setString (9, psRecordContent.substring(60-1,63));
                                       pStmt.setString (10, psRecordContent.substring(64-1,67));
                                       pStmt.setString (11, psRecordContent.substring(68-1,86));
                                       pStmt.setString (12, psRecordContent.substring(87-1,102));
                                       pStmt.setString (13, psRecordContent.substring(103-1,105));
                                       pStmt.setString (14, psRecordContent.substring(106-1,108));
                                       pStmt.setString (15, psRecordContent.substring(109-1,112));
                                       pStmt.setString (16, psRecordContent.substring(113-1,116));
                                       pStmt.setString (17, psRecordContent.substring(117-1,132));
                                       pStmt.setString (18, psRecordContent.substring(133-1,140));
                                       pStmt.setString (19, psRecordContent.substring(141-1,156));
                                       pStmt.setString (20, psRecordContent.substring(157-1,157));
                                       pStmt.setString (21, psRecordContent.substring(158-1,176));
                                       pStmt.setString (22, psRecordContent.substring(177-1,182));
                                       pStmt.setString (23, psRecordContent.substring(183-1,183));
                                       pStmt.setString (24, psRecordContent.substring(184-1,187));
                                       pStmt.setString (25, psRecordContent.substring(188-1,189));
                                       pStmt.setString (26, psRecordContent.substring(190-1,190));
                                       pStmt.setString (27, psRecordContent.substring(191-1,191));
                                       pStmt.setString (28, psRecordContent.substring(192-1,193));
                                       pStmt.setString (29, psRecordContent.substring(194-1,212));
                                       pStmt.setString (30, psRecordContent.substring(213-1,231));
                                       pStmt.setString (31, psRecordContent.substring(232-1,250));
                                       pStmt.setString (32, psRecordContent.substring(251-1,256));
                                       pStmt.setString (33, psRecordContent.substring(257-1,264));
                                       pStmt.setString (34, psRecordContent.substring(265-1,270));
                                       pStmt.setString (35, psRecordContent.substring(271-1,276));
                                       pStmt.setString (36, psRecordContent.substring(277-1,282));
                                       pStmt.setString (37, psRecordContent.substring(283-1,294));
                                       pStmt.setString (38, psRecordContent.substring(295-1,319));
                                       pStmt.setString (39, psRecordContent.substring(320-1,341));
                                       pStmt.setString (40, psRecordContent.substring(342-1,354));
                                       pStmt.setString (41, psRecordContent.substring(355-1,357));
                                       pStmt.setString (42, psRecordContent.substring(358-1,359));
                                       pStmt.setString (43, psRecordContent.substring(360-1,363));
                                       pStmt.setString (44, psRecordContent.substring(364-1,366));
                                       pStmt.setString (45, psRecordContent.substring(367-1,371));
                                       pStmt.setString (46, psRecordContent.substring(372-1,382));
                                       pStmt.setString (47, psRecordContent.substring(383-1,393));
                                       pStmt.setString (48, psRecordContent.substring(394-1,395));
                                       pStmt.setString (49, psRecordContent.substring(396-1,401));
                                       pStmt.setString (50, psRecordContent.substring(402-1,405));
                                       pStmt.setString (51, psRecordContent.substring(406-1,413));
                                       pStmt.setString (52, psRecordContent.substring(414-1,417));
                                       pStmt.setString (53, psRecordContent.substring(418-1,421));
                                       pStmt.setString (54, psRecordContent.substring(422-1,425));
                                       pStmt.setString (55, psRecordContent.substring(426-1,427));
                                       pStmt.setString (56, psRecordContent.substring(428-1,428));
                                       pStmt.setString (57, psRecordContent.substring(429-1,430));
                                       pStmt.setString (58, psRecordContent.substring(431-1,431));
                                       pStmt.setString (59, psRecordContent.substring(432-1,433));
                                       pStmt.setString (60, psRecordContent.substring(434-1,452));
                                       pStmt.setString (61, psRecordContent.substring(453-1,455));
                                       pStmt.setString (62, psRecordContent.substring(456-1,474));
                                       pStmt.setString (63, psRecordContent.substring(475-1,493));
                                       pStmt.setString (64, psRecordContent.substring(494-1,497));
                                       pStmt.setString (65, psRecordContent.substring(498-1,537));
                                       pStmt.setString (66, psRecordContent.substring(538-1,553));
                                       pStmt.setString (67, psRecordContent.substring(554-1,565));
                                       pStmt.setString (68, psRecordContent.substring(566-1,575));
                                       pStmt.setString (69, psRecordContent.substring(576-1,585));
                                       pStmt.setString (70, psRecordContent.substring(586-1,601));
                                       pStmt.setString (71, psRecordContent.substring(602-1,602));
                                       pStmt.setString (72, psRecordContent.substring(603-1,605));
                                       pStmt.setString (73, psRecordContent.substring(606-1,608));
                                       pStmt.setString (74, psRecordContent.substring(609-1,616));
                                       pStmt.setString (75, psRecordContent.substring(617-1,617));
                                       pStmt.setString (76, psRecordContent.substring(618-1,625));
                                       pStmt.setString (77, psRecordContent.substring(626-1,629));
                                       pStmt.setString (78, psRecordContent.substring(630-1,649));
                                       pStmt.setString (79, psRecordContent.substring(650-1,650));
                                       pStmt.setString (80, psRecordContent.substring(651-1,651));
                                       pStmt.setString (81, psRecordContent.substring(652-1,653));
                                       pStmt.setString (82, psRecordContent.substring(654-1,655));
                                       pStmt.setString (83, psRecordContent.substring(656-1,656));
                                       pStmt.setString (84, psRecordContent.substring(657-1,658));
                                       pStmt.setString (85, psRecordContent.substring(659-1,661));
                                       pStmt.setString (86, psRecordContent.substring(662-1,662));
                                       pStmt.setString (87, psRecordContent.substring(663-1,665));
                                       pStmt.setString (88, psRecordContent.substring(666-1,668));
                                       pStmt.setString (89, psRecordContent.substring(669-1,676));
                                       pStmt.setString (90, psRecordContent.substring(677-1,679));
                                       pStmt.setString (91, psRecordContent.substring(680-1,687));
                                       pStmt.setString (92, psRecordContent.substring(688-1,706));
                                       pStmt.setString (93, psRecordContent.substring(707-1,707));
                                       pStmt.setString (94, psRecordContent.substring(708-1,708));
                                       pStmt.setString (95, psRecordContent.substring(709-1,709));
                                       pStmt.setString (96, psRecordContent.substring(710-1,710));
                                       pStmt.setString (97, psRecordContent.substring(711-1,711));
                                       pStmt.setString (98, psRecordContent.substring(712-1,712));
                                       pStmt.setString (99, psRecordContent.substring(713-1,713));
                                       pStmt.setString (100, psRecordContent.substring(714-1,714));
                                       pStmt.setString (101, psRecordContent.substring(715-1,715));
                                       pStmt.setString (102, psRecordContent.substring(716-1,716));
                                       pStmt.setString (103, psRecordContent.substring(717-1,717));
                                       pStmt.setString (104, psRecordContent.substring(718-1,728));
                                       pStmt.setString (105, psRecordContent.substring(729-1,739));
                                       pStmt.setString (106, psRecordContent.substring(740-1,750));
                                       pStmt.setString (107, psRecordContent.substring(751-1,754));
                                       pStmt.setString (108, psRecordContent.substring(755-1,762));
                                       pStmt.setString (109, psRecordContent.substring(763-1,766));
                                       pStmt.setString (110, psRecordContent.substring(767-1,778));
                                       pStmt.setString (111, psRecordContent.substring(779-1,782));
                                       pStmt.setString (112, psRecordContent.substring(783-1,785));
                                       pStmt.setString (113, psRecordContent.substring(786-1,786));
                                       pStmt.setString (114, psRecordContent.substring(787-1,806));
                                       pStmt.setString (115, psRecordContent.substring(807-1,815));
                                       pStmt.setString (116, psRecordContent.substring(816-1,816));
                                       pStmt.setString (117, psRecordContent.substring(817-1,817));
                                       pStmt.setString (118, psRecordContent.substring(818-1,818));
                                       pStmt.setString (119, psRecordContent.substring(819-1,824));
                                       pStmt.setString (120, psRecordContent.substring(825-1,832));
                                       pStmt.setString (121, psRecordContent.substring(833-1,833));
                                       pStmt.setString (122, psRecordContent.substring(834-1,866));
                                       pStmt.setString (123, psRecordContent.substring(867-1,870));
                                       pStmt.setString (124, psRecordContent.substring(871-1,1070));
                             //          if (pStmt.executeUpdate() != 1)
                             //               throw new GenException ("Insertion failed");
                                            String psMsgType = psRecordContent.substring (184-1, 187);
                                            if (true)//updateTable (conn, pstmt, pstmt1, pstmt2, psRecordContent, out, bw))
                                                 if (psMsgType.equals ("0500") || psMsgType.equals ("0520"))
                                                           //piSettlementDR++;
                                                 if (psMsgType.equals ("0210"))
                                                           //piUpdatedDR++;
                                                 if (psMsgType.equals ("0220") || psMsgType.equals ("0320") || psMsgType.equals ("0420"))
                                                      //reversalDR++;
                                                 //validDR++;
                                  //totalDR++;
                             else if (psRecordContent.startsWith ("FT"))
                                  pcData = new char [HEADERSIZE];     // Reading next Record Header
                                  brPTLF.read (pcData, 0, HEADERSIZE);
                                  piRecordsize = Integer.parseInt (new String (pcData));
                                  piOffset += HEADERSIZE;
                                  pcData = new char [piRecordsize - HEADERSIZE];// Reading next Record Content (Must be TT)
                                  brPTLF.read (pcData, 0, piRecordsize - HEADERSIZE);
                                  psRecordContent = new String (pcData);
                                  piOffset += piRecordsize - HEADERSIZE;
                                  if (!psRecordContent.startsWith ("TT"))
                                       throw new GenException ("Total Trailer not Found.");
                                  pbEndOfFile = true;
                        } // while (piOffset < piBlocksize)
                   } // while (!pbEndOfFile)
                   brPTLF.close();
                   fPTLF.close();
                   pStmt.close();
              catch (Exception e)
                   moLogFile.printStackTrace(e);
              finally
                   mConnPool.free(pConn);
         public static void main(String args[])
              try
                   PTLFProcessor test=new PTLFProcessor("c:\\test.txt");
                   test.PTLFGetData();
              catch (Exception e)
                   clsLogFile.printStackTrace(e);
    }Here is the code with Normal statements
    //package mps.mpsPTLF;
    import java.io.*;
    import java.sql.*;
    import java.util.*;
    import java.util.Calendar;
    import java.util.Date;
    import gen.genCommon.genConnectionPool.*;
    import gen.genCommon.*;
    public class PTLFProcessor1
         private static clsLogFile moLogFile = new clsLogFile("");
         private gen.genCommon.genConnectionPool.SharedConnectionPool mConnPool = SharedConnectionPool.getInstance(2);
         FileReader fPTLF = null;
         BufferedReader brPTLF = null;
    //**************** Begin Constructor declaration ************************
    To intialize the class variables for new Fee
         public PTLFProcessor1(String pathPTLF) throws GenException
              try
                   fPTLF = new FileReader(pathPTLF);
                   brPTLF = new BufferedReader(fPTLF);
              catch (Exception e)
                   throw new GenException("Error Accessing file : " + pathPTLF + " - " + e.toString(),e );     
    //**************** End  Constructor declaration ************************
         public void PTLFGetData() throws GenException
              char pcData[];
              int HEADERSIZE = 6;
              boolean pbEndOfFile = false;
              boolean pbisFirstBlock = true;
              int piBlocksize = 0;
              int piOffset = 0;
              int piRecordsize = 0;
              String psRecordContent = "";
              Connection pConn = null;
              int cnt=0;
              try
                   String psInsSql=" INSERT INTO FILE_PTLF_IN ( " +
                                       " fpi_DAT_TIM , " +
                                       " fpi_REC_TYP , " +
                                       " fpi_CRD_LN , " +
                                       " fpi_CRD_FIID , " +
                                       " fpi_CRD_NUM , " +
                                       " fpi_MBR_NUM , " +
                                       " fpi_MER_LN , " +
                                       " fpi_MER_FIID , " +
                                       " fpi_MER_GRP , " +
                                       " fpi_MER_REGN , " +
                                       " fpi_MER_ID , " +
                                       " fpi_TERM_ID , " +
                                       " fpi_SHIFT_NUM , " +
                                       " fpi_BATCH_NUM , " +
                                       " fpi_TERM_LN , " +
                                       " fpi_TERM_FIID , " +
                                       " fpi_TERM_ID_1 , " +
                                       " fpi_TRAN , " +
                                       " fpi_TERM_ID_2 , " +
                                       " fpi_REC_FRMT , " +
                                       " fpi_MER_ID_1 , " +
                                       " fpi_CLERK_ID , " +
                                       " fpi_DATA_FLAG , " +
                                       " fpi_TYP , " +
                                       " fpi_RTE_STAT , " +
                                       " fpi_ORIGINATOR , " +
                                       " fpi_RESPONDER , " +
                                       " fpi_ISS_CDE , " +
                                       " fpi_ENTRY_TIM , " +
                                       " fpi_EXIT_TIM , " +
                                       " fpi_RE_ENTRY_TIM , " +
                                       " fpi_TRAN_DAT , " +
                                       " fpi_TRAN_TIM , " +
                                       " fpi_POST_DAT , " +
                                       " fpi_ACQ_ICHG_SETL_DAT , " +
                                       " fpi_ISS_ICHG_SETL_DAT , " +
                                       " fpi_SEQ_NUM , " +
                                       " fpi_TERM_NAME_LOC , " +
                                       " fpi_TERM_OWNER_NAME , " +
                                       " fpi_TERM_CITY , " +
                                       " fpi_TERM_ST , " +
                                       " fpi_TERM_CNTRY_CDE , " +
                                       " fpi_BRCH_ID , " +
                                       " fpi_USER_FLD2 , " +
                                       " fpi_TERM_TIM_OFST , " +
                                       " fpi_ACQ_INST_ID_NUM , " +
                                       " fpi_RCV_INST_ID_NUM , " +
                                       " fpi_TERM_TYP , " +
                                       " fpi_CLERK_ID_1 , " +
                                       " fpi_GRP , " +
                                       " fpi_USER_ID , " +
                                       " fpi_RETL_SIC_CDE , " +
                                       " fpi_ORIG , " +
                                       " fpi_DEST , " +
                                       " fpi_TC , " +
                                       " fpi_T , " +
                                       " fpi_AA , " +
                                       " fpi_C , " +
                                       " fpi_CRD_TYP , " +
                                       " fpi_ACCT , " +
                                       " fpi_RESP_CDE , " +
                                       " fpi_AMT_1 , " +
                                       " fpi_AMT_2 , " +
                                       " fpi_EXP_DAT , " +
                                       " fpi_TRACK2 , " +
                                       " fpi_PIN_OFST , " +
                                       " fpi_PRE_AUTH_SEQ_NUM , " +
                                       " fpi_INVOICE_NUM , " +
                                       " fpi_ORIG_INVOICE_NUM , " +
                                       " fpi_AUTHORIZER , " +
                                       " fpi_AUTH_IND , " +
                                       " fpi_SHIFT_NUM_1 , " +
                                       " fpi_BATCH_SEQ_NUM , " +
                                       " fpi_APPRV_CDE , " +
                                       " fpi_APPRV_CDE_LGTH , " +
                                       " fpi_ICHG_RESP , " +
                                       " fpi_PSEUDO_TERM_ID , " +
                                       " fpi_RFRL_PHONE , " +
                                       " fpi_DFT_CAPTURE_FLG , " +
                                       " fpi_SETL_FLAG , " +
                                       " fpi_RVRL_CDE , " +
                                       " fpi_REA_FOR_CHRGBCK , " +
                                       " fpi_NUM_OF_CHRGBCK , " +
                                       " fpi_PT_SRV_COND_CDE , " +
                                       " fpi_PT_SRV_ENTRY_MDE , " +
                                       " fpi_AUTH_IND2 , " +
                                       " fpi_ORIG_CRNCY_CDE , " +
                                       " fpi_AUTH_CRNCY_CDE , " +
                                       " fpi_AUTH_CONV_RATE , " +
                                       " fpi_SETL_CRNCY_CDE , " +
                                       " fpi_SETL_CONV_RATE , " +
                                       " fpi_CONV_DAT_TIM , " +
                                       " fpi_IMP_IND , " +
                                       " fpi_AVAIL_BAL , " +
                                       " fpi_LEDG_BAL , " +
                                       " fpi_AMT_ON_HOLD , " +
                                       " fpi_TTL_FLOAT , " +
                                       " fpi_CUR_FLOAT , " +
                                       " fpi_ADJ_SETL_IMPACT_FLG , " +
                                       " fpi_PBF1 , " +
                                       " fpi_PBF2 , " +
                                       " fpi_PBF3 , " +
                                       " fpi_PBF4 , " +
                                       " fpi_FRWD_INST_ID_NUM , " +
                                       " fpi_CRD_ACCPT_ID_NUM , " +
                                       " fpi_CRD_ISS_ID_NUM , " +
                                       " fpi_ORIG_MSG_TYP , " +
                                       " fpi_ORIG_TRAN_TIM , " +
                                       " fpi_ORIG_TRAN_DAT , " +
                                       " fpi_ORIG_SEQ_NUM , " +
                                       " fpi_ORIG_B24_POST_DAT , " +
                                       " fpi_EXCP_RSN_CDE , " +
                                       " fpi_OVRRDE_FLG , " +
                                       " fpi_ADDR , " +
                                       " fpi_ZIP_CDE , " +
                                       " fpi_ADDR_VRFY_STAT , " +
                                       " fpi_PIN_IND , " +
                                       " fpi_PIN_TRIES , " +
                                       " fpi_PRE_AUTH_TS_DAT , " +
                                       " fpi_PRE_AUTH_TS_TIM , " +
                                       " fpi_PRE_AUTH_HLDS_LVL , " +
                                       " fpi_USER_FLD5 , " +
                                       " fpi_LEN , " +
                                       " fpi_INFO )" +
                                       " VALUES ";
                                       ( " +
                                       " ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?, " +
                                       " ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?, " +
                                       " ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?, " +
                                       " ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?, " +
                   pConn = mConnPool.getConnection();
                   Statement Stmt=pConn.createStatemen                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    

    Dear Sir,
    The problem with the prepared statement is that it gets prepared once the compilation is over and the program is running in memory, what effectively this means is that at the compilation time the process of putting togather the statement has been discounted and while compiling , only the javac or compiler is in memory while at runtime the user input is required so streams are in memory and also the JVM and obviously your code.
    Anyways java is a little slower than other languages and processes your code as and when user interacts with code so it is not the fastest it you want to make it perform calculations or accept user input or as in ur case prepareStatement.
    your normal SQL statement is taken care of at compile time and is therefore faster.
    regards,
    [email protected]

  • Printing from Acrobat Reader Linux is many time slower than from Windows Reader

    The users are complaining to me that same file is printing one page every couple minute under Linux, while under Windows pages from the same file print one after another very quickly.
    Hardware is not affecting that as they are using dual-boot Fedora 14 and XP on the same machines, printing to the same HP LaserJet printer over JetDirect.

    Also, I am noticing that scrolling page thumbnails and flipping pages is many times slower under Linux than under Windows on the same machine, but CPU utilization is very low.
    Can one of the Linux Acrobat developers look into performance issues please?

  • Same table, Oracle 5 times slower than MySQL

    Hi
    I have several sites with the same aplication using a database as a log device and to later retrieve reports from. Some tables are for setup and one are for all the log data. The log data table has the following columns: LINEID, TAG, DATE_, HOUR_, VALUE, TIME_ and CHANGED. Typical data is: 122345, PA01_FT1_ACC, 2008-08-01, 10, 985642, "", 0.
    Index (TAG,DATE_)
    When calling a report the software querys for typical 3-5 select querys like the following, only different TAG: SELECT * FROM table WHERE TAG='PA01_FT1_ACC' AND DATE_ BETWEEN '2008-08-01' AND '2008-08-31' AND HOUR_=24
    Since our customers have different preferences some sites have Oracle and some have MySQL. And I have registered that the sites running Oracle uses 24-30 sec on the report, MySQL uses 3-6 sec on a similar report with the same tables and querying software.
    How is this?
    Is there anything I can do to make Oracle work faster?
    Should HOUR_ also be in the index?
    Since I guess this slowness is not something consistant in Oracle, there must be something to do.
    Thanks for any help.

    Histograms on varchar2 columns are based on the
    first 6 bytes of the column. If the database is using
    a character set that uses 1 byte per character, every
    entry in the DATE_ column since the beginning of the
    year looks like '2008-0' to the optimizer when
    determining cardinality to produce the "best"
    execution plan. For character sets that require
    multiple bytes per character, the situation is worse
    - every entry in the column representing this century
    appears to be the same value to the optimizer when
    determining cardinality
    That's a very good point and I didnt know about it
    before, about first 6 bytes being used. Can you point
    me in the docs where it is listed if its there or
    some other document/s which has this detail?Aman,
    I am having a bit of trouble finding the information in the documentation about the number of bytes used by a histogram on a VARCHAR2 column.
    References:
    http://www.freelists.org/archives/oracle-l/08-2006/msg00199.html
    "Cost-Based Oracle Fundamentals" page 117 shows a demonstration, and describes the use of ENDPOINT_ACTUAL_VALUE starting on Oracle 9i.
    "Cost-Based Oracle Fundamentals" page 118-120 describes selectivity problems when histograms are not used and a date is placed into a VARCHAR2 column.
    "Troubleshooting Oracle Performance", likely around page 130-140 also indicates that histograms only use the first 6 bytes.
    See section "Followup November 12, 2005 - 4pm US/Eastern"
    http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:707586567563
    An interesting test setup that almost shows what I intended - but Oracle 10.2.0.2 was a little smarter than I expected, even though it selected to use an index to retrieve more than 50% of a table... Take a look at the TO_CHAR representation of the ENDPOINT_VALUE from DBA_TAB_HISTOGRAMS to understand what I was trying to decribe in my original post in this thread.
    CREATE TABLE T1 (DATE_ VARCHAR2(10));
    INSERT INTO T1
    SELECT
      TO_CHAR(TO_DATE('2008-01-01','YYYY-MM-DD')+ROWNUM-1,'YYYY-MM-DD')
    FROM
      DUAL
    CONNECT BY
      LEVEL<=250;
    250 rows created.
    COMMIT;
    CREATE INDEX IND_T1 ON T1(DATE_);
    SELECT
      MIN(DATE_),
      MAX(DATE_)
    FROM
      T1;
    MIN(DATE_) MAX(DATE_)
    2008-01-01 2008-09-06
    SELECT
      COLUMN_NAME,
      NUM_DISTINCT,
      NUM_BUCKETS,
      HISTOGRAM
    FROM
      DBA_TAB_COL_STATISTICS
    WHERE
      OWNER=USER
      AND TABLE_NAME='T1';
    no rows selected
    SELECT
      SUBSTR(COLUMN_NAME,1,10) COLUMN_NAME,
      ENDPOINT_NUMBER,
      ENDPOINT_VALUE,
      SUBSTR(ENDPOINT_ACTUAL_VALUE,1,10) ENDPOINT_ACTUAL_VALUE
    FROM
      DBA_TAB_HISTOGRAMS
    WHERE
      OWNER=USER
      AND TABLE_NAME='T1';
    no rows selected
    EXEC DBMS_STATS.GATHER_TABLE_STATS(OWNNAME=>USER,TABNAME=>'T1',METHOD_OPT=>'FOR COLUMNS SIZE 254 DATE_',CASCADE=>TRUE);
    PL/SQL procedure successfully completed.
    SELECT
      COLUMN_NAME,
      NUM_DISTINCT,
      NUM_BUCKETS,
      HISTOGRAM
    FROM
      DBA_TAB_COL_STATISTICS
    WHERE
      OWNER=USER
      AND TABLE_NAME='T1';
    COLUMN_NAME                    NUM_DISTINCT NUM_BUCKETS HISTOGRAM
    DATE_                                   250         250 HEIGHT BALANCED
    SELECT
      SUBSTR(COLUMN_NAME,1,10) COLUMN_NAME,
      ENDPOINT_NUMBER,
      ENDPOINT_VALUE,
      SUBSTR(ENDPOINT_ACTUAL_VALUE,1,10) ENDPOINT_ACTUAL_VALUE
    FROM
      DBA_TAB_HISTOGRAMS
    WHERE
      OWNER=USER
      AND TABLE_NAME='T1'
    ORDER BY
      ENDPOINT_NUMBER;
    COLUMN_NAM ENDPOINT_NUMBER ENDPOINT_VALUE ENDPOINT_A
    DATE_                    1     2.6059E+35 2008-01-01
    DATE_                    2     2.6059E+35 2008-01-02
    DATE_                    3     2.6059E+35 2008-01-03
    DATE_                    4     2.6059E+35 2008-01-04
    DATE_                    5     2.6059E+35 2008-01-05
    DATE_                    6     2.6059E+35 2008-01-06
    DATE_                    7     2.6059E+35 2008-01-07
    DATE_                    8     2.6059E+35 2008-01-08
    DATE_                    9     2.6059E+35 2008-01-09
    DATE_                   10     2.6059E+35 2008-01-10
    DATE_                  243     2.6059E+35 2008-08-30
    DATE_                  244     2.6059E+35 2008-08-31
    DATE_                  245     2.6059E+35 2008-09-01
    DATE_                  246     2.6059E+35 2008-09-02
    DATE_                  247     2.6059E+35 2008-09-03
    DATE_                  248     2.6059E+35 2008-09-04
    DATE_                  249     2.6059E+35 2008-09-05
    DATE_                  250     2.6059E+35 2008-09-06
    ALTER SESSION SET EVENTS '10053 TRACE NAME CONTEXT FOREVER, LEVEL 1';
    SELECT
      DATE_
    FROM
      T1
    WHERE
      DATE_<='2008-01-15';
    15 rows selected.
    From the 10053 trace:
    BASE STATISTICAL INFORMATION
    Table Stats::
      Table: T1  Alias: T1
        #Rows: 250  #Blks:  5  AvgRowLen:  11.00
    Index Stats::
      Index: IND_T1  Col#: 1
        LVLS: 0  #LB: 1  #DK: 250  LB/K: 1.00  DB/K: 1.00  CLUF: 1.00
    SINGLE TABLE ACCESS PATH
      Column (#1): DATE_(VARCHAR2)
        AvgLen: 11.00 NDV: 250 Nulls: 0 Density: 0.002
        Histogram: HtBal  #Bkts: 250  UncompBkts: 250  EndPtVals: 250
      Table: T1  Alias: T1    
        Card: Original: 250  Rounded: 15  Computed: 15.00  Non Adjusted: 15.00
      Access Path: TableScan
        Cost:  3.01  Resp: 3.01  Degree: 0
          Cost_io: 3.00  Cost_cpu: 85607
          Resp_io: 3.00  Resp_cpu: 85607
      Access Path: index (index (FFS))
        Index: IND_T1
        resc_io: 2.00  resc_cpu: 49621
        ix_sel: 0.0000e+000  ix_sel_with_filters: 1
      Access Path: index (FFS)
        Cost:  2.00  Resp: 2.00  Degree: 1
          Cost_io: 2.00  Cost_cpu: 49621
          Resp_io: 2.00  Resp_cpu: 49621
      Access Path: index (IndexOnly)
        Index: IND_T1
        resc_io: 1.00  resc_cpu: 10121
        ix_sel: 0.06  ix_sel_with_filters: 0.06
        Cost: 1.00  Resp: 1.00  Degree: 1
      Best:: AccessPath: IndexRange  Index: IND_T1
             Cost: 1.00  Degree: 1  Resp: 1.00  Card: 15.00  Bytes: 0
    ============
    Plan Table
    ============
    | Id  | Operation         | Name    | Rows  | Bytes | Cost  | Time      |
    | 0   | SELECT STATEMENT  |         |       |       |     1 |           |
    | 1   |  INDEX RANGE SCAN | IND_T1  |    15 |   165 |     1 |  00:00:01 |
    Predicate Information:
    1 - access("DATE_"<='2008-01-15')
    INSERT INTO T1
    SELECT
      TO_CHAR(TO_DATE('2008-09-07','YYYY-MM-DD')+ROWNUM-1,'YYYY-MM-DD')
    FROM
      DUAL
    CONNECT BY
      LEVEL<=250;
    COMMIT;
    EXEC DBMS_STATS.GATHER_TABLE_STATS(OWNNAME=>USER,TABNAME=>'T1',METHOD_OPT=>'FOR COLUMNS SIZE 254 DATE_',CASCADE=>TRUE);
    PL/SQL procedure successfully completed.
    SELECT
      COLUMN_NAME,
      NUM_DISTINCT,
      NUM_BUCKETS,
      HISTOGRAM
    FROM
      DBA_TAB_COL_STATISTICS
    WHERE
      OWNER=USER
      AND TABLE_NAME='T1';
    COLUMN_NAME                    NUM_DISTINCT NUM_BUCKETS HISTOGRAM
    DATE_                                   500         254 HEIGHT BALANCED
    SELECT
      SUBSTR(COLUMN_NAME,1,10) COLUMN_NAME,
      ENDPOINT_NUMBER,
      TO_CHAR(ENDPOINT_VALUE) ENDPOINT_VALUE,
      SUBSTR(ENDPOINT_ACTUAL_VALUE,1,10) ENDPOINT_ACTUAL_VALUE
    FROM
      DBA_TAB_HISTOGRAMS
    WHERE
      OWNER=USER
      AND TABLE_NAME='T1'
    ORDER BY
      ENDPOINT_NUMBER;
    COLUMN_NAM ENDPOINT_NUMBER ENDPOINT_VALUE                           ENDPOINT_A
    DATE_                    0 260592218925307000000000000000000000     2008-01-01
    DATE_                    1 260592218925307000000000000000000000     2008-01-02
    DATE_                    2 260592218925307000000000000000000000     2008-01-04
    DATE_                    3 260592218925307000000000000000000000     2008-01-06
    DATE_                    4 260592218925307000000000000000000000     2008-01-08
    DATE_                    5 260592218925307000000000000000000000     2008-01-10
    DATE_                    6 260592218925307000000000000000000000     2008-01-12
    DATE_                    7 260592218925307000000000000000000000     2008-01-14
    DATE_                    8 260592218925307000000000000000000000     2008-01-16
    DATE_                    9 260592218925307000000000000000000000     2008-01-18
    DATE_                   10 260592218925307000000000000000000000     2008-01-20
    DATE_                  242 260592219234792000000000000000000000     2009-04-26
    DATE_                  243 260592219234792000000000000000000000     2009-04-28
    DATE_                  244 260592219234792000000000000000000000     2009-04-29
    DATE_                  245 260592219234792000000000000000000000     2009-05-01
    DATE_                  246 260592219234792000000000000000000000     2009-05-02
    DATE_                  247 260592219234792000000000000000000000     2009-05-04
    DATE_                  248 260592219234792000000000000000000000     2009-05-05
    DATE_                  249 260592219234792000000000000000000000     2009-05-07
    DATE_                  250 260592219234792000000000000000000000     2009-05-08
    DATE_                  251 260592219234792000000000000000000000     2009-05-10
    DATE_                  252 260592219234792000000000000000000000     2009-05-11
    DATE_                  253 260592219234792000000000000000000000     2009-05-13
    DATE_                  254 260592219234792000000000000000000000     2009-05-14
    SELECT
      DATE_
    FROM
      T1
    WHERE
      DATE_ BETWEEN '2008-01-15' AND '2008-09-15';
    245 rows selected.
    From the 10053 trace:
    BASE STATISTICAL INFORMATION
    Table Stats::
      Table: T1  Alias: T1
        #Rows: 500  #Blks:  5  AvgRowLen:  11.00
    Index Stats::
      Index: IND_T1  Col#: 1
        LVLS: 1  #LB: 2  #DK: 500  LB/K: 1.00  DB/K: 1.00  CLUF: 2.00
    SINGLE TABLE ACCESS PATH
      Column (#1): DATE_(VARCHAR2)
        AvgLen: 11.00 NDV: 500 Nulls: 0 Density: 0.002
        Histogram: HtBal  #Bkts: 254  UncompBkts: 254  EndPtVals: 255
      Table: T1  Alias: T1    
        Card: Original: 500  Rounded: 240  Computed: 240.16  Non Adjusted: 240.16
      Access Path: TableScan
        Cost:  3.01  Resp: 3.01  Degree: 0
          Cost_io: 3.00  Cost_cpu: 148353
          Resp_io: 3.00  Resp_cpu: 148353
      Access Path: index (index (FFS))
        Index: IND_T1
        resc_io: 2.00  resc_cpu: 111989
        ix_sel: 0.0000e+000  ix_sel_with_filters: 1
      Access Path: index (FFS)
        Cost:  2.01  Resp: 2.01  Degree: 1
          Cost_io: 2.00  Cost_cpu: 111989
          Resp_io: 2.00  Resp_cpu: 111989
      Access Path: index (IndexOnly)
        Index: IND_T1
        resc_io: 2.00  resc_cpu: 62443
        ix_sel: 0.48031  ix_sel_with_filters: 0.48031
        Cost: 2.00  Resp: 2.00  Degree: 1
      Best:: AccessPath: IndexRange  Index: IND_T1
             Cost: 2.00  Degree: 1  Resp: 2.00  Card: 240.16  Bytes: 0
    ============
    Plan Table
    ============
    | Id  | Operation         | Name    | Rows  | Bytes | Cost  | Time      |
    | 0   | SELECT STATEMENT  |         |       |       |     2 |           |
    | 1   |  INDEX RANGE SCAN | IND_T1  |   240 |  2640 |     2 |  00:00:01 |
    Predicate Information:
    1 - access("DATE_">='2008-01-15' AND "DATE_"<='2008-09-15')I am sure that there are much better examples than the above, as the above generates a very small data set, and is still an incomplete test setup.
    Charles Hooper
    IT Manager/Oracle DBA
    K&M Machine-Fabricating, Inc.

  • Compiling jsp pages in wl 10.0 2 times slower than wl 9.1

    Hi:
    I have enterprise application. In weblogic 9 it took 4-5min to compile all the jsp pages, in weblogic 10 it takes 10-11min!!
    Is there anything I can do to speed it up?

    Hi, thanks for your answers.
    Yes, I actually build the ear file and then I call weblogic.appc on it. And again, on wl 9 it used to take 4-5min, now it is taking 10-11min. Most of the time of the build process is taken by the page compilation.
    The other thing I noticed is that if I change a page the time it takes WL to recompile the page is way longer than before. I have to wait for a good 14-15seconds until the weblogic returns the new page. The weblogic java process goes up to almost 100%. Before, in WL 9 I had to wait just a few seconds. And ok, my computer is a dual core at 2.33GHz. Don't tell me I need to upgrade :-).
    I realize that the jsp compilation must have gotten more complicated because now jsf & jsp are unified but still....
    My app is a jsf application and I also use tag files.
    About precompiling the pages... I build the application on windows then I deploy it on linux. In WL 9, whenever I deployed the app, I had to precompile the pages otherwise the users experienced slower responses the first time. For whatever reason WL 9 didn't think the pages were already precompiled (they were part of the ear file). In WL 10 that seemed to have been fixed.

  • Ipa-ad-hoc 5 times slower than ipa-test

    Hello,
    I have successfully packaged my quite big app (3.5 MB swf and 24MB whole ipa file) in ipa-test package and it works quite good
    But after compilation in ipa-ad-hoc package it is much slower - about 5 times, when loading and during work, especially when i.e. clicking an action for the first time (second time it is faster but not as fast as in ipa-test)
    Is it possible? I've thought that these types of packages are the same - that this is compiled native code for iOS, and difference is only in certificates
    I use 3.2 AIR, 4.6.0 Flex, Helo theme in compability mode for Flex 3 (unfortunately I cannot now switch to Spark components)
    On android it works very ok (better even than in ipa-test mode), but I also would like have this app for iOS
    Regards
    Adam

    Try - maybe they can help, I couldnt find anybody who had this problem.
    Maybe you could make new project and check if it works fast enough in ad-hoc and then copy some pieces of your project to this new project... I sometimes use to find an error cutting project in half and looking for error, stupid but works Good luck

  • Oh my God Prepared Statements are about 80 times slower than multiple inser

    I am highly suprised that in my programme a normal statement os a lot faster than a Prepared Statement. I am posting below both the Programmes, in one I am using Prepared Statements and in another I am using normal Statements. My OS is Win NT My Database is SQL Server 7. THe progamme extracts data from a file and inserts records in the database. In the test case I had A file of about 1440 records ie. 1440 inserts are made to the database, The database table is very large ie. It has around 126 Columns.
    So for inserting 1440 record froma file the Prepared Statements take around 7 Minutes . And for reading the same file and inserting the same no of records in the same database normal Statements Take only about 7 seconds. Now the JAcva docs clearly Specify that when we need to use the same stmt many times it is better to use Prepared Satements < the results that I am Getting is clear and complete violation of what java docs say.
    Below is the code with Prepared Statements
    package mps.mpsPTLF;
    import java.io.*;
    import java.sql.*;
    import java.util.*;
    import java.util.Calendar;
    import java.util.Date;
    import gen.genCommon.genConnectionPool.*;
    import gen.genCommon.*;
    public class PTLFProcessor
         private static clsLogFile moLogFile = new clsLogFile("");
         private gen.genCommon.genConnectionPool.SharedConnectionPool mConnPool = SharedConnectionPool.getInstance(2);
         FileReader fPTLF = null;
         BufferedReader brPTLF = null;
    //**************** Begin Constructor declaration ************************
    To intialize the class variables for new Fee
         public PTLFProcessor(String pathPTLF) throws GenException
              try
                   fPTLF = new FileReader(pathPTLF);
                   brPTLF = new BufferedReader(fPTLF);
              catch (Exception e)
                   throw new GenException("Error Accessing file : " + pathPTLF + " - " + e.toString(),e );     
    //**************** End  Constructor declaration ************************
         public void PTLFGetData() throws GenException
              char pcData[];
              int HEADERSIZE = 6;
              boolean pbEndOfFile = false;
              boolean pbisFirstBlock = true;
              int piBlocksize = 0;
              int piOffset = 0;
              int piRecordsize = 0;
              String psRecordContent = "";
              Connection pConn = null;
              try
                   String psInsSql=" INSERT INTO FILE_PTLF_IN ( " +
                                       " fpi_DAT_TIM , " +
                                       " fpi_REC_TYP , " +
                                       " fpi_CRD_LN , " +
                                       " fpi_CRD_FIID , " +
                                       " fpi_CRD_NUM , " +
                                       " fpi_MBR_NUM , " +
                                       " fpi_MER_LN , " +
                                       " fpi_MER_FIID , " +
                                       " fpi_MER_GRP , " +
                                       " fpi_MER_REGN , " +
                                       " fpi_MER_ID , " +
                                       " fpi_TERM_ID , " +
                                       " fpi_SHIFT_NUM , " +
                                       " fpi_BATCH_NUM , " +
                                       " fpi_TERM_LN , " +
                                       " fpi_TERM_FIID , " +
                                       " fpi_TERM_ID_1 , " +
                                       " fpi_TRAN , " +
                                       " fpi_TERM_ID_2 , " +
                                       " fpi_REC_FRMT , " +
                                       " fpi_MER_ID_1 , " +
                                       " fpi_CLERK_ID , " +
                                       " fpi_DATA_FLAG , " +
                                       " fpi_TYP , " +
                                       " fpi_RTE_STAT , " +
                                       " fpi_ORIGINATOR , " +
                                       " fpi_RESPONDER , " +
                                       " fpi_ISS_CDE , " +
                                       " fpi_ENTRY_TIM , " +
                                       " fpi_EXIT_TIM , " +
                                       " fpi_RE_ENTRY_TIM , " +
                                       " fpi_TRAN_DAT , " +
                                       " fpi_TRAN_TIM , " +
                                       " fpi_POST_DAT , " +
                                       " fpi_ACQ_ICHG_SETL_DAT , " +
                                       " fpi_ISS_ICHG_SETL_DAT , " +
                                       " fpi_SEQ_NUM , " +
                                       " fpi_TERM_NAME_LOC , " +
                                       " fpi_TERM_OWNER_NAME , " +
                                       " fpi_TERM_CITY , " +
                                       " fpi_TERM_ST , " +
                                       " fpi_TERM_CNTRY_CDE , " +
                                       " fpi_BRCH_ID , " +
                                       " fpi_USER_FLD2 , " +
                                       " fpi_TERM_TIM_OFST , " +
                                       " fpi_ACQ_INST_ID_NUM , " +
                                       " fpi_RCV_INST_ID_NUM , " +
                                       " fpi_TERM_TYP , " +
                                       " fpi_CLERK_ID_1 , " +
                                       " fpi_GRP , " +
                                       " fpi_USER_ID , " +
                                       " fpi_RETL_SIC_CDE , " +
                                       " fpi_ORIG , " +
                                       " fpi_DEST , " +
                                       " fpi_TC , " +
                                       " fpi_T , " +
                                       " fpi_AA , " +
                                       " fpi_C , " +
                                       " fpi_CRD_TYP , " +
                                       " fpi_ACCT , " +
                                       " fpi_RESP_CDE , " +
                                       " fpi_AMT_1 , " +
                                       " fpi_AMT_2 , " +
                                       " fpi_EXP_DAT , " +
                                       " fpi_TRACK2 , " +
                                       " fpi_PIN_OFST , " +
                                       " fpi_PRE_AUTH_SEQ_NUM , " +
                                       " fpi_INVOICE_NUM , " +
                                       " fpi_ORIG_INVOICE_NUM , " +
                                       " fpi_AUTHORIZER , " +
                                       " fpi_AUTH_IND , " +
                                       " fpi_SHIFT_NUM_1 , " +
                                       " fpi_BATCH_SEQ_NUM , " +
                                       " fpi_APPRV_CDE , " +
                                       " fpi_APPRV_CDE_LGTH , " +
                                       " fpi_ICHG_RESP , " +
                                       " fpi_PSEUDO_TERM_ID , " +
                                       " fpi_RFRL_PHONE , " +
                                       " fpi_DFT_CAPTURE_FLG , " +
                                       " fpi_SETL_FLAG , " +
                                       " fpi_RVRL_CDE , " +
                                       " fpi_REA_FOR_CHRGBCK , " +
                                       " fpi_NUM_OF_CHRGBCK , " +
                                       " fpi_PT_SRV_COND_CDE , " +
                                       " fpi_PT_SRV_ENTRY_MDE , " +
                                       " fpi_AUTH_IND2 , " +
                                       " fpi_ORIG_CRNCY_CDE , " +
                                       " fpi_AUTH_CRNCY_CDE , " +
                                       " fpi_AUTH_CONV_RATE , " +
                                       " fpi_SETL_CRNCY_CDE , " +
                                       " fpi_SETL_CONV_RATE , " +
                                       " fpi_CONV_DAT_TIM , " +
                                       " fpi_IMP_IND , " +
                                       " fpi_AVAIL_BAL , " +
                                       " fpi_LEDG_BAL , " +
                                       " fpi_AMT_ON_HOLD , " +
                                       " fpi_TTL_FLOAT , " +
                                       " fpi_CUR_FLOAT , " +
                                       " fpi_ADJ_SETL_IMPACT_FLG , " +
                                       " fpi_PBF1 , " +
                                       " fpi_PBF2 , " +
                                       " fpi_PBF3 , " +
                                       " fpi_PBF4 , " +
                                       " fpi_FRWD_INST_ID_NUM , " +
                                       " fpi_CRD_ACCPT_ID_NUM , " +
                                       " fpi_CRD_ISS_ID_NUM , " +
                                       " fpi_ORIG_MSG_TYP , " +
                                       " fpi_ORIG_TRAN_TIM , " +
                                       " fpi_ORIG_TRAN_DAT , " +
                                       " fpi_ORIG_SEQ_NUM , " +
                                       " fpi_ORIG_B24_POST_DAT , " +
                                       " fpi_EXCP_RSN_CDE , " +
                                       " fpi_OVRRDE_FLG , " +
                                       " fpi_ADDR , " +
                                       " fpi_ZIP_CDE , " +
                                       " fpi_ADDR_VRFY_STAT , " +
                                       " fpi_PIN_IND , " +
                                       " fpi_PIN_TRIES , " +
                                       " fpi_PRE_AUTH_TS_DAT , " +
                                       " fpi_PRE_AUTH_TS_TIM , " +
                                       " fpi_PRE_AUTH_HLDS_LVL , " +
                                       " fpi_USER_FLD5 , " +
                                       " fpi_LEN , " +
                                       " fpi_INFO )" +
                                       " VALUES ( " +
                                       " ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?, " +
                                       " ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?, " +
                                       " ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?, " +
                                       " ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?, " +
                   pConn = mConnPool.getConnection();
                   PreparedStatement pStmt = pConn.prepareStatement(psInsSql);
                   while (!pbEndOfFile)
                        pcData = new char [HEADERSIZE];                    // Reading each Block Header
                        brPTLF.read (pcData, 0, HEADERSIZE);
                        piBlocksize = Integer.parseInt (new String (pcData));
                        piOffset = HEADERSIZE;
                        while (piOffset < piBlocksize)
                        {                      // Read the records upto end of block
                             pcData = new char [HEADERSIZE];               // Reading each Record Header
                             brPTLF.read (pcData, 0, HEADERSIZE);
                             piRecordsize = Integer.parseInt (new String (pcData));
                             piOffset += HEADERSIZE;
                             pcData = new char [piRecordsize - HEADERSIZE];     // Reading each Record Content
                             brPTLF.read (pcData, 0, piRecordsize - HEADERSIZE);
                             psRecordContent = new String (pcData);
                             piOffset += piRecordsize - HEADERSIZE;
                             moLogFile.writeToLog(psRecordContent);
                             if (pbisFirstBlock)
                                  if (!psRecordContent.startsWith ("TH"))
                                       throw new GenException ("Invalid File Format, missing 'TH'");
                                  pcData = new char [HEADERSIZE];          // Reading next Record Header
                                  brPTLF.read (pcData, 0, HEADERSIZE);
                                  piRecordsize = Integer.parseInt (new String (pcData));
                                  piOffset += HEADERSIZE;
                                  pcData = new char [piRecordsize - HEADERSIZE];// Reading next Record Content (Must be FH)
                                  brPTLF.read (pcData, 0, piRecordsize - HEADERSIZE);
                                  psRecordContent = new String (pcData);
                                  piOffset += piRecordsize - HEADERSIZE;
                                  if (!psRecordContent.startsWith ("FH"))
                                       throw new GenException ("File Header Not Found");
                                  pbisFirstBlock = false;
                             else if (psRecordContent.startsWith ("DR"))
                                  psRecordContent = psRecordContent.substring(2);
                        /*          if (psRecordContent.length() != 1820 ) // && psRecordContent.length() != 846)
                                       // insert in error table
                                       continue;
                                  if ( psRecordContent.substring(453-1, 455).equals ("000") || psRecordContent.substring(453-1, 455).equals ("001") )
                                       pStmt.setString (1, psRecordContent.substring(1-1,19));
                                       pStmt.setString (2, psRecordContent.substring(20-1,21));
                                       pStmt.setString (3, psRecordContent.substring(22-1,25));
                                       pStmt.setString (4, psRecordContent.substring(26-1,29));
                                       pStmt.setString (5, psRecordContent.substring(30-1,48));
                                       pStmt.setString (6, psRecordContent.substring(49-1,51));
                                       pStmt.setString (7, psRecordContent.substring(52-1,55));
                                       pStmt.setString (8, psRecordContent.substring(56-1,59));
                                       pStmt.setString (9, psRecordContent.substring(60-1,63));
                                       pStmt.setString (10, psRecordContent.substring(64-1,67));
                                       pStmt.setString (11, psRecordContent.substring(68-1,86));
                                       pStmt.setString (12, psRecordContent.substring(87-1,102));
                                       pStmt.setString (13, psRecordContent.substring(103-1,105));
                                       pStmt.setString (14, psRecordContent.substring(106-1,108));
                                       pStmt.setString (15, psRecordContent.substring(109-1,112));
                                       pStmt.setString (16, psRecordContent.substring(113-1,116));
                                       pStmt.setString (17, psRecordContent.substring(117-1,132));
                                       pStmt.setString (18, psRecordContent.substring(133-1,140));
                                       pStmt.setString (19, psRecordContent.substring(141-1,156));
                                       pStmt.setString (20, psRecordContent.substring(157-1,157));
                                       pStmt.setString (21, psRecordContent.substring(158-1,176));
                                       pStmt.setString (22, psRecordContent.substring(177-1,182));
                                       pStmt.setString (23, psRecordContent.substring(183-1,183));
                                       pStmt.setString (24, psRecordContent.substring(184-1,187));
                                       pStmt.setString (25, psRecordContent.substring(188-1,189));
                                       pStmt.setString (26, psRecordContent.substring(190-1,190));
                                       pStmt.setString (27, psRecordContent.substring(191-1,191));
                                       pStmt.setString (28, psRecordContent.substring(192-1,193));
                                       pStmt.setString (29, psRecordContent.substring(194-1,212));
                                       pStmt.setString (30, psRecordContent.substring(213-1,231));
                                       pStmt.setString (31, psRecordContent.substring(232-1,250));
                                       pStmt.setString (32, psRecordContent.substring(251-1,256));
                                       pStmt.setString (33, psRecordContent.substring(257-1,264));
                                       pStmt.setString (34, psRecordContent.substring(265-1,270));
                                       pStmt.setString (35, psRecordContent.substring(271-1,276));
                                       pStmt.setString (36, psRecordContent.substring(277-1,282));
                                       pStmt.setString (37, psRecordContent.substring(283-1,294));
                                       pStmt.setString (38, psRecordContent.substring(295-1,319));
                                       pStmt.setString (39, psRecordContent.substring(320-1,341));
                                       pStmt.setString (40, psRecordContent.substring(342-1,354));
                                       pStmt.setString (41, psRecordContent.substring(355-1,357));
                                       pStmt.setString (42, psRecordContent.substring(358-1,359));
                                       pStmt.setString (43, psRecordContent.substring(360-1,363));
                                       pStmt.setString (44, psRecordContent.substring(364-1,366));
                                       pStmt.setString (45, psRecordContent.substring(367-1,371));
                                       pStmt.setString (46, psRecordContent.substring(372-1,382));
                                       pStmt.setString (47, psRecordContent.substring(383-1,393));
                                       pStmt.setString (48, psRecordContent.substring(394-1,395));
                                       pStmt.setString (49, psRecordContent.substring(396-1,401));
                                       pStmt.setString (50, psRecordContent.substring(402-1,405));
                                       pStmt.setString (51, psRecordContent.substring(406-1,413));
                                       pStmt.setString (52, psRecordContent.substring(414-1,417));
                                       pStmt.setString (53, psRecordContent.substring(418-1,421));
                                       pStmt.setString (54, psRecordContent.substring(422-1,425));
                                       pStmt.setString (55, psRecordContent.substring(426-1,427));
                                       pStmt.setString (56, psRecordContent.substring(428-1,428));
                                       pStmt.setString (57, psRecordContent.substring(429-1,430));
                                       pStmt.setString (58, psRecordContent.substring(431-1,431));
                                       pStmt.setString (59, psRecordContent.substring(432-1,433));
                                       pStmt.setString (60, psRecordContent.substring(434-1,452));
                                       pStmt.setString (61, psRecordContent.substring(453-1,455));
                                       pStmt.setString (62, psRecordContent.substring(456-1,474));
                                       pStmt.setString (63, psRecordContent.substring(475-1,493));
                                       pStmt.setString (64, psRecordContent.substring(494-1,497));
                                       pStmt.setString (65, psRecordContent.substring(498-1,537));
                                       pStmt.setString (66, psRecordContent.substring(538-1,553));
                                       pStmt.setString (67, psRecordContent.substring(554-1,565));
                                       pStmt.setString (68, psRecordContent.substring(566-1,575));
                                       pStmt.setString (69, psRecordContent.substring(576-1,585));
                                       pStmt.setString (70, psRecordContent.substring(586-1,601));
                                       pStmt.setString (71, psRecordContent.substring(602-1,602));
                                       pStmt.setString (72, psRecordContent.substring(603-1,605));
                                       pStmt.setString (73, psRecordContent.substring(606-1,608));
                                       pStmt.setString (74, psRecordContent.substring(609-1,616));
                                       pStmt.setString (75, psRecordContent.substring(617-1,617));
                                       pStmt.setString (76, psRecordContent.substring(618-1,625));
                                       pStmt.setString (77, psRecordContent.substring(626-1,629));
                                       pStmt.setString (78, psRecordContent.substring(630-1,649));
                                       pStmt.setString (79, psRecordContent.substring(650-1,650));
                                       pStmt.setString (80, psRecordContent.substring(651-1,651));
                                       pStmt.setString (81, psRecordContent.substring(652-1,653));
                                       pStmt.setString (82, psRecordContent.substring(654-1,655));
                                       pStmt.setString (83, psRecordContent.substring(656-1,656));
                                       pStmt.setString (84, psRecordContent.substring(657-1,658));
                                       pStmt.setString (85, psRecordContent.substring(659-1,661));
                                       pStmt.setString (86, psRecordContent.substring(662-1,662));
                                       pStmt.setString (87, psRecordContent.substring(663-1,665));
                                       pStmt.setString (88, psRecordContent.substring(666-1,668));
                                       pStmt.setString (89, psRecordContent.substring(669-1,676));
                                       pStmt.setString (90, psRecordContent.substring(677-1,679));
                                       pStmt.setString (91, psRecordContent.substring(680-1,687));
                                       pStmt.setString (92, psRecordContent.substring(688-1,706));
                                       pStmt.setString (93, psRecordContent.substring(707-1,707));
                                       pStmt.setString (94, psRecordContent.substring(708-1,708));
                                       pStmt.setString (95, psRecordContent.substring(709-1,709));
                                       pStmt.setString (96, psRecordContent.substring(710-1,710));
                                       pStmt.setString (97, psRecordContent.substring(711-1,711));
                                       pStmt.setString (98, psRecordContent.substring(712-1,712));
                                       pStmt.setString (99, psRecordContent.substring(713-1,713));
                                       pStmt.setString (100, psRecordContent.substring(714-1,714));
                                       pStmt.setString (101, psRecordContent.substring(715-1,715));
                                       pStmt.setString (102, psRecordContent.substring(716-1,716));
                                       pStmt.setString (103, psRecordContent.substring(717-1,717));
                                       pStmt.setString (104, psRecordContent.substring(718-1,728));
                                       pStmt.setString (105, psRecordContent.substring(729-1,739));
                                       pStmt.setString (106, psRecordContent.substring(740-1,750));
                                       pStmt.setString (107, psRecordContent.substring(751-1,754));
                                       pStmt.setString (108, psRecordContent.substring(755-1,762));
                                       pStmt.setString (109, psRecordContent.substring(763-1,766));
                                       pStmt.setString (110, psRecordContent.substring(767-1,778));
                                       pStmt.setString (111, psRecordContent.substring(779-1,782));
                                       pStmt.setString (112, psRecordContent.substring(783-1,785));
                                       pStmt.setString (113, psRecordContent.substring(786-1,786));
                                       pStmt.setString (114, psRecordContent.substring(787-1,806));
                                       pStmt.setString (115, psRecordContent.substring(807-1,815));
                                       pStmt.setString (116, psRecordContent.substring(816-1,816));
                                       pStmt.setString (117, psRecordContent.substring(817-1,817));
                                       pStmt.setString (118, psRecordContent.substring(818-1,818));
                                       pStmt.setString (119, psRecordContent.substring(819-1,824));
                                       pStmt.setString (120, psRecordContent.substring(825-1,832));
                                       pStmt.setString (121, psRecordContent.substring(833-1,833));
                                       pStmt.setString (122, psRecordContent.substring(834-1,866));
                                       pStmt.setString (123, psRecordContent.substring(867-1,870));
                                       pStmt.setString (124, psRecordContent.substring(871-1,1070));
                                       if (pStmt.executeUpdate() != 1)
                                            throw new GenException ("Insertion failed");
                                            String psMsgType = psRecordContent.substring (184-1, 187);
                                            if (true)//updateTable (conn, pstmt, pstmt1, pstmt2, psRecordContent, out, bw))
                                                 if (psMsgType.equals ("0500") || psMsgType.equals ("0520"))
                                                           //piSettlementDR++;
                                                 if (psMsgType.equals ("0210"))
                                                           //piUpdatedDR++;
                                                 if (psMsgType.equals ("0220") || psMsgType.equals ("0320") || psMsgType.equals ("0420"))
                                                      //reversalDR++;
                                                 //validDR++;
                                  //totalDR++;
                             else if (psRecordContent.startsWith ("FT"))
                                  pcData = new char [HEADERSIZE];     // Reading next Record Header
                                  brPTLF.read (pcData, 0, HEADERSIZE);
                                  piRecordsize = Integer.parseInt (new String (pcData));
                                  piOffset += HEADERSIZE;
                                  pcData = new char [piRecordsize - HEADERSIZE];// Reading next Record Content (Must be TT)
                                  brPTLF.read (pcData, 0, piRecordsize - HEADERSIZE);
                                  psRecordContent = new String (pcData);
                                  piOffset += piRecordsize - HEADERSIZE;
                                  if (!psRecordContent.startsWith ("TT"))
                                       throw new GenException ("Total Trailer not Found.");
                                  pbEndOfFile = true;
                        } // while (piOffset < piBlocksize)
                   } // while (!pbEndOfFile)
                   brPTLF.close();
                   fPTLF.close();
                   pStmt.close();
              catch (Exception e)
                   moLogFile.printStackTrace(e);
              finally
                   mConnPool.free(pConn);
         public static void main(String args[])
              try
                   PTLFProcessor test=new PTLFProcessor("c:\\test.txt");
                   test.PTLFGetData();
              catch (Exception e)
                   clsLogFile.printStackTrace(e);
    }Now is the code with normal Statements
    //package mps.mpsPTLF;
    import java.io.*;
    import java.sql.*;
    import java.util.*;
    import java.util.Calendar;
    import java.util.Date;
    import gen.genCommon.genConnectionPool.*;
    import gen.genCommon.*;
    public class PTLFProcessor1
         private static clsLogFile moLogFile = new clsLogFile("");
         private gen.genCommon.genConnectionPool.SharedConnectionPool mConnPool = SharedConnectionPool.getInstance(2);
         FileReader fPTLF = null;
         BufferedReader brPTLF = null;
    //**************** Begin Constructor declaration ************************
    To intialize the class variables for new Fee
         public PTLFProcessor1(String pathPTLF) throws GenException
              try
                   fPTLF = new FileReader(pathPTLF);
                   brPTLF = new BufferedReader(fPTLF);
              catch (Exception e)
                   throw new GenException("Error Accessing file : " + pathPTLF + " - " + e.toString(),e );     
    //**************** End  Constructor declaration ************************
         public void PTLFGetData() throws GenException
              char pcData[];
              int HEADERSIZE = 6;
              boolean pbEndOfFile = false;
              boolean pbisFirstBlock = true;
              int piBlocksize = 0;
              int piOffset = 0;
              int piRecordsize = 0;
              String psRecordContent = "";
              Connection pConn = null;
              int cnt=0;
              try
                   String psInsSql=" INSERT INTO FILE_PTLF_IN ( " +
                                       " fpi_DAT_TIM , " +
                                       " fpi_REC_TYP , " +
                                       " fpi_CRD_LN , " +
                                       " fpi_CRD_FIID , " +
                                       " fpi_CRD_NUM , " +
                                       " fpi_MBR_NUM , " +
                                       " fpi_MER_LN , " +
                                       " fpi_MER_FIID , " +
                                       " fpi_MER_GRP , " +
                                       " fpi_MER_REGN , " +
                                       " fpi_MER_ID , " +
                                       " fpi_TERM_ID , " +
                                       " fpi_SHIFT_NUM , " +
                                       " fpi_BATCH_NUM , " +
                                       " fpi_TERM_LN , " +
                                       " fpi_TERM_FIID , " +
                                       " fpi_TERM_ID_1 , " +
                                       " fpi_TRAN , " +
                                       " fpi_TERM_ID_2 , " +
                                       " fpi_REC_FRMT , " +
                                       " fpi_MER_ID_1 , " +
                                       " fpi_CLERK_ID , " +
                                       " fpi_DATA_FLAG , " +
                                       " fpi_TYP , " +
                                       " fpi_RTE_STAT , " +
                                       " fpi_ORIGINATOR , " +
                                       " fpi_RESPONDER , " +
                                       " fpi_ISS_CDE , " +
                                       " fpi_ENTRY_TIM , " +
                                       " fpi_EXIT_TIM , " +
                                       " fpi_RE_ENTRY_TIM , " +
                                       " fpi_TRAN_DAT , " +
                                       " fpi_TRAN_TIM , " +
                                       " fpi_POST_DAT , " +
                                       " fpi_ACQ_ICHG_SETL_DAT , " +
                                       " fpi_ISS_ICHG_SETL_DAT , " +
                                       " fpi_SEQ_NUM , " +
                                       " fpi_TERM_NAME_LOC , " +
                                       " fpi_TERM_OWNER_NAME , " +
                                       " fpi_TERM_CITY , " +
                                       " fpi_TERM_ST , " +
                                       " fpi_TERM_CNTRY_CDE , " +
                                       " fpi_BRCH_ID , " +
                                       " fpi_USER_FLD2 , " +
                                       " fpi_TERM_TIM_OFST , " +
                                       " fpi_ACQ_INST_ID_NUM , " +
                                       " fpi_RCV_INST_ID_NUM , " +
                                       " fpi_TERM_TYP , " +
                                       " fpi_CLERK_ID_1 , " +
                                       " fpi_GRP , " +
                                       " fpi_USER_ID , " +
                                       " fpi_RETL_SIC_CDE , " +
                                       " fpi_ORIG , " +
                                       " fpi_DEST , " +
                                       " fpi_TC , " +
                                       " fpi_T , " +
                                       " fpi_AA , " +
                                       " fpi_C , " +
                                       " fpi_CRD_TYP , " +
                                       " fpi_ACCT , " +
                                       " fpi_RESP_CDE , " +
                                       " fpi_AMT_1 , " +
                                       " fpi_AMT_2 , " +
                                       " fpi_EXP_DAT , " +
                                       " fpi_TRACK2 , " +
                                       " fpi_PIN_OFST , " +
                                       " fpi_PRE_AUTH_SEQ_NUM , " +
                                       " fpi_INVOICE_NUM , " +
                                       " fpi_ORIG_INVOICE_NUM , " +
                                       " fpi_AUTHORIZER , " +
                                       " fpi_AUTH_IND , " +
                                       " fpi_SHIFT_NUM_1 , " +
                                       " fpi_BATCH_SEQ_NUM , " +
                                       " fpi_APPRV_CDE , " +
                                       " fpi_APPRV_CDE_LGTH , " +
                                       " fpi_ICHG_RESP , " +
                                       " fpi_PSEUDO_TERM_ID , " +
                                       " fpi_RFRL_PHONE , " +
                                       " fpi_DFT_CAPTURE_FLG , " +
                                       " fpi_SETL_FLAG , " +
                                       " fpi_RVRL_CDE , " +
                                       " fpi_REA_FOR_CHRGBCK , " +
                                       " fpi_NUM_OF_CHRGBCK , " +
                                       " fpi_PT_SRV_COND_CDE , " +
                                       " fpi_PT_SRV_ENTRY_MDE , " +
                                       " fpi_AUTH_IND2 , " +
                                       " fpi_ORIG_CRNCY_CDE , " +
                                       " fpi_AUTH_CRNCY_CDE , " +
                                       " fpi_AUTH_CONV_RATE , " +
                                       " fpi_SETL_CRNCY_CDE , " +
                                       " fpi_SETL_CONV_RATE , " +
                                       " fpi_CONV_DAT_TIM , " +
                                       " fpi_IMP_IND , " +
                                       " fpi_AVAIL_BAL , " +
                                       " fpi_LEDG_BAL , " +
                                       " fpi_AMT_ON_HOLD , " +
                                       " fpi_TTL_FLOAT , " +
                                       " fpi_CUR_FLOAT , " +
                                       " fpi_ADJ_SETL_IMPACT_FLG , " +
                                       " fpi_PBF1 , " +
                                       " fpi_PBF2 , " +
                                       " fpi_PBF3 , " +
                                       " fpi_PBF4 , " +
                                       " fpi_FRWD_INST_ID_NUM , " +
                                       " fpi_CRD_ACCPT_ID_NUM , " +
                                       " fpi_CRD_ISS_ID_NUM , " +
                                       " fpi_ORIG_MSG_TYP , " +
                                       " fpi_ORIG_TRAN_TIM , " +
                                       " fpi_ORIG_TRAN_DAT , " +
                                       " fpi_ORIG_SEQ_NUM , " +
                                       " fpi_ORIG_B24_POST_DAT , " +
                                       " fpi_EXCP_RSN_CDE , " +
                                       " fpi_OVRRDE_FLG , " +
                                       " fpi_ADDR , " +
                                       " fpi_ZIP_CDE , " +
                                       " fpi_ADDR_VRFY_STAT , " +
                                       " fpi_PIN_IND , " +
                                       " fpi_PIN_TRIES , " +
                                       " fpi_PRE_AUTH_TS_DAT , " +
                                       " fpi_PRE_AUTH_TS_TIM , " +
                                       " fpi_PRE_AUTH_HLDS_LVL , " +
                                       " fpi_USER_FLD5 , " +
                                       " fpi_LEN , " +
                                       " fpi_INFO )" +
                                       " VALUES ";
                                       ( " +
                                       " ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?, " +
                                       " ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?, " +
                                       " ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?, " +
                                       " ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?, " +
                   pConn = mConnPool.getConnection();
                   Statement Stmt=pConn.createStatement();
                   while (!pbEndOfFile)
                        pcData = new char [HEADERSIZE];                    // Reading each Block Header
                        brPTLF.read (pcData, 0, HEADERSIZE);
                        piBlocksize = Integer.parseInt (new String (pcData));
                        piOffset = HEADERSIZE;
                        while (piOffset < piBlocksize)
                        {                      // Read the records upto end of block
                             pcData = new char [HEADERSIZE];               // Reading each Record Header
                             brPTLF.read (pcData, 0, HEADERSIZE);
                             piRecordsize = Integer.parseInt (new String (pcData));
                             piOffset += HEADERSIZE;
                             pcData = new char [piRecordsize - HEADERSIZE];     // Reading each Record Content
                             brPTLF.read (pcData, 0, piRecordsize - HEADERSIZE);
                             psRecordContent = new String (pcData);
                             piOffset += piRecordsize - HEADERSIZE;
                             if (pbisFirstBlock)
                                  if (!psRecordContent.startsWith ("TH"))
                                       throw new GenException ("Invalid File Format, missing 'TH'");
                                  pcData = new char [HEADERSIZE];          // Reading next Record Header
                                  brPTLF.read (pcData, 0, HEADERSIZE);
                                  piRecordsize = Integer.parseInt (new String (pcData));
                                  piOffset += HEADERSIZE;
                                  pcData = new char [piRecordsize - HEADERSIZE];// Reading next Record Content (Must be FH)
                                  brPTLF.read (pcData, 0, piRecordsize - HEADERSIZE);
                                  psRecordContent = new String (pcData);
                                  piOffset += piRecordsize - HEADERSIZE;
                                  if (!psRecordContent.startsWith ("FH"))
                                       throw new GenException ("File Header Not Found");
                                  pbisFirstBlock = false;
                             else if (psRecordContent.startsWith ("DR"))
                                  psRecordContent = psRecordContent.substring(2);
                        /*          if (psRecordContent.length() != 1820 ) // && psRecordContent.length() != 846)
                                       // insert in error table
                                       continue;
                                  String psValues = null;
                                  if ( psRecordContent.substring(453-1, 455).equals ("000") || psRecordContent.substring(453-1, 455).equals ("001") )
                                       psValues = "('" +  psRecordContent.substring(1-1,19) + "','" +
                                                        psRecordContent.substring(20-1,21) + "','" +
                                                       psRecordContent.substring(22-1,25) + "','" +
                                                       psRecordContent.substring(26-1,29) + "','" +
                                                       psRecordContent.substring(30-1,48) + "','" +
                                                       psRecordContent.substring(49-1,51) + "','" +
                                                       psRecordContent.substring(52-1,55) + "','" +
                                                       psRecordContent.substring(56-1,59) + "','" +
                                                       psRecordContent.substring(60-1,63) + "','" +
                                                       psRecordContent.substring(64-1,67) + "','" +
                                                       psRecordContent.substring(68-1,86) + "','" +
                                                       psRecordContent.substring(87-1,102) + "','" +
                                                       psRecordContent.substring(103-1,105) + "','" +
                                                       psRecordContent.substring(106-1,108) + "','" +
                                                       psRecordContent.substring(109-1,112) + "','" +
                                                       psRecordContent.substring(113-1,116) + "','" +
                                                       psRecordContent.substring(117-1,132) + "','" +
                                                       psRecordContent.substring(133-1,140) + "','" +
                                                       psRecordContent.substring(141-1,156) + "','" +
                                                       psRecordContent.substring(157-1,157) + "','" +
                                                       psRecordContent.substring(158-1,176) + "','" +
                                                       psRecordContent.substring(177-1,182) + "','" +
                                                       psRecordContent.substring(183-1,183) + "','" +
                                                       psRecordContent.substring(184-1,187) + "','" +
                                                       psRecordContent.substring(188-1,189) + "','" +
                                                       psRecordContent.substring(190-1,190) + "','" +
                                                       psRecordContent.substring(191-1,191) + "','" +
                                                       psRecordContent.substring(192-1,193) + "','" +
                                                       psRecordContent.substring(194-1,212) + "','" +
                                                       psRecordContent.substring(213-1,231) + "','" +
                                                       psRecordContent.substring(232-1,250) + "','" +
                                                       psRecordContent.substring(251-1,256) + "','" +
                                                       psRecordContent.substring(257-1,264) + "','" +
                                                       psRecordContent.substring(265-1,270) + "','" +
                                                       psRecordContent.substring(271-1,276) + "','" +
                                                       psRecordContent.substring(277-1,282) + "','" +
                                                       psRecordContent.substring(283-1,294) + "','" +
                                                       psRecordContent.substring(295-1,319) + "','" +
                                                       psRecordContent.substring(320-1,341) + "','" +
                                                       psRecordContent.substring(342-1,354) + "','" +
                                                       psRecordContent.substring(355-1,357) + "','" +
                                                       psRecordContent.substring(358-1,359) + "','" +
                                                       psRecordContent.substring(360-1,363) + "','" +
       

    You posted this question in several other forums. Please don't do that.

  • Mac version 4 times slower than PC version of CS3

    Just ran the same Comp in CS3 on both my winXP PC with a dual-core 2.6GHZ processor, 4GB RAM and on my doible dual-core 2.6Ghz on my Mac with OSX 10.5 and 9GB RAM both with Multiprocessor option turned on.
    I had purged the memory before hand and by the time the PC had completed the 139 frames the Mac was still on frame 30!
    I was using a 3D camera move through a particle system with an Adobe Illustrator CS3 file in it and motion blur on. I am amazed that the Mac with twice the processing power is slower!
    ANy ideas why this might happen.

    I don't think anyone intentionally spoils his products, least of all Adobe, who actually were one of the companies that made Macs so popular in the old days due to Photoshop... You should simply consider the state in which the Mac is:
    a)Apple have failed in providing a stable implementation for OpenGL ever since OSX arrived. Only 10.5.3 finally added native support for more advanced features, but peopel still have to use their own code and implement workarounds to boost performance
    b)The processor swing 3 years ago left everyone with having to adapt their code. In case of Adobe with a ton of complex products this meant a lot of extra, wasted work just for that.
    c)Now, on the threshold of native 64bit apps on the Mac, Apple again forced people to adapt and spent valuable time by not supporting Carbon any longer.
    As you see, it is actually more a matter of Apple giving folks a hard time to keep up. If you took the development time and money spent on those conversions, sure we would see a different set of features/ more features in some programs.
    Anyway, regarding your original problem: I'm not aware of a standardized benchmarking test for AE, which is probably not possible at all, given how many different footage types, layers, 3D, disk cache, media cache and whatnot you would need to consider. If you are seeing similar loss of performance in CS4, then something is really askew. I suggest you at least try to play with the number of cores to use for rendering. It should make a noticeable difference.
    Mylenium

  • Shake reduction in Photoshop CC (2014) is 20 to 50 times slower than in Photoshop CC

    I asked the same question earlier and got no good answer.
    I have replaced my graphics card and software several times and it had made no difference. I even removed my graphics card and it made no difference.  I went from an HD 7750 to a Firepro V3900 to a GeForce 430 to no graphics card at all - each time removing all traces of previous graphics software per manufacturers instructions.  No matter what, Photoshop CC (2014) takes minutes (or never completes) to do the same action that Photoshop CC does in under 5 seconds.  Have removed and reinstalled Creative Cloud app and all Abobe apps - still no change.

    Perhaps to avoid any ambiguity, we should get a bit more specific.  I say this because given a particular blur trace, the filter will commence pre-processing the image before you hit OK.  How about we all try the Shake Reduction function on the very same image with both Photoshop CC 14.x and Photoshop CC (2014).
    Here's a test image to try it with:  http://Noel.ProDigitalSoftware.com/ForumPosts/ElTeide.jpg
    Here's a controlled way to test:
    Set either your status indicator (at the bottom-left of your work area) or your Info panel to read out the Timing of operations.
    Start Filter - Sharpen - Shake Reduction.
    Allow the blur estimation process to complete, then press [ OK ].
    Edit - Undo (or press Control-Z)
    Now press Control-F to repeat the filter from start to finish without the UI.
    Read the time it took to complete from the status or info panel.
    Do steps 4,5,6 several times and note the SHORTEST time.
    Time to complete the Control-F operation:
    Photoshop CC 14.x:  20.4 seconds
    Photoshop CC (2014):  22.1 seconds
    I found kind of the opposite of JJ above...  For me it seemed kind of like Ps 2014 used a bit less CPU time overall...
    Photoshop CC 14.x:
    Photoshop CC (2014):
    -Noel

  • NFS write performance 6 times slower than read

    Hi all,
    I built my self a new homeserver and want to use NFS to export stuff to the clients. Problem is that I get a big difference in writing and reading from/to the share. Everything is connected by GBit Network, and raw network speed is fine.
    Reading on the clients yields about 31MByte/s which is almost the native speed of the disks (which are luks-encrypted). But writing to the share gives only about 5.1MByte/s in the best case. Writing to the disks internally gives about 30MByte/s too. Also writing with unencrypted rsync from the client to the server gives about 25-30MByte/s, so it is definitely not a network or disk problem. So I wonder if there is anything that I could do to improve the Write-Performance of my NFS-shares. Here is my config which gives the best results so far:
    Server-Side:
    /etc/exports
    /mnt/data 192.168.0.0/24(rw,async,no_subtree_check,crossmnt,fsid=0)
    /mnt/udata 192.168.0.0/24(rw,async,no_subtree_check,crossmnt,fsid=1)
    /etc/conf.d/nfs-server.conf
    NFSD_OPTS=""
    NFSD_COUNT="32"
    PROCNFSD_MOUNTPOINT=""
    PROCNFSD_MOUNTOPTS=""
    MOUNTD_OPTS="--no-nfs-version 1 --no-nfs-version 2"
    NEED_SVCGSSD=""
    SVCGSSD_OPTS=""
    Client-Side:
    /etc/fstab
    192.168.0.1:/mnt/data /mnt/NFS nfs rsize=32768,wsize=32768,intr,noatime 0 0
    Additional Infos:
    NFS to the unencrypted /mnt/udata gives about 20MByte/s reading and 10MByte/s writing.
    Internal Speed of the discs is about 37-38MByte/s reading/writing for the encrypted one, and 44-45MByte/s for the unencrypted (notebook-hdd)
    I Noticed that the load average on the server goes over 10 while the CPU stays at 10-20%
    So if anyone has any idea what might go wrong here please let me know. If you need more information I will gladly provide it.
    TIA
    seiichiro0185
    Last edited by seiichiro0185 (2010-02-06 13:05:23)

    Your rsize and wsize looks way too big. I just use defaults and it runs fine.
    I don't know what your server is but I plucked this from BSD Magazine.
    There is one point worth mentioning here, modern Linux usually uses wsize and rsize 8192 by default and that can cause problems with BSD servers as many support only wsize and rsize 1024. I suggest you add the option -o wsize=1024,rsize=1024 when you mount the share on your Linux machines.
    You also might want to check here for some optimisations http://www.linuxselfhelp.com/howtos/NFS … WTO-4.html
    A trick to increase NFS write performance is to disable synchronous writes on the server. The NFS specification states that NFS write requests shall not be considered finished before the data written is on a non-volatile medium (normally the disk). This restricts the write performance somewhat, asynchronous writes will speed NFS writes up. The Linux nfsd has never done synchronous writes since the Linux file system implementation does not lend itself to this, but on non-Linux servers you can increase the performance this way with this in your exports file:
    Last edited by sand_man (2010-03-03 00:23:23)

  • Regression? Adobe CMIS Connector 4.2 and CC ten times slower than 4.0.

    Hello dear forum members!
    We developed an Adobe Drive CMIS connector for our DAM system and noticed a major navigation performance degradation
    when updating CMIS connector on windows client systems from Version 4.0 to Version 4.2 or CC.
    When visiting a folder:
    Version 4.0 does a getChildren request ("children" url) and is finished: 1 call
    Version 4.2 and CC do a getChildren request and IN ADDITION call:
       - getObjectParents ("parents" url) for each object in folder
       - getObjectParents for folder of path of each object
    So lets say you have some folderX with path
    /top1/folder1/folderX
    containing 500 images of some photo session that needs sorting you get
    1x getChildren
    500x getObjectParents (one for each image)
    2x500x getObjectParents (2 for each folder of path of each image)
    in sum: 1501 calls until that same folder gets displayed.
    Any chance that this gets fixed on Adobe Drive CMIS connector?
    Can we do something on server side to prevent that behavior?
    Does Adobe Drive support paging in big folders?
    Anything else we can do to help?
    Regards,
        Carsten

    Hello together,
    I noticed the same issue on Adobe Drive 5.
    After accessing a folder with 35 files in it on Adobe Drive MAC CMIS Connector I saw over 200 HTTP Requests over the network (AtomPub).
    On other CMIS Clients it were only 14 requests.
    On Windows Adobe Drive CMIS Connector I did not record the requests but on windows it was anyway much much faster.
    I assume the Java layer is the same on Windows and Mac so I think that maybe the underlying AdobeDrive4 filesystem (at least "mount" shows an "AdobeDrive4"  FS) implementation on Mac polls very often and this results in extensive HTTP requests. Thats why I also thought of writing an own CMIS Connector which uses clever caching.
    Maybe we can bundle our ideas and implement a fast open source CMIS 1.1 Connector for Adobe Drive?
    @md_Zool:
    How are your experiences with an own Connector?
    Could you speed up things at Mac?
    Maybe Adobe also can also shed some light on this issue?
    tia
    Cheers
    Sascha

Maybe you are looking for

  • Audio books will not sync from itunes to iphone

    I have four audio books on ITunes that at one time were synced to Iphone.  Now they are not on the phone and I can not sync from Itunes, even though they are in Itunes as a purchase.  I have gone to book and audiobooks and checked sync all on both. t

  • How do I move a PDF picture from an email on my iPad to my pictures?

    How do I move a PDF picture from an email on my iPad to my pictures?

  • 9/17/2013 - AIR 3.9.0.880 Runtime and SDK Beta

    Adobe AIR Beta Channel Update This beta release provides access to the latest AIR runtime and SDK (with compiler) for Windows, Mac OS, iOS and Android. Below are some of the key features and benefits of AIR 3.9.  Please see our release notes for full

  • Trying to reduce the size of Aperture library

    I have a 295 GB library and a 500 GB Hard drive. Trying to reduce size of Aperture library, (ver 3.4.3) have deleted lots of big videos, duplicates of big videos, lots of poor quality photos,  emptied Aperture trash and size hasn't changed. I don't k

  • Outlook Client Issues following Exchange 2010 Rollup 8

    Update Rollup 8 For Exchange 2010 SP3 (KB2986475) was applied to our Exchange server last night. All appears to be fine, but users are having all kind of trouble using the Outlook Client to connect to their mailboxes. Randomly they can't view certai