Давно замечал, да всё как-то стеснялся спросить... И не уверен,
только ли к ИБЭ тут вопрос...
Если запустить ОДНО окошко ИБЭ, то время выполнения пункта "Reconnect" (контекстное меню DB Explorer'a) будет около 1 сек - во всяком случае, глаз легко замечает "красную строку" в подвале главной панели ("Reconnect [<database name>...]").
Если же запустить второй аттаче к этой базе (новый ИБЭ или просто isql), то переконнект станет практически мгновенным (что в первом, что во втором окнах).
Когда реконнект "долгий" (~ 1 сек), то трейс для этой команды выглядит так:
trace-"slow"
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
2014-03-22T13:50:04.4470 (15424:0x7f88dd3e2b10) DETACH_DATABASE
oltp30 (ATT_91, SYSDBA:NONE, WIN1251, TCPv4:192.168.43.96)
C:\MIX\IBE\IBExpert.exe:1568
2014-03-22T13:50: 04.4470 (15424:0x7f88dd3e2b10) TRACE_FINI
SESSION_9
2014-03-22T13:50: 04.6130 (15424:0x7f88dd3e2b10) TRACE_INIT // ~0.2 сек
SESSION_9
2014-03-22T13:50:04.6130 (15424:0x7f88dd3e2b10) START_TRANSACTION
/opt/fb30trnk/security3.fdb (ATT_7743, SYSDBA:NONE, NONE, <internal>)
(TRA_26172, CONCURRENCY | WAIT | READ_ONLY)
2014-03-22T13:50: 04.6130 (15424:0x7f88dd3e2b10) ROLLBACK_TRANSACTION
/opt/fb30trnk/security3.fdb (ATT_7743, SYSDBA:NONE, NONE, <internal>)
(TRA_26172, CONCURRENCY | WAIT | READ_ONLY)
0 ms, 1 write(s), 1 fetch(es), 1 mark(s)
2014-03-22T13:50: 05.3210 (15424:0x7f88dd3e3fe8) TRACE_INIT // ==> ~ 0.7 сек
SESSION_9
2014-03-22T13:50:05.3210 (15424:0x7f88dd3e3fe8) ATTACH_DATABASE
oltp30 (ATT_93, SYSDBA:NONE, WIN1251, TCPv4:192.168.43.96)
C:\MIX\IBE\IBExpert.exe:1568
2014-03-22T13:50:05.3240 (15424:0x7f88dd3e3fe8) START_TRANSACTION
oltp30 (ATT_93, SYSDBA:NONE, WIN1251, TCPv4:192.168.43.96)
C:\MIX\IBE\IBExpert.exe:1568
(TRA_3781, CONCURRENCY | WAIT | READ_WRITE)
2014-03-22T13:50:05.3260 (15424:0x7f88dd3e3fe8) PREPARE_STATEMENT
oltp30 (ATT_93, SYSDBA:NONE, WIN1251, TCPv4:192.168.43.96)
C:\MIX\IBE\IBExpert.exe:1568
(TRA_3781, CONCURRENCY | WAIT | READ_WRITE)
Statement 21:
-------------------------------------------------------------------------------
SELECT D.RDB$CHARACTER_SET_NAME, C.RDB$DEFAULT_COLLATE_NAME
FROM RDB$DATABASE D
LEFT JOIN RDB$CHARACTER_SETS C ON (D.RDB$CHARACTER_SET_NAME = C.RDB$CHARACTER_SET_NAME)
. . .
А когда реконнект "быстрый" (т.е. есть еще 1 запущенный ИБЭ с аттачем к этой базе), то трейс таков:
trace-"fast"
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
2014-03-22T13:49:12.8920 (15424:0x7f88dd3e2b10) DETACH_DATABASE
oltp30 (ATT_90, SYSDBA:NONE, WIN1251, TCPv4:192.168.43.96)
C:\MIX\IBE\IBExpert.exe:1568
2014-03-22T13:49: 12.8920 (15424:0x7f88dd3e2b10) TRACE_FINI
SESSION_8
2014-03-22T13:49: 12.9220 (15424:0x7f88dd3e2b10) TRACE_INIT // ~ 0.03 sec
SESSION_8
2014-03-22T13:49:12.9220 (15424:0x7f88dd3e2b10) START_TRANSACTION
/opt/fb30trnk/security3.fdb (ATT_7743, SYSDBA:NONE, NONE, <internal>)
(TRA_26170, CONCURRENCY | WAIT | READ_ONLY)
2014-03-22T13:49:12.9220 (15424:0x7f88dd3e2b10) ROLLBACK_TRANSACTION
/opt/fb30trnk/security3.fdb (ATT_7743, SYSDBA:NONE, NONE, <internal>)
(TRA_26170, CONCURRENCY | WAIT | READ_ONLY)
0 ms, 1 write(s), 1 fetch(es), 1 mark(s)
2014-03-22T13:49: 12.9290 (15424:0x7f88dd3e3fe8) TRACE_INIT // ~ 0.007 sec
SESSION_8
2014-03-22T13:49:12.9290 (15424:0x7f88dd3e3fe8) ATTACH_DATABASE
oltp30 (ATT_91, SYSDBA:NONE, WIN1251, TCPv4:192.168.43.96)
C:\MIX\IBE\IBExpert.exe:1568
2014-03-22T13:49:12.9310 (15424:0x7f88dd3e3fe8) START_TRANSACTION
oltp30 (ATT_91, SYSDBA:NONE, WIN1251, TCPv4:192.168.43.96)
C:\MIX\IBE\IBExpert.exe:1568
(TRA_3778, CONCURRENCY | WAIT | READ_WRITE)
2014-03-22T13:49:12.9340 (15424:0x7f88dd3e3fe8) PREPARE_STATEMENT
oltp30 (ATT_91, SYSDBA:NONE, WIN1251, TCPv4:192.168.43.96)
C:\MIX\IBE\IBExpert.exe:1568
(TRA_3778, CONCURRENCY | WAIT | READ_WRITE)
Statement 116:
-------------------------------------------------------------------------------
SELECT D.RDB$CHARACTER_SET_NAME, C.RDB$DEFAULT_COLLATE_NAME
FROM RDB$DATABASE D
LEFT JOIN RDB$CHARACTER_SETS C ON (D.RDB$CHARACTER_SET_NAME = C.RDB$CHARACTER_SET_NAME)
. . .
Кроме того, в случае "долгого" переконнекта номер аттача увеличивается на 2 (см trace-"slow": att_91 ==> att_93), а в случае "быстрого" - только на 1 (см trace-"fast": att_90 ==> att_91).
Чем это вызвано ?
PS. ФБ в арх-ре SuperServer.