powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Informix [игнор отключен] [закрыт для гостей] / Sql логи
20 сообщений из 20, страница 1 из 1
Sql логи
    #34767403
TarasBul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго дня.
Не подскажите, можно ли как-нибудь просмотреть информацию по sql-запросам, которые выполнялись в определнный промежуток времени? Просто возникает такая ситуация, когда базу начинает "колбасить" от запроса, а что за запрос, какой клиент его отослал, не понятно.

Можно использовать onstat -g [sql:ses:stm], но, на сколько я понял, это все в режиме online.
А хотелось бы так: вводишь необходимый интервал и смотришь, какие были запросы, чтобы отловить "кривой".

[IDS 9.x - Unix]

Заранее спасибо
...
Рейтинг: 0 / 0
Sql логи
    #34768560
vvg16
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Могу порекомендовать триггер на select
...
Рейтинг: 0 / 0
Sql логи
    #34768726
TarasBul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vvg16Могу порекомендовать триггер на select

Ммм, не совсем понял.
Триггер на select - это как? И куда его вешать?
Ведь триггеры вешаются только на insert-update-delete и причем только на таблицы, никаких view и т.п. А если выборка идет как раз по вьюхе.
Или я чего-то не понял?
...
Рейтинг: 0 / 0
Sql логи
    #34768795
vasilis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vvg16Могу порекомендовать триггер на select
Если человек даже своих тяжелых запросов не знает, то что же ему, на все таблицы в базе триггера вешать ? Упаси Бог.
Так как версия сервера неизвестна, то посмотрите этот док (кажется 8-я глава).
Может поможет.
/topic/445776&pg=-1&hl=sql+query#4359168]IBM
А также поиском по форуму посмотреть подобные вопросы - они уже не раз возникали.
...
Рейтинг: 0 / 0
Sql логи
    #34768865
TarasBul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vasilisЕсли человек даже своих тяжелых запросов не знает, то что же ему, на все таблицы в базе триггера вешать ? Упаси Бог.

Так и подмывает сказать:
"Ах Василий, какой Вы ах...ый" ((с) не помню откуда).
Покажите, пожалуйста, если кочено Вы сможете, то место в моем посте, где я упомянул, что запросы МОИ (а т.к. я заранее знаю, что не сможете, то могу порекомендовать отличного оккулиста), и заодно не подскажите (так, для общего развития), как вешаются триггера на select?

vasilisТак как версия сервера неизвестна...
TarasBul[IDS 9.x - Unix], или необходима полная версия?
...
Рейтинг: 0 / 0
Sql логи
    #34769111
vasilis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TarasBul vasilisЕсли человек даже своих тяжелых запросов не знает, то что же ему, на все таблицы в базе триггера вешать ? Упаси Бог.
Так и подмывает сказать:
"Ах Василий, какой Вы ах...ый" ((с) не помню откуда).

Вообще-то, уже сказали, только не пойму, почему так грубо и что обидного я лично ВАМ сказал?
К тому же мой ответ был направлен vvg16, а вовсе не TarasBul.
TarasBul
Покажите, пожалуйста, если кочено Вы сможете, то место в моем посте, где я упомянул, что запросы МОИ
"своих тяжелых запросов" - имелось ввиду, не лично написанных (об этом я даже и мысли допустить не мог), а "в своей системе", в той, в которой вы админ или девелопер.
TarasBul
(а т.к. я заранее знаю, что не сможете, то могу порекомендовать отличного оккулиста),
Лучше подыщите себе отличного психолога или психоаналитика, чтобы научил видеть за чужими словами желание помочь, а не попытку ущемить что то...
TarasBul
и заодно не подскажите (так, для общего развития), как вешаются триггера на select?

Заодно подскажу, если вам влом посмотреть доку (хотя о триггерах на селект советовал и не я).
См. IBM Informix Guide to SQL: Syntax, Version 9.4 (G251-1243-00)
раздел CREATE TRIGGER
Версия сервера вполне подходит под ваше определение версии (9.х)
TarasBul
vasilisТак как версия сервера неизвестна...
TarasBul[IDS 9.x - Unix], или необходима полная версия?
да, нужна обычно точная версия сервера, т.к. в семейство 9.х вошло много чего в течении 10 лет. и сравнивать их между собой часто просто бессмысленно, например, 9.2 и 9.4 очень сильно отличаются по функционалу.
...
Рейтинг: 0 / 0
Sql логи
    #34769794
