PostGreSql 7.4.3 
 I have a function that 'audits' inserts / updates on other tables - I have put timetraps in the code to see why it takes so long. The problem is that the timetrap shows a common time although the lapse in the display of the time is 5 to 6 seconds. How can I see what is actually going on? 
 update carpool set regNo = regNo where recNo = 1; 
 NOTICE:  (2004-08-24 12:37:54.52781) In Audit Tables 
 NOTICE:  (2004-08-24 12:37:54.52781) Got Level (L) 
 NOTICE:  (2004-08-24 12:37:54.52781) Deleted (carpool) (U) 
 NOTICE:  (2004-08-24 12:37:54.52781) Getting Seq For (tableactionaudit_recno_seq) 
 CONTEXT:  PL/pgSQL function "audit_tables" line 32 at SQL statement 
 NOTICE:  (2004-08-24 12:37:54.52781) Getting Seq For (tableactionaudit_recno_seq) 
 CONTEXT:  PL/pgSQL function "audit_tables" line 32 at SQL statement 
 NOTICE:  (2004-08-24 12:37:54.52781) INserted (carpool) (U) 
 UPDATE 1 
 Code is 
 BEGIN  
        SELECT CURRENT_TIMESTAMP INTO l_timeStamp; 
          RAISE NOTICE '(%) In Audit Tables',l_timeStamp;        
          SELECT auditLevel  
              INTO m_auditLevel  
              FROM auditLevel  
              WHERE foreignTableName = TG_ARGV[1];          
          IF NOT FOUND THEN  
              m_auditLevel  :=  'L';  
          END IF;          
        SELECT CURRENT_TIMESTAMP INTO l_timeStamp; 
           RAISE NOTICE '(%) Got Level (%)',l_timeStamp,m_auditLevel;          
          IF m_auditLevel    = 'L' THEN  
              DELETE FROM tableActionAudit  
                  WHERE foreignTableName     = TG_ARGV[1]  
                  AND   foreignRecNo         = NEW.recNo  
                  AND   actionType           = TG_ARGV[0];  
          END IF;  
        SELECT CURRENT_TIMESTAMP INTO l_timeStamp; 
           RAISE NOTICE '(%) Deleted (%) (%)',l_timeStamp,TG_ARGV[1],TG_ARGV[0];          
          IF m_auditLevel = 'L' OR 
             m_auditLevel = 'F' THEN 
              INSERT INTO tableActionAudit 
                VALUES (  
                        getNextSerialNo('tableactionaudit'), 
                        TG_ARGV[0],  
                        TG_ARGV[1],  
                        NEW.recNo,  
                        current_date,  
                        current_timestamp,  
                        user  
                        ); 
          END IF;  
        SELECT CURRENT_TIMESTAMP INTO l_timeStamp; 
           RAISE NOTICE '(%) INserted (%) (%)',l_timeStamp,TG_ARGV[1],TG_ARGV[0];        
          RETURN NEW;       
  Regards,
  Steve Tucknott
  ReTSol Ltd
  DDI: 01903 828769
  |