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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

> create existing table monProcessSQLText (

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

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

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

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

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

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

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

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

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

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

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

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

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

Один текущий запрос на каждый коннект сохраняется в таблице monProcessSQLText.
А в таблице monSysSQLText хранятся все запросы, которые выполнялися сервером, пока их количество не прывышает лимит записей для таблици(после чего самые старые записи удаляются для освобождения места для новых), или пока не будет сделан запрос на получение этих данных, после чего monSysSQLText очищается.
...
Рейтинг: 0 / 0
03.04.2008, 16:02
    #35233474
komrad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Правильность dbcc sqltext(spid) ?
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
03.04.2008, 19:43
    #35234208
Гость 123456
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Правильность dbcc sqltext(spid) ?
Установил аудит.

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


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