vvg16
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Извините, что сразу не ответил. Был занят.
vasilis
Так как версия сервера неизвестна, то посмотрите этот док (кажется 8-я глава).

Этот документ, к сожалению называется
Код: plaintext
1.
2.
3.
4.
 "Informix Dynamic Server 11: Advanced Functionality for Modern Business." 
...
 Chapter 8. SQL query drill-down 
...

Как мне помнится, автор просил помощи по девятке. Поэтому было предложено создать триггер.
Однако, триггер на селект из view действительно пока отсутствует.
В качестве дополнительной альтернативы могу предложить использовать команду cron для наблюдения за запросами.
...
Рейтинг: 0 / 0
Sql логи
    #34770685
Фотография Andron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TarasBul

А хотелось бы так: вводишь необходимый интервал и смотришь, какие были запросы, чтобы отловить "кривой".

[IDS 9.x - Unix]

Заранее спасибо

В 9 версии такое вряд ли можно сделать, только если использовать для клиентов некий промежуточный прокси (может помочь Informix I-Spy, но это отдельный продукт), или как выше написали сделать некий скрипт, который бы через промежутки времени смотрел все запросы и писал их в текстовый файл. Что еще может помочь? Ну например включение трассировки запросов на уровне клиентских приложений , если такое возможно в вашем случае.
...
Рейтинг: 0 / 0
Sql логи
    #34775926
Выбегалло
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TarasBulДоброго дня.
Не подскажите, можно ли как-нибудь просмотреть информацию по sql-запросам, которые выполнялись в определнный промежуток времени? Просто возникает такая ситуация, когда базу начинает "колбасить" от запроса, а что за запрос, какой клиент его отослал, не понятно.

Можно использовать onstat -g [sql:ses:stm], но, на сколько я понял, это все в режиме online.
А хотелось бы так: вводишь необходимый интервал и смотришь, какие были запросы, чтобы отловить "кривой".

[IDS 9.x - Unix]

Заранее спасибо

переменная окружения SQLIDEBUG и утилита sqliprint.
http://tinyurl.com/4y8st
http://tinyurl.com/5zdr7
...
Рейтинг: 0 / 0
Sql логи
    #34776062
vvg16
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Выбегалло
переменная окружения SQLIDEBUG и утилита sqliprint.


2 вопроса:
1. Такую возможность дает Client-SDK ?
2. Где создается output, на стороне клиента или на стороне сервера?
...
Рейтинг: 0 / 0
Sql логи
    #34778261
Leonid Vorontsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если я ошибаюсь, пусть коллеги поправят.

> Такую возможность дает Client-SDK ?
Эта фишка не документирована, поэтому без гарантии - в каких-то версиях есть, в каких-то нет. Но думаю, что сама утилита распечатки логов (sqliprt.exe в Win32) подойдёт от любого комплекта.

> Где создается output?
Если эту переменную установить в окружении сервера, то там - для каждой сессии будет создан свой лог. Ну, а если на клиенте, то будет записано всё что делал это клиент.

По-моему, так...
...
Рейтинг: 0 / 0
Sql логи
    #34778698
Фотография Andron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Действительно, работает (проверил для окружения информикса). Создается отдельный лог для каждой сессии, если переменная выставлена для сервера.
...
Рейтинг: 0 / 0
Sql логи
    #34779257
Igor Zaiets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А че б не работало?
Если б кто еще парсер дал, что можно было вывести время выполнения для каждого запроса.
Скоко времени пошло на разбор, обработку запроса на сервере, скоко просто ожидали и т.п. - цены б человеку не было.

Может у кого есть?
Поделитесь.

В SDK 2.80 токо нет sqliprt
http://www-1.ibm.com/support/docview.wss?uid=swg21104625
...
Рейтинг: 0 / 0
Sql логи
    #34779429
Чемберлен
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Igor Zaiets
Если б кто еще парсер дал, что можно было вывести время выполнения для каждого запроса.
Скоко времени пошло на разбор, обработку запроса на сервере, скоко просто ожидали и т.п. - цены б человеку не было.

Для этого надо, чтобы сервер все это время учитывал, с микросикундной точностью. Oracle это делает сто лет как (с версии 7, наверное, уже время регистрировалось во многих случаях), а Informix 11 - только в начале доооолгого пути, мне кажется...
...
Рейтинг: 0 / 0
Sql логи
    #34779770
Фотография Andron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Насчет времени выполнения запроса - sqliprt ведь все это выводит и как раз с высокой точностью

вот лог сессии например


SQLIDBG Version 1

S->C (4) Time: 2007-09-05 17:00:28.16555
SQ_INTERNALVER
Internal Version Number: 316

C->S (14) Time: 2007-09-05 17:00:28.16557
SQ_PROTOCOLS
Cprotocol stream len = 7
byte[0] = ff
byte[1] = fe
byte[2] = df
byte[3] = fe
byte[4] = 74
byte[5] = aa
byte[6] = 60
SQ_EOT

S->C (14) Time: 2007-09-05 17:00:28.16567
SQ_PROTOCOLS
Sprotocol stream len = 7
byte[0] = bd
byte[1] = be
byte[2] = 9f
byte[3] = fe
byte[4] = 7f
byte[5] = b7
byte[6] = fc
SQ_EOT

C->S (232) Time: 2007-09-05 17:00:28.16589
SQ_INFO
INFO_ENV
Name Length = 12
Value Length = 96
"DBTEMP"="/tmp"
"SHELL"="/usr/bin/ksh"
"TZ"="MSK-3MSD,M3.5.0,M10.5.0/3"
"SUBQCACHESZ"="10"
"DBPATH"="."
"PATH"="/informix/infx11uc1/bin:/usr/bin:/etc:/usr/sbin:/usr/ucb:/home/informix/bin:/usr/bin/X11:/sbin:."
"NODEFDAC"="no"
INFO_DONE
SQ_EOT

S->C (2) Time: 2007-09-05 17:00:28.16603
SQ_EOT

C->S (8) Time: 2007-09-05 17:00:28.16605
SQ_CONNECT

C->S (32) Time: 2007-09-05 17:00:28.16609
SQ_PREPARE
# values: 0
CMD.....: "Database 'sysmaster'" [20]
SQ_NDESCRIBE
SQ_WANTDONE
SQ_EOT

S->C (46) Time: 2007-09-05 17:00:28.16626
SQ_DESCRIBE
Stmt Type...........: 1
Server Stmt Id......: 0
Estimated Cost......: 0
Size of output tuple: 0
# output fields.....: 0
Size of string table: 0
SQ_DONE
Warning..: 0x10
# rows...: 0
rowid....: 0
serial id: 0
SQ_COST
estimated #rows: 1
estimated I/O..: 1
SQ_EOT

C->S (8) Time: 2007-09-05 17:00:28.16629
SQ_ID
0
SQ_EXECUTE
SQ_EOT

S->C (28) Time: 2007-09-05 17:00:28.16773
SQ_DONE
Warning..: 0x15
# rows...: 0
rowid....: 0
serial id: 0
SQ_COST
estimated #rows: 1
estimated I/O..: 1
SQ_EOT

C->S (34) Time: 2007-09-05 17:00:35.18695
SQ_PREPARE
# values: 0
CMD.....: "select * from sysusers" [22]
SQ_NDESCRIBE
SQ_WANTDONE
SQ_EOT

S->C (160) Time: 2007-09-05 17:00:35.19054
SQ_DESCRIBE
Stmt Type...........: 2
Server Stmt Id......: 0
Estimated Cost......: 0
Size of output tuple: 83
# output fields.....: 5
Size of string table: 44
0) Field 'username'
Index into string table: 0
Starting offset in tuple: 0
Type....................: CHAR; NULLABLE
Length : 32 (0x20)

1) Field 'usertype'
Index into string table: 9
Starting offset in tuple: 32
Type....................: CHAR; NULLABLE
Length : 1 (0x1)

2) Field 'priority'
Index into string table: 18
Starting offset in tuple: 33
Type....................: SMALLINT; NULLABLE
Length : 2 (0x2)

3) Field 'password'
Index into string table: 27
Starting offset in tuple: 35
Type....................: CHAR; NULLABLE
Length : 16 (0x10)

4) Field 'defrole'
Index into string table: 36
Starting offset in tuple: 51
Type....................: CHAR; NULLABLE
Length : 32 (0x20)
SQ_DONE
Warning..: 0x0
# rows...: 0
rowid....: 0
serial id: 0
SQ_COST
estimated #rows: 2
estimated I/O..: 2
SQ_EOT

C->S (20) Time: 2007-09-05 17:00:35.19062
SQ_ID
0
SQ_CURNAME
"slctcur" [7]
SQ_OPEN
SQ_EOT

S->C (2) Time: 2007-09-05 17:00:35.19075
SQ_EOT

C->S (12) Time: 2007-09-05 17:00:35.19082
SQ_ID
0
SQ_NFETCH
Tuple buffer size: 4096
Fetch Array size: 0
SQ_EOT

S->C (212) Time: 2007-09-05 17:00:35.19102
SQ_TUPLE
# Warnings..: 0
Tuple length: 83
SQ_TUPLE
# Warnings..: 0
Tuple length: 83
SQ_DONE
Warning..: 0x0
# rows...: 2
rowid....: 514
serial id: 0
SQ_COST
estimated #rows: 2
estimated I/O..: 2
SQ_EOT

C->S (8) Time: 2007-09-05 17:00:35.19166
SQ_ID
0
SQ_CLOSE
SQ_EOT

S->C (2) Time: 2007-09-05 17:00:35.19193
SQ_EOT

C->S (8) Time: 2007-09-05 17:00:35.19195
SQ_ID
0
SQ_RELEASE
SQ_EOT

S->C (2) Time: 2007-09-05 17:00:35.19204
SQ_EOT



точность тут как раз сто тысячные доли секунд ?
...
Рейтинг: 0 / 0
Sql логи
    #34779787
Фотография Andron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Offtop
Куда там Ораклу до Информикса с такой точностью
Сорри не удержался
...
Рейтинг: 0 / 0
Sql логи
    #34779838
Чемберлен
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AndronOfftop
Куда там Ораклу до Информикса с такой точностью
Сорри не удержался

Туда ему, , например:

"ela Elapsed time. 8i: in 1/1000th of a second, 9i: 1/1'000'000th of a second
tim Timestamp. Pre-Oracle9i, the times recorded by Oracle only have a resolution of 1/100th of a second (10mS). As of Oracle9i some times are available to microsecond accuracy (1/1,000,000th of a second). The timestamp can be used to determine times between points in the trace file. The value is the value in v$timer when the line was written. If there are TIMESTAMPS in the file you can use the difference between 'tim' values to determine an absolute time."

Давно уже речь идет о милионных долях секунды, и в них же меряется почти любое ожидание в любом практически месте кода сервера.
...
Рейтинг: 0 / 0
Sql логи
    #34779858
Фотография Andron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не представляю где на практике анализа запросов DBA может потребоваться точность в стотысячные а тем более в милионные доли секунд.
...
Рейтинг: 0 / 0
Sql логи
    #34779899
Чемберлен
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AndronНе представляю где на практике анализа запросов DBA может потребоваться точность в стотысячные а тем более в милионные доли секунд.

Для отдельного запроса выполненного один раз это не нужно (вот почему и сотых обычно раньше хватало). Но если данные суммируются (миллион раз ждали при выполнении доступа к определенной таблице, недолго...), точность отдельного измерения имеет значение.

Суть даже не в этом. Регистрируется время выполнения каждого шага (и каждое ожидание) в коде сервера. И это можно зарегистрировать в журнале хоть для всех сеансов сервера, хоть для отдельного оператора (!), а потом - отключить регистрацию, программно, и продолжить выполнять другие операторы в сеансе. Вот именно в этом, мне, неосведомленному, кажется, Информиксу еще далеко до Oracle 7 выпуска 1993 или какого там года.

Но IBM знает толк в инструментировании кода, так что, со временем все будет...
...
Рейтинг: 0 / 0
Sql логи
    #34780024
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AndronНе представляю где на практике анализа запросов DBA может потребоваться точность в стотысячные а тем более в милионные доли секунд.В трассировке оракла видны например ожидания чтения страницы (т.е. какой сегмент какую страницу какого спейса), латча, и т.д.

И там два времени есть, одно сколько фактических микросек. работала функция чтения), другое реальный таймштамп, это позволяет вычислить "неучтенное время (unaccounted-for)", например своппинг. Т.е. в трассировке информикса ты будешь видеть что запрос выполнялся 10 мин, но на самом-то деле он выполнялся 5 мин, еще 4-е минуты свопились и одну минуту выполняли запросы других сессий.


Для вычисления фактического времени используются системные вызовы, операционка считает сколько микросек. было отдано процессу/треду.
...
Рейтинг: 0 / 0
20 сообщений из 20, страница 1 из 1
Форумы / Informix [игнор отключен] [закрыт для гостей] / Sql логи
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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