Как измерить время выполнения транзакции?

IBX, FIBPlus, UIB, ADO, .Net и прочее-прочее-прочее, в общем все, что относится к созданию приложений, работающих с InterBase, Firebird и Yaffil - клиент-серверных, трехзвенных, консольных и т.п.

Модератор: kdv

Ответить
VANESS
Сообщения: 4
Зарегистрирован: 09 июл 2008, 14:25

Как измерить время выполнения транзакции?

Сообщение VANESS » 10 июл 2008, 08:35

Возникла необходимость мерить время выполнения транзакции сервером IB. Простые засечки времени на клиенте дают время с учетом прохождения траффика по сети. В API IB необходимых функций, выдающих такую информацию, не нашел. Тогда интересует каким образом измеряется время выполнения транзакции в той же IBConsole. Просьба ногами сильно не пинать :) в вопросах работы с БД новичок

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 10 июл 2008, 10:22

time1
StartTransaction
commit
time2

время = time2-time1

интересно, что за "необходимость" такая?
засечки времени на клиенте дают время с учетом прохождения траффика по сети.
а как Вы себе представляете это без учета трафика, и вообще?

Вот я сел за стол в 9 часов, и встал из-за него в 11. Просидел 2 часа.
Так и сервер. Сказал ему клиент стартовать транзакцию - он стартовал. И когда клиент вызовет коммит - серверу до лампочки, как и делает что-то клиент, не делает, по сети или локально данные гоняет, и т.д.
время выполнения транзакции в той же IBConsole.
это где? может, время выполнения запроса? Так все равно без трафика это не имеет смысла. Запрос может выполниться за 40 миллисекунд, а клиент данные будет тащить 5 минут. И ?

p.s. кстати, использование IBConsole навевает некоторые мысли.

VANESS
Сообщения: 4
Зарегистрирован: 09 июл 2008, 14:25

Сообщение VANESS » 10 июл 2008, 10:57

kdv писал(а): это где? может, время выполнения запроса? Так все равно без трафика это не имеет смысла. Запрос может выполниться за 40 миллисекунд, а клиент данные будет тащить 5 минут. И ?
А как именно на клиенте узнать что запрос отработался за эти 40 миллисекунд? Необходимо отсечь время выполнения запроса от времени передачи данных
kdv писал(а): p.s. кстати, использование IBConsole навевает некоторые мысли.
Какие мысли имеются ввиду? Какой инструментарий Вы можете порекомендовать?
P.S.
Спасибо большое)

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 10 июл 2008, 11:03

А как именно на клиенте узнать что запрос отработался за эти 40 миллисекунд? Необходимо отсечь время выполнения запроса от времени передачи данных
a например Query.Open или ExecSQL - это что, не команда выполнения запроса?
Какие мысли имеются ввиду?
про IBConsole вместе с "IB" - нехорошие. Уж не про IB 6 ли речь?
Какой инструментарий Вы можете порекомендовать?
например, IBExpert.

VANESS
Сообщения: 4
Зарегистрирован: 09 июл 2008, 14:25

Сообщение VANESS » 10 июл 2008, 11:32

kdv писал(а): a например Query.Open или ExecSQL - это что, не команда выполнения запроса?
Из общего времени исполнения запроса интересует сколько времени приходится на работу СУБД, например время выполнения хранимой процедуры, и сколько времени тратится на обработку клиентом (клиент и сервер СУБД на разных хостах)

Attid
Спец
Сообщения: 377
Зарегистрирован: 14 ноя 2006, 09:58

Сообщение Attid » 10 июл 2008, 11:40

сдается мне он хочет получит

Код: Выделить всё

------ Performance info ------
Prepare time = 16ms
Execute time = 0ms
Avg fetch time = 0,00 ms
Current memory = 643 964
Max memory = 665 632
Memory buffers = 2 048
Reads from disk to cache = 0
Writes from cache to disk = 0
Fetches from cache = 5
а про ИБ 6 , мне кажется он не просто так промолчал.

VANESS
Сообщения: 4
Зарегистрирован: 09 июл 2008, 14:25

Сообщение VANESS » 10 июл 2008, 12:12

Attid писал(а): а про ИБ 6 , мне кажется он не просто так промолчал.
Ввиду того, что
в вопросах работы с БД новичок
прошу разъяснить причем тут IB 6, используемая мною версия 7.5.1 SP1
Attid писал(а): сдается мне он хочет получит
Да именно это я и хочу получить)))

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 10 июл 2008, 12:39

прошу разъяснить причем тут IB 6
при том, что ты не указал вначале версию IB.
Да именно это я и хочу получить
ну так и получи. Все эти тайминги вычисляются программно.
time1
действие
time2

хоть в консоли, хоть в IBExpert, хоть в твоей программе.

Merlin
Динозавр IB/FB
Сообщения: 1502
Зарегистрирован: 27 окт 2004, 11:44

Сообщение Merlin » 10 июл 2008, 12:46

Судя по безумности постановки задачи и упоминанию ХП, это есть лабораторка по использование CURRENT_TIMESTAMP на сервере.

Attid
Спец
Сообщения: 377
Зарегистрирован: 14 ноя 2006, 09:58

Сообщение Attid » 11 июл 2008, 10:30

Merlin писал(а):Судя по безумности постановки задачи и упоминанию ХП, это есть лабораторка по использование CURRENT_TIMESTAMP на сервере.
только если мне не изменяет память то CURRENT_TIMESTAMP ему не поможет =) только cast 'now' as timestamp =)

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 11 июл 2008, 11:27

CURRENT_TIMESTAMP ему не поможет
ага

Ответить