Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Sql логи
|
|||
|---|---|---|---|
|
#18+
Доброго дня. Не подскажите, можно ли как-нибудь просмотреть информацию по sql-запросам, которые выполнялись в определнный промежуток времени? Просто возникает такая ситуация, когда базу начинает "колбасить" от запроса, а что за запрос, какой клиент его отослал, не понятно. Можно использовать onstat -g [sql:ses:stm], но, на сколько я понял, это все в режиме online. А хотелось бы так: вводишь необходимый интервал и смотришь, какие были запросы, чтобы отловить "кривой". [IDS 9.x - Unix] Заранее спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2007, 12:23 |
|
||
|
Sql логи
|
|||
|---|---|---|---|
|
#18+
Могу порекомендовать триггер на select ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2007, 16:13 |
|
||
|
Sql логи
|
|||
|---|---|---|---|
|
#18+
vvg16Могу порекомендовать триггер на select Ммм, не совсем понял. Триггер на select - это как? И куда его вешать? Ведь триггеры вешаются только на insert-update-delete и причем только на таблицы, никаких view и т.п. А если выборка идет как раз по вьюхе. Или я чего-то не понял? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2007, 16:52 |
|
||
|
Sql логи
|
|||
|---|---|---|---|
|
#18+
vvg16Могу порекомендовать триггер на select Если человек даже своих тяжелых запросов не знает, то что же ему, на все таблицы в базе триггера вешать ? Упаси Бог. Так как версия сервера неизвестна, то посмотрите этот док (кажется 8-я глава). Может поможет. /topic/445776&pg=-1&hl=sql+query#4359168]IBM А также поиском по форуму посмотреть подобные вопросы - они уже не раз возникали. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2007, 17:07 |
|
||
|
Sql логи
|
|||
|---|---|---|---|
|
#18+
vasilisЕсли человек даже своих тяжелых запросов не знает, то что же ему, на все таблицы в базе триггера вешать ? Упаси Бог. Так и подмывает сказать: "Ах Василий, какой Вы ах...ый" ((с) не помню откуда). Покажите, пожалуйста, если кочено Вы сможете, то место в моем посте, где я упомянул, что запросы МОИ (а т.к. я заранее знаю, что не сможете, то могу порекомендовать отличного оккулиста), и заодно не подскажите (так, для общего развития), как вешаются триггера на select? vasilisТак как версия сервера неизвестна... TarasBul[IDS 9.x - Unix], или необходима полная версия? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2007, 17:25 |
|
||
|
Sql логи
|
|||
|---|---|---|---|
|
#18+
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 очень сильно отличаются по функционалу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2007, 18:46 |
|
||
|
Sql логи
|
|||
|---|---|---|---|
|
#18+
Извините, что сразу не ответил. Был занят. vasilis Так как версия сервера неизвестна, то посмотрите этот док (кажется 8-я глава). Этот документ, к сожалению называется Код: plaintext 1. 2. 3. 4. Как мне помнится, автор просил помощи по девятке. Поэтому было предложено создать триггер. Однако, триггер на селект из view действительно пока отсутствует. В качестве дополнительной альтернативы могу предложить использовать команду cron для наблюдения за запросами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2007, 17:26 |
|
||
|
Sql логи
|
|||
|---|---|---|---|
|
#18+
TarasBul А хотелось бы так: вводишь необходимый интервал и смотришь, какие были запросы, чтобы отловить "кривой". [IDS 9.x - Unix] Заранее спасибо В 9 версии такое вряд ли можно сделать, только если использовать для клиентов некий промежуточный прокси (может помочь Informix I-Spy, но это отдельный продукт), или как выше написали сделать некий скрипт, который бы через промежутки времени смотрел все запросы и писал их в текстовый файл. Что еще может помочь? Ну например включение трассировки запросов на уровне клиентских приложений , если такое возможно в вашем случае. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2007, 08:56 |
|
||
|
Sql логи
|
|||
|---|---|---|---|
|
#18+
TarasBulДоброго дня. Не подскажите, можно ли как-нибудь просмотреть информацию по sql-запросам, которые выполнялись в определнный промежуток времени? Просто возникает такая ситуация, когда базу начинает "колбасить" от запроса, а что за запрос, какой клиент его отослал, не понятно. Можно использовать onstat -g [sql:ses:stm], но, на сколько я понял, это все в режиме online. А хотелось бы так: вводишь необходимый интервал и смотришь, какие были запросы, чтобы отловить "кривой". [IDS 9.x - Unix] Заранее спасибо переменная окружения SQLIDEBUG и утилита sqliprint. http://tinyurl.com/4y8st http://tinyurl.com/5zdr7 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2007, 21:03 |
|
||
|
Sql логи
|
|||
|---|---|---|---|
|
#18+
Выбегалло переменная окружения SQLIDEBUG и утилита sqliprint. 2 вопроса: 1. Такую возможность дает Client-SDK ? 2. Где создается output, на стороне клиента или на стороне сервера? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2007, 23:46 |
|
||
|
Sql логи
|
|||
|---|---|---|---|
|
#18+
Если я ошибаюсь, пусть коллеги поправят. > Такую возможность дает Client-SDK ? Эта фишка не документирована, поэтому без гарантии - в каких-то версиях есть, в каких-то нет. Но думаю, что сама утилита распечатки логов (sqliprt.exe в Win32) подойдёт от любого комплекта. > Где создается output? Если эту переменную установить в окружении сервера, то там - для каждой сессии будет создан свой лог. Ну, а если на клиенте, то будет записано всё что делал это клиент. По-моему, так... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2007, 15:55 |
|
||
|
Sql логи
|
|||
|---|---|---|---|
|
#18+
Действительно, работает (проверил для окружения информикса). Создается отдельный лог для каждой сессии, если переменная выставлена для сервера. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2007, 17:20 |
|
||
|
Sql логи
|
|||
|---|---|---|---|
|
#18+
А че б не работало? Если б кто еще парсер дал, что можно было вывести время выполнения для каждого запроса. Скоко времени пошло на разбор, обработку запроса на сервере, скоко просто ожидали и т.п. - цены б человеку не было. Может у кого есть? Поделитесь. В SDK 2.80 токо нет sqliprt http://www-1.ibm.com/support/docview.wss?uid=swg21104625 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2007, 19:39 |
|
||
|
Sql логи
|
|||
|---|---|---|---|
|
#18+
Igor Zaiets Если б кто еще парсер дал, что можно было вывести время выполнения для каждого запроса. Скоко времени пошло на разбор, обработку запроса на сервере, скоко просто ожидали и т.п. - цены б человеку не было. Для этого надо, чтобы сервер все это время учитывал, с микросикундной точностью. Oracle это делает сто лет как (с версии 7, наверное, уже время регистрировалось во многих случаях), а Informix 11 - только в начале доооолгого пути, мне кажется... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2007, 22:39 |
|
||
|
Sql логи
|
|||
|---|---|---|---|
|
#18+
Насчет времени выполнения запроса - 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 точность тут как раз сто тысячные доли секунд ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2007, 08:48 |
|
||
|
Sql логи
|
|||
|---|---|---|---|
|
#18+
Offtop Куда там Ораклу до Информикса с такой точностью Сорри не удержался ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2007, 08:57 |
|
||
|
Sql логи
|
|||
|---|---|---|---|
|
#18+
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." Давно уже речь идет о милионных долях секунды, и в них же меряется почти любое ожидание в любом практически месте кода сервера. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2007, 09:30 |
|
||
|
Sql логи
|
|||
|---|---|---|---|
|
#18+
Не представляю где на практике анализа запросов DBA может потребоваться точность в стотысячные а тем более в милионные доли секунд. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2007, 09:39 |
|
||
|
Sql логи
|
|||
|---|---|---|---|
|
#18+
AndronНе представляю где на практике анализа запросов DBA может потребоваться точность в стотысячные а тем более в милионные доли секунд. Для отдельного запроса выполненного один раз это не нужно (вот почему и сотых обычно раньше хватало). Но если данные суммируются (миллион раз ждали при выполнении доступа к определенной таблице, недолго...), точность отдельного измерения имеет значение. Суть даже не в этом. Регистрируется время выполнения каждого шага (и каждое ожидание) в коде сервера. И это можно зарегистрировать в журнале хоть для всех сеансов сервера, хоть для отдельного оператора (!), а потом - отключить регистрацию, программно, и продолжить выполнять другие операторы в сеансе. Вот именно в этом, мне, неосведомленному, кажется, Информиксу еще далеко до Oracle 7 выпуска 1993 или какого там года. Но IBM знает толк в инструментировании кода, так что, со временем все будет... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2007, 09:59 |
|
||
|
Sql логи
|
|||
|---|---|---|---|
|
#18+
AndronНе представляю где на практике анализа запросов DBA может потребоваться точность в стотысячные а тем более в милионные доли секунд.В трассировке оракла видны например ожидания чтения страницы (т.е. какой сегмент какую страницу какого спейса), латча, и т.д. И там два времени есть, одно сколько фактических микросек. работала функция чтения), другое реальный таймштамп, это позволяет вычислить "неучтенное время (unaccounted-for)", например своппинг. Т.е. в трассировке информикса ты будешь видеть что запрос выполнялся 10 мин, но на самом-то деле он выполнялся 5 мин, еще 4-е минуты свопились и одну минуту выполняли запросы других сессий. Для вычисления фактического времени используются системные вызовы, операционка считает сколько микросек. было отдано процессу/треду. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2007, 10:39 |
|
||
|
|

start [/forum/topic.php?fid=44&msg=34775926&tid=1608313]: |
0ms |
get settings: |
10ms |
get forum list: |
18ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
65ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
59ms |
get tp. blocked users: |
1ms |
| others: | 250ms |
| total: | 425ms |

| 0 / 0 |
