powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Мониторинг доступности БД
24 сообщений из 49, страница 2 из 2
Мониторинг доступности БД
    #39312847
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вано Сусанидзе,

начиная с Висты вместo PsTools можно использовать штатную утилиту taskkill
по крайней мере, если процесс надо убивать на лкальной машине ,а не на удалённой
...
Рейтинг: 0 / 0
Мониторинг доступности БД
    #39313130
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А FIB дает информацию о времени выполнения запроса или надо через AfterExecute и BeforeExecute замерять время?
...
Рейтинг: 0 / 0
Мониторинг доступности БД
    #39315494
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как лучше получить время выполнения запроса?
Написал вот такой код, но результаты меня смущаюсь, часто получаю 0:
Код: pascal
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.
45.
46.
47.
procedure TForm1.FormCreate(Sender: TObject);
var
  f: TStrings;

begin
f:=TstringList.Create();
f.LoadFromFile('c:\Temp\db.txt');
pFIBDatabase1.DBName := f.Strings[0];
pFIBDatabase2.DBName := f.Strings[1];
pFIBDatabase1.Connected := True;
pFIBDatabase2.Connected := True;
pFIBDatabase1.DefaultTransaction:=pFIBTransaction1;
pFIBDatabase2.DefaultUpdateTransaction:=pFIBTransaction2;
pFIBTransaction1.DefaultDatabase:= pFIBDatabase1;
pFIBTransaction2.DefaultDatabase:= pFIBDatabase2;


//Application.Terminate;
//exit;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
var
    t1:TDateTime;
  t2:TDateTime;
  s:String;
begin
pFIBTransaction1.Active := True;
pFIBTransaction2.Active := True;
pFIBQuery1.Database:=  pFIBDatabase1;
pFIBQuery2.Database:=  pFIBDatabase2;
pFIBQuery1.Transaction:= pFIBTransaction1;
pFIBQuery2.Transaction:= pFIBTransaction2;
t1:= now;
pFIBQuery1.ExecQuery;
t2:= now;
DateTimeToString(s, 'hh:nn:ss.zzz', t2-t1);
pFIBQuery2.ParamByName('t1').AsTime := t1;
pFIBQuery2.ParamByName('t2').AsTime := t2;
pFIBQuery2.ParamByName('s').AsString := s;
pFIBQuery2.ExecQuery;
//pFIBDatabase1.Connected := False;
//pFIBDatabase2.Connected := False;
label1.Caption := 'Выполнено!';
end;

end.



Запрос select * from rdb$database
...
Рейтинг: 0 / 0
Мониторинг доступности БД
    #39315517
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gallemar,

выполнение exec отложено до первого fetch.
Т.е. делай фетч и результаты станут отличаться от нуля.
...
Рейтинг: 0 / 0
Мониторинг доступности БД
    #39315541
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladвыполнение exec отложено до первого fetch.
где?
...
Рейтинг: 0 / 0
Мониторинг доступности БД
    #39315547
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvhvladвыполнение exec отложено до первого fetch.
где?FB 2.1 и выше, где же ещё :)
...
Рейтинг: 0 / 0
Мониторинг доступности БД
    #39315598
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladGallemar,

выполнение exec отложено до первого fetch.
Т.е. делай фетч и результаты станут отличаться от нуля.
А если я не работаю с набором данных и запрос вхолостую выполняется?
...
Рейтинг: 0 / 0
Мониторинг доступности БД
    #39315602
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladFB 2.1 и выше, где же ещё :)
Так теперь ошибки типа "неверные входные параметры" могут посыпаться с фетча?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Мониторинг доступности БД
    #39315608
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GallemarhvladGallemar,

выполнение exec отложено до первого fetch.
Т.е. делай фетч и результаты станут отличаться от нуля.
А если я не работаю с набором данных и запрос вхолостую выполняется?Зачем тогда делать запрос, возвращающий данные ?
Далее, с чего ты взял, что exec без fetch вообще что-то выполняет? :)
...
Рейтинг: 0 / 0
Мониторинг доступности БД
    #39315609
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

я уже говорил, что тебя нет ?
...
Рейтинг: 0 / 0
Мониторинг доступности БД
    #39316158
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladGallemarпропущено...

А если я не работаю с набором данных и запрос вхолостую выполняется?Зачем тогда делать запрос, возвращающий данные ?
Далее, с чего ты взял, что exec без fetch вообще что-то выполняет? :)
А если GoToFirstRecordOnExecute:= True ?
...
Рейтинг: 0 / 0
Мониторинг доступности БД
    #39316302
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Почему то при
Код: pascal
1.
2.
3.
4.
t1:= now;
pFIBQuery1.ExecQuery;
pFIBQuery1.Next;
pFIBQuery1.Close;


получаю
Can't fetch record because Form1.pFIBQuery1 dataset closed

ЧЯНД?
...
Рейтинг: 0 / 0
Мониторинг доступности БД
    #39316312
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gallemar,

может потому что Open надо
...
Рейтинг: 0 / 0
Мониторинг доступности БД
    #39316328
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gallemarполучаю "Can't fetch record because Form1.pFIBQuery1 dataset closed"
ЧЯНД?Да вроде всё норм, если в pFIBQuery1 правильно задан SQL запрос, задан объект подключения к БД, транзакция и транзакция стартовала на момент ExecQuery(). Может ты для pFIBQuery1 задал опцию qoAutoCommit?
...
Рейтинг: 0 / 0
Мониторинг доступности БД
    #39316340
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_dev,

object pFIBQuery1: TpFIBQuery
SQL.Strings = (
'select * from table_6')
CSMonitorSupport.Enabled = csmeTransactionDriven
Left = 40
Top = 144
qoAutoCommit = True
end
...
Рейтинг: 0 / 0
Мониторинг доступности БД
    #39316344
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gallemar, ну так и чего же ты хочешь? У тебя запрос подтверждает транзакцию сразу после своего успешного завершения. Поставь qoAutoCommit = False и затем подтверждай транзакцию "вручную", через pFIBQuery1.Transaction.Commit()
...
Рейтинг: 0 / 0
Мониторинг доступности БД
    #39316347
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RTFM:
"qoAutoCommit – если включено, то сразу же после выполнения запроса
транзакция, в рамках которой он был выполнен, будет завершена методом Commit.
Внимание, если запрос селективный, то он тоже будет сразу же закрыт, и вы не
сможете получить доступ к следующим записям."
...
Рейтинг: 0 / 0
Мониторинг доступности БД
    #39316399
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_dev,

не помогло, всё равно время 0
...
Рейтинг: 0 / 0
Мониторинг доступности БД
    #39316728
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gallemar, работа с TDateTime к фетчу из TFIBQuery не относится. :) Ты уверен, что Now() способен вернуть миллисекунды в TDateTime? Попробуй использовать TFIBSQLMonitor.

"TFIBSQLMonitor
Этот объект позволяет осуществить мониторинг всех действий с БД, которые производит
приложение, использующее FIBPlus."
...
Рейтинг: 0 / 0
Мониторинг доступности БД
    #39316731
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_devNow() способен вернуть миллисекунды в TDateTime
Он могёт.
...
Рейтинг: 0 / 0
Мониторинг доступности БД
    #39316740
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gallemar, проще всего воспользоваться read-only свойством TFIBQuery:

"property CallTime :Cardinal;
Возвращает количество времени в тиках, за которое выполнился запрос. (Время фетча сюда
не входит)"


Судя по описанию функции GetTicksCount(), в свойстве CallTime должно быть количество миллисекунд, а не тиков таймера или процессора.
...
Рейтинг: 0 / 0
Мониторинг доступности БД
    #39316755
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_dev,хм. А это какая версия фибов? У меня такого свойства нет (6.4)
...
Рейтинг: 0 / 0
Мониторинг доступности БД
    #39316793
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gallemar, у меня FIBPlus версии 6.9.5
...
Рейтинг: 0 / 0
Мониторинг доступности БД
    #39316795
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gallemar, тогда попробуй GetTicksCount() из юнита IdGlobal
...
Рейтинг: 0 / 0
24 сообщений из 49, страница 2 из 2
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Мониторинг доступности БД
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]