fbtracemgr: add setting to evaluate cost of transmitting BLOB data to client side ---------------------------------------------------------------------------------
Key: CORE-3903 URL: http://tracker.firebirdsql.org/browse/CORE-3903 Project: Firebird Core Issue Type: Improvement Components: TRACEMGR Affects Versions: 2.5.2 Reporter: Pavel Zotov Consider the following test case: 1. DDL: ------------ recreate table t(b blob); commit; insert into t select list(gen_uuid()) from rdb$fields,rdb$fields,rdb$fields; commit; 2. Run trace and reconnect to that database via TCP: ------------------------------------------------------------------------- isql localhost:C:\1INSTALL\FIREBIRD\Data\T0.FDB Database: localhost:C:\1INSTALL\FIREBIRD\Data\T0.FDB SQL> set blob all; SQL> set stat on; out nul; select b from t; commit; out; 3. Then open trace log: --------------------------------- 2012-08-20T07:21:02.1870 (500:0212C088) EXECUTE_STATEMENT_START C:\1INSTALL\FIREBIRD\DATA\T0.FDB (ATT_2, SYSDBA:NONE, NONE, TCPv4:127.0.0.1) C:\1INSTALL\FIREBIRD\FB25HEAD\bin\isql.exe:1096 (TRA_9, CONCURRENCY | WAIT | READ_WRITE) Statement 37: ------------------------------------------------------------------------------- select b from t 2012-08-20T07:21:02.1870 (500:0212C088) EXECUTE_STATEMENT_FINISH C:\1INSTALL\FIREBIRD\DATA\T0.FDB (ATT_2, SYSDBA:NONE, NONE, TCPv4:127.0.0.1) C:\1INSTALL\FIREBIRD\FB25HEAD\bin\isql.exe:1096 (TRA_9, CONCURRENCY | WAIT | READ_WRITE) Statement 37: ------------------------------------------------------------------------------- select b from t 1 records fetched 0 ms, 5 fetch(es) Table Natural Index Update Insert Delete ************************************************************************************ T 1 2012-08-20T07:21:58.8900 (500:0212C088) CLOSE_CURSOR C:\1INSTALL\FIREBIRD\DATA\T0.FDB (ATT_2, SYSDBA:NONE, NONE, TCPv4:127.0.0.1) C:\1INSTALL\FIREBIRD\FB25HEAD\bin\isql.exe:1096 The time between EXEC_STT_START and FINISH is about 0 ms - this is how long FB-engine extracts BLOB data but NOT how long these data were transmitted to client. The full time in that sample is DATEDIFF(millisecond from <EXECUTE_STATEMENT_START> to CLOSE_CURSOR). It will be useful if we have some option in trace config (setting like "print_blob_perf") that will allow us to see in trace full time of BLOB handling, i.e. not only extracting time on server side. -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://tracker.firebirdsql.org/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira ------------------------------------------------------------------------------ Live Security Virtual Conference Exclusive live event will cover all the ways today's security and threat landscape has changed and how IT managers can respond. Discussions will include endpoint security, mobile security and the latest in malware threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel