|
|
|
Правильность dbcc sqltext(spid) ?
|
|||
|---|---|---|---|
|
#18+
Для получения запросов, которые выполняются процессами использую: dbcc traceon(3604) go dbcc sqltext(spid) go dbcc traceoff(3604) go Один знакомый сказал мне, что если процес имеет status - recv sleep command - AWAITING COMMAND то данные sqltext могут быть неправильными, что они правильные только для выполняющихся процессов. Прав ли он? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2008, 20:11 |
|
||
|
Правильность dbcc sqltext(spid) ?
|
|||
|---|---|---|---|
|
#18+
Гость123456 пишет: > Один знакомый сказал мне, что если процес имеет > status - recv sleep > command - AWAITING COMMAND > > то данные sqltext могут быть неправильными, что они правильные только > для выполняющихся > процессов. > Прав ли он? Точно не знаю, но вполне может быть. Т.е. что там сохраняется последний выполненный через соединение запрос. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2008, 21:40 |
|
||
|
Правильность dbcc sqltext(spid) ?
|
|||
|---|---|---|---|
|
#18+
действительно sqltext не самый лучший способ мониторить выполняемые запросы и анализировать историю. правильнее делать это с использованием MDA Tables. http://www.sypron.nl/mda.html ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2008, 09:53 |
|
||
|
Правильность dbcc sqltext(spid) ?
|
|||
|---|---|---|---|
|
#18+
Peter Kirillow пишет: > действительно sqltext не самый лучший способ мониторить выполняемые > запросы и анализировать историю. > правильнее делать это с использованием MDA Tables. Так это - то же самое. Только пропущенное через Monitor server. Ну да, доступ может удобнее, но по сути -- то же самое, те же каунтеры ASE. Другое дело - аудит, это принципиально другое средство. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2008, 14:23 |
|
||
|
Правильность dbcc sqltext(spid) ?
|
|||
|---|---|---|---|
|
#18+
MasterZiv Peter Kirillow пишет: > действительно sqltext не самый лучший способ мониторить выполняемые > запросы и анализировать историю. > правильнее делать это с использованием MDA Tables. Так это - то же самое. Только пропущенное через Monitor server. Ну да, доступ может удобнее, но по сути -- то же самое, те же каунтеры ASE. Другое дело - аудит, это принципиально другое средство. Posted via ActualForum NNTP Server 1.4 MDA таблицы и Monitor сервер - это разные вещи ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2008, 14:29 |
|
||
|
Правильность dbcc sqltext(spid) ?
|
|||
|---|---|---|---|
|
#18+
MasterZiv Peter Kirillow пишет: > действительно sqltext не самый лучший способ мониторить выполняемые > запросы и анализировать историю. > правильнее делать это с использованием MDA Tables. Так это - то же самое. Только пропущенное через Monitor server. Ну да, доступ может удобнее, но по сути -- то же самое, те же каунтеры ASE. Другое дело - аудит, это принципиально другое средство. Posted via ActualForum NNTP Server 1.4 Не тоже самое. dbcc sqltext показывает только выполняющийся в текущий момент SQL. В MDA есть и аналогичная ифнормация (текущий SQL), а есть и его история. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2008, 14:31 |
|
||
|
Правильность dbcc sqltext(spid) ?
|
|||
|---|---|---|---|
|
#18+
komrad пишет: > MDA таблицы и Monitor сервер - это разные вещи это - proxy-таблицы на удаленные процедуры Monitor Server. ( из \sybase\ASE-15_0\scripts\installmontables ) /* ** monProcessSQLText definition */ if (exists (select * from sysobjects where name = 'monProcessSQLText' and type = 'U')) drop table monProcessSQLText go print "Creating monProcessSQLText" go create existing table monProcessSQLText ( SPID smallint, KPID int, ServerUserID int, BatchID int, LineNumber int, SequenceInLine int, SQLText varchar(255) NULL, ) external procedure at "@SERVER@...$monProcessSQLText" go grant select on monProcessSQLText to mon_role go Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2008, 14:40 |
|
||
|
Правильность dbcc sqltext(spid) ?
|
|||
|---|---|---|---|
|
#18+
up пишет: > Не тоже самое. dbcc sqltext показывает только выполняющийся в текущий > момент SQL. В MDA есть и аналогичная ифнормация (текущий SQL), а есть и > его история. вы уверены ? Тогда можно поподробнее ... Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2008, 14:40 |
|
||
|
Правильность dbcc sqltext(spid) ?
|
|||
|---|---|---|---|
|
#18+
MasterZiv komrad пишет: > MDA таблицы и Monitor сервер - это разные вещи это - proxy-таблицы на удаленные процедуры Monitor Server. ( из \sybase\ASE-15_0\scripts\installmontables ) /* ** monProcessSQLText definition */ if (exists (select * from sysobjects where name = 'monProcessSQLText' and type = 'U')) drop table monProcessSQLText go print "Creating monProcessSQLText" go create existing table monProcessSQLText ( SPID smallint, KPID int, ServerUserID int, BatchID int, LineNumber int, SequenceInLine int, SQLText varchar(255) NULL, ) external procedure at "@SERVER@...$monProcessSQLText" go grant select on monProcessSQLText to mon_role go Posted via ActualForum NNTP Server 1.4 где в приведенном скрипте явно видно, что MDA таблицы это "proxy-таблицы на удаленные процедуры Monitor Server" ? может я чего не понимаю? просвятите, плз ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2008, 18:39 |
|
||
|
Правильность dbcc sqltext(spid) ?
|
|||
|---|---|---|---|
|
#18+
komrad пишет: > где в приведенном скрипте явно видно, что MDA таблицы это "proxy-таблицы > create existing table monProcessSQLText ( > на удаленные процедуры Monitor Server" ? > external procedure > at "@SERVER@...$monProcessSQLText" Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2008, 19:04 |
|
||
|
Правильность dbcc sqltext(spid) ?
|
|||
|---|---|---|---|
|
#18+
да, это действительно прокси таблицы они "stateful", т.е. запоминают, что из них было прочитано и каждый раз показывают всегда только новые записи. управлять размером буфера можно через sp_configure. на сайте Верчура приведен пример как можно "коллектить" данные из них в уже постоянные таблицы. это незаменимый функционал, которым стоит пользоваться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2008, 19:32 |
|
||
|
Правильность dbcc sqltext(spid) ?
|
|||
|---|---|---|---|
|
#18+
MDA таблицы - это представление внутренних счётчиков ASE в виде таблиц (например, то что раньше смотрелось только через sp_sysmon можно теперь в MDA selectом смотреть). До 15-й версии ASE они были реализованы как прокси-таблицы к САМОМУ себе (для обвёртки rpc вызова). В 15.0.2 переделали так, что внешний коннект (опять же к самому себе) уже не используется, т.е. rpc вызов делается внутри сервера : http://search.sybase.com/kbx/changerequests?bug_id=408212 По поводу истории: monProcessSQLText - текущий monSysSQLText - с историей (monSysPlanText - планы) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2008, 12:17 |
|
||
|
Правильность dbcc sqltext(spid) ?
|
|||
|---|---|---|---|
|
#18+
upMDA таблицы - это представление внутренних счётчиков ASE в виде таблиц (например, то что раньше смотрелось только через sp_sysmon можно теперь в MDA selectом смотреть). До 15-й версии ASE они были реализованы как прокси-таблицы к САМОМУ себе (для обвёртки rpc вызова). В 15.0.2 переделали так, что внешний коннект (опять же к самому себе) уже не используется, т.е. rpc вызов делается внутри сервера : http://search.sybase.com/kbx/changerequests?bug_id=408212 По поводу истории: monProcessSQLText - текущий monSysSQLText - с историей (monSysPlanText - планы) up, спасибо за инфу! чувствую где-то подвох ;) "ложки нет" - не участвует тут monitor server, MasterZiv в заблуждние чуть не ввел ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2008, 13:00 |
|
||
|
Правильность dbcc sqltext(spid) ?
|
|||
|---|---|---|---|
|
#18+
Добрый день. Спасибо за ответы. Решил попробовать работать с MDA Tables. После установки появились несколько вопросов. 1) Где собственно физически хранится информация MDA таблиц, возможно ли их переполнение? Насколько я понял в оперативной памяти выделеной под сервак? 2) В monSysSQLText хранятся все запросы, которые передавались серверу на выполнение с момента преведущего запроса к этой таблице, при просмотре monSysSQLText просмотренные данные теряются. Можна ли както это предотвратить при условии что максимальное количество строк в таблице monSysSQLText ещё не достигнуто. 3) Чем посоветуете пользоватся для мониторинга выполненых sql-запросов? Насколько я понял лучшим решением считается MDA, так как данный способ быстрее (не нужно создавать дополнительно 2 БД(аудита и архивную). Подскажите пожалуйста. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2008, 12:46 |
|
||
|
Правильность dbcc sqltext(spid) ?
|
|||
|---|---|---|---|
|
#18+
Гость 123456Добрый день. Спасибо за ответы. Решил попробовать работать с MDA Tables. После установки появились несколько вопросов. 1) Где собственно физически хранится информация MDA таблиц, возможно ли их переполнение? Насколько я понял в оперативной памяти выделеной под сервак? физически - в пределах железки, на которой крутится СУБД ага Гость 123456 2) В monSysSQLText хранятся все запросы, которые передавались серверу на выполнение с момента преведущего запроса к этой таблице, при просмотре monSysSQLText просмотренные данные теряются. Можна ли както это предотвратить при условии что максимальное количество строк в таблице monSysSQLText ещё не достигнуто. данные можно сливать в другую таблицу для последующего анализа Гость 123456 3) Чем посоветуете пользоватся для мониторинга выполненых sql-запросов? Насколько я понял лучшим решением считается MDA, так как данный способ быстрее (не нужно создавать дополнительно 2 БД(аудита и архивную). Подскажите пожалуйста. mda-таблицы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2008, 13:32 |
|
||
|
Правильность dbcc sqltext(spid) ?
|
|||
|---|---|---|---|
|
#18+
Гость 123456 пишет: > После установки появились несколько вопросов. > 1) Где собственно физически хранится информация MDA таблиц, возможно ли > их переполнение? Это- performance counter-ы сервера, они же используются в sp_sysmon и подобных средствах. Храняться они в памяти ASE и, кстати, в частности sp_sysmon на старте интервала их сбрасывает. Могут также поступать и другие аналогичные средства. > 2) В monSysSQLText хранятся все запросы, которые передавались серверу на > выполнение с момента преведущего запроса к этой таблице, при просмотре > monSysSQLText просмотренные данные теряются. Чего ? Там по идее должен храниться один текущий запрос на каждый коннект. или нет ? > 3) Чем посоветуете пользоватся для мониторинга выполненых sql-запросов? audit. Или MS + Historical server. Или клиентские средства. > Насколько я понял лучшим решением считается MDA, так как данный способ > быстрее (не нужно создавать дополнительно 2 БД(аудита и архивную). Ну если тебе его хватит, то наверное да, он лучший. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2008, 14:03 |
|
||
|
Правильность dbcc sqltext(spid) ?
|
|||
|---|---|---|---|
|
#18+
MasterZiv пишет: >> 2) В monSysSQLText хранятся все запросы, которые передавались серверу на >> выполнение с момента преведущего запроса к этой таблице, при просмотре >> monSysSQLText просмотренные данные теряются. >Чего ? Там по идее должен храниться один текущий запрос на каждый коннект. >или нет ? Один текущий запрос на каждый коннект сохраняется в таблице monProcessSQLText. А в таблице monSysSQLText хранятся все запросы, которые выполнялися сервером, пока их количество не прывышает лимит записей для таблици(после чего самые старые записи удаляются для освобождения места для новых), или пока не будет сделан запрос на получение этих данных, после чего monSysSQLText очищается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2008, 15:11 |
|
||
|
Правильность dbcc sqltext(spid) ?
|
|||
|---|---|---|---|
|
#18+
MasterZiv Гость 123456 пишет: > После установки появились несколько вопросов. > 1) Где собственно физически хранится информация MDA таблиц, возможно ли > их переполнение? Это- performance counter-ы сервера, они же используются в sp_sysmon и подобных средствах. Храняться они в памяти ASE и, кстати, в частности sp_sysmon на старте интервала их сбрасывает. Могут также поступать и другие аналогичные средства. у sp_sysmon с версии 12.5.3 появился параметр noclear например: Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2008, 16:02 |
|
||
|
Правильность dbcc sqltext(spid) ?
|
|||
|---|---|---|---|
|
#18+
Установил аудит. Задал аудируемые события sp_audit "cmdtext","sa","all","on" Все работает нормально, но смущают 2 вещи. 1) На каждый полезный select в таблицу аудита записывается по пять use db_name set rowcount xxx Можна ли както задать чтобы в таблицу аудита писались только select'ы, а то в доке не описано, а метод научного тыка ни к чему харошему не привел ? 2) В самих запросах местами отображаются какието квадратики(\x0d\x0a\x09\x09\x09\x09). Насколько я понял чтото с кодировкой. Только что, как можна поправить? Заранее спасибо за ответы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2008, 19:43 |
|
||
|
Правильность dbcc sqltext(spid) ?
|
|||
|---|---|---|---|
|
#18+
Гость 123456MasterZiv пишет: >> 2) В monSysSQLText хранятся все запросы, которые передавались серверу на >> выполнение с момента преведущего запроса к этой таблице, при просмотре >> monSysSQLText просмотренные данные теряются. >Чего ? Там по идее должен храниться один текущий запрос на каждый коннект. >или нет ? Один текущий запрос на каждый коннект сохраняется в таблице monProcessSQLText. А в таблице monSysSQLText хранятся все запросы, которые выполнялися сервером, пока их количество не прывышает лимит записей для таблици(после чего самые старые записи удаляются для освобождения места для новых), или пока не будет сделан запрос на получение этих данных, после чего monSysSQLText очищается. monSysSQLText не очищается. Нужно доку сначала бы почитать (да и упоминалось об этом выше также). В первом запросе к monSysSQLText будут возвращаться все записи, во втором - только новые. Если переконнектиться, то опять все в первом запросе и только ноые во втором и третьем. RTFM: Stateful historical monitoring tables A number of monitoring tables provide the most recent historical monitoring information rather than information about the current state. Adaptive Server maintains context for each client that accesses these tables and only returns information that the client has not previously returned. These “stateful” historical monitoring tables were designed to maximize performance and to avoid duplicate rows when used to populate a repository for historical data. The following stateful monitoring tables provide data that provides the most recent historical data rather than information about the current state of Adaptive Server: • monErrorLog • monDeadLock Stateful historical monitoring tables • monSysStatement • monSysSQLText • monSysPlanText You can identify stateful historical tables from their monTables.Indicators column: select TableName from monTables where Indicators & 1=1 The information returned from stateful historical tables is stored in buffers, one for each historical monitoring table. Use the sp_configure options to configure the size of the buffer and the information to be captured. ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2008, 20:39 |
|
||
|
|

start [/forum/topic.php?fid=55&msg=35227409&tid=2011644]: |
0ms |
get settings: |
9ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
420ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
36ms |
get tp. blocked users: |
1ms |
| others: | 227ms |
| total: | 728ms |

| 0 / 0 |
