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