powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Правильность dbcc sqltext(spid) ?
20 сообщений из 20, страница 1 из 1
Правильность dbcc sqltext(spid) ?
    #35225746
Гость123456
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Для получения запросов, которые выполняются процессами использую:

dbcc traceon(3604)
go
dbcc sqltext(spid)
go
dbcc traceoff(3604)
go

Один знакомый сказал мне, что если процес имеет
status - recv sleep
command - AWAITING COMMAND

то данные sqltext могут быть неправильными, что они правильные только для выполняющихся
процессов.
Прав ли он?
...
Рейтинг: 0 / 0
Правильность dbcc sqltext(spid) ?
    #35225877
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гость123456 пишет:

> Один знакомый сказал мне, что если процес имеет
> status - recv sleep
> command - AWAITING COMMAND
>
> то данные sqltext могут быть неправильными, что они правильные только
> для выполняющихся
> процессов.
> Прав ли он?

Точно не знаю, но вполне может быть. Т.е. что там сохраняется последний
выполненный через соединение запрос.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Правильность dbcc sqltext(spid) ?
    #35226308
Peter Kirillow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
действительно sqltext не самый лучший способ мониторить выполняемые запросы и анализировать историю.
правильнее делать это с использованием MDA Tables.
http://www.sypron.nl/mda.html
...
Рейтинг: 0 / 0
Правильность dbcc sqltext(spid) ?
    #35227345
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Peter Kirillow пишет:
> действительно sqltext не самый лучший способ мониторить выполняемые
> запросы и анализировать историю.
> правильнее делать это с использованием MDA Tables.

Так это - то же самое. Только пропущенное через Monitor server.
Ну да, доступ может удобнее, но по сути -- то же самое, те же каунтеры
ASE.

Другое дело - аудит, это принципиально другое средство.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Правильность dbcc sqltext(spid) ?
    #35227367
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv
Peter Kirillow пишет:
> действительно sqltext не самый лучший способ мониторить выполняемые
> запросы и анализировать историю.
> правильнее делать это с использованием MDA Tables.

Так это - то же самое. Только пропущенное через Monitor server.
Ну да, доступ может удобнее, но по сути -- то же самое, те же каунтеры
ASE.

Другое дело - аудит, это принципиально другое средство.
Posted via ActualForum NNTP Server 1.4

MDA таблицы и Monitor сервер - это разные вещи
...
Рейтинг: 0 / 0
Правильность dbcc sqltext(spid) ?
    #35227381
up
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv
Peter Kirillow пишет:
> действительно sqltext не самый лучший способ мониторить выполняемые
> запросы и анализировать историю.
> правильнее делать это с использованием MDA Tables.

Так это - то же самое. Только пропущенное через Monitor server.
Ну да, доступ может удобнее, но по сути -- то же самое, те же каунтеры
ASE.

Другое дело - аудит, это принципиально другое средство.
Posted via ActualForum NNTP Server 1.4

Не тоже самое. dbcc sqltext показывает только выполняющийся в текущий момент SQL. В MDA есть и аналогичная ифнормация (текущий SQL), а есть и его история.
...
Рейтинг: 0 / 0
Правильность dbcc sqltext(spid) ?
    #35227409
Фотография 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
...
Рейтинг: 0 / 0
Правильность dbcc sqltext(spid) ?
    #35227413
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
up пишет:

> Не тоже самое. dbcc sqltext показывает только выполняющийся в текущий
> момент SQL. В MDA есть и аналогичная ифнормация (текущий SQL), а есть и
> его история.

вы уверены ? Тогда можно поподробнее ...
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Правильность dbcc sqltext(spid) ?
    #35228252
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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" ?
может я чего не понимаю? просвятите, плз
...
Рейтинг: 0 / 0
Правильность dbcc sqltext(spid) ?
    #35228327
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
komrad пишет:

> где в приведенном скрипте явно видно, что MDA таблицы это "proxy-таблицы

> create existing table monProcessSQLText (

> на удаленные процедуры Monitor Server" ?

> external procedure
> at "@SERVER@...$monProcessSQLText"
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Правильность dbcc sqltext(spid) ?
    #35228371
Peter Kirillow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да, это действительно прокси таблицы
они "stateful", т.е. запоминают, что из них было прочитано и каждый раз показывают всегда только новые записи. управлять размером буфера можно через sp_configure. на сайте Верчура приведен пример как можно "коллектить" данные из них в уже постоянные таблицы. это незаменимый функционал, которым стоит пользоваться.
...
Рейтинг: 0 / 0
Правильность dbcc sqltext(spid) ?
    #35229418
up
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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 - планы)
...
Рейтинг: 0 / 0
Правильность dbcc sqltext(spid) ?
    #35229634
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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 в заблуждние чуть не ввел
...
Рейтинг: 0 / 0
Правильность dbcc sqltext(spid) ?
    #35232577
Гость 123456
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день. Спасибо за ответы.

Решил попробовать работать с MDA Tables.
После установки появились несколько вопросов.
1) Где собственно физически хранится информация MDA таблиц, возможно ли их переполнение?
Насколько я понял в оперативной памяти выделеной под сервак?

2) В monSysSQLText хранятся все запросы, которые передавались серверу на выполнение с момента преведущего запроса к этой таблице, при просмотре monSysSQLText просмотренные данные теряются. Можна ли както это предотвратить при условии что максимальное количество строк в таблице monSysSQLText ещё не достигнуто.

3) Чем посоветуете пользоватся для мониторинга выполненых sql-запросов? Насколько я понял лучшим решением считается MDA, так как данный способ быстрее (не нужно создавать дополнительно 2 БД(аудита и архивную).

Подскажите пожалуйста.
...
Рейтинг: 0 / 0
Правильность dbcc sqltext(spid) ?
    #35232788
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гость 123456Добрый день. Спасибо за ответы.

Решил попробовать работать с MDA Tables.
После установки появились несколько вопросов.
1) Где собственно физически хранится информация MDA таблиц, возможно ли их переполнение?
Насколько я понял в оперативной памяти выделеной под сервак?

физически - в пределах железки, на которой крутится СУБД
ага

Гость 123456
2) В monSysSQLText хранятся все запросы, которые передавались серверу на выполнение с момента преведущего запроса к этой таблице, при просмотре monSysSQLText просмотренные данные теряются. Можна ли както это предотвратить при условии что максимальное количество строк в таблице monSysSQLText ещё не достигнуто.

данные можно сливать в другую таблицу для последующего анализа

Гость 123456
3) Чем посоветуете пользоватся для мониторинга выполненых sql-запросов? Насколько я понял лучшим решением считается MDA, так как данный способ быстрее (не нужно создавать дополнительно 2 БД(аудита и архивную).
Подскажите пожалуйста.
mda-таблицы
...
Рейтинг: 0 / 0
Правильность dbcc sqltext(spid) ?
    #35232949
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гость 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
...
Рейтинг: 0 / 0
Правильность dbcc sqltext(spid) ?
    #35233265
Гость 123456
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv пишет:

>> 2) В monSysSQLText хранятся все запросы, которые передавались серверу на
>> выполнение с момента преведущего запроса к этой таблице, при просмотре
>> monSysSQLText просмотренные данные теряются.

>Чего ? Там по идее должен храниться один текущий запрос на каждый коннект.
>или нет ?

Один текущий запрос на каждый коннект сохраняется в таблице monProcessSQLText.
А в таблице monSysSQLText хранятся все запросы, которые выполнялися сервером, пока их количество не прывышает лимит записей для таблици(после чего самые старые записи удаляются для освобождения места для новых), или пока не будет сделан запрос на получение этих данных, после чего monSysSQLText очищается.
...
Рейтинг: 0 / 0
Правильность dbcc sqltext(spid) ?
    #35233474
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv
Гость 123456 пишет:

> После установки появились несколько вопросов.
> 1) Где собственно физически хранится информация MDA таблиц, возможно ли
> их переполнение?

Это- performance counter-ы сервера, они же используются в sp_sysmon
и подобных средствах. Храняться они в памяти ASE и, кстати, в
частности sp_sysmon на старте интервала их сбрасывает. Могут
также поступать и другие аналогичные средства.



у sp_sysmon с версии 12.5.3 появился параметр noclear
например:
Код: plaintext
sp_sysmon '00:01:00', noclear
...
Рейтинг: 0 / 0
Правильность dbcc sqltext(spid) ?
    #35234208
Гость 123456
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Установил аудит.

Задал аудируемые события
sp_audit "cmdtext","sa","all","on"

Все работает нормально, но смущают 2 вещи.
1) На каждый полезный select в таблицу аудита записывается по пять
use db_name
set rowcount xxx
Можна ли както задать чтобы в таблицу аудита писались только select'ы, а то в доке не описано, а метод научного тыка ни к чему харошему не привел ?

2) В самих запросах местами отображаются какието квадратики(\x0d\x0a\x09\x09\x09\x09).
Насколько я понял чтото с кодировкой. Только что, как можна поправить?

Заранее спасибо за ответы.
...
Рейтинг: 0 / 0
Правильность dbcc sqltext(spid) ?
    #35234294
up
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гость 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. ...
...
Рейтинг: 0 / 0
20 сообщений из 20, страница 1 из 1
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Правильность dbcc sqltext(spid) ?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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