Activating query tracing for all users

Sometimes when you are tracking performance (or other) problems, you may want to activate the long running query tracing for all users. Here is a little job that will do that. Beware: you have to activate trace settings on your AOS server, unless most of the queries will not be caught.

static void Set_SQLTrace_AllUsers(Args _args)
{
    #LOCALMACRO.FLAG_SQLTrace                    (1 << 8) #ENDMACRO
    #LOCALMACRO.FLAG_TraceInfoQueryTable         (1 << 11) #ENDMACRO

    boolean     set;
    UserInfo    userInfo;
    ;

    set = true;
    ttsbegin;
    while select forupdate userinfo
    {
        userinfo.querytimeLimit = 1000;
        if (set)
        {
            userInfo.DebugInfo  = userInfo.DebugInfo | #FLAG_SQLTrace;
            userInfo.TraceInfo = userInfo.TraceInfo | #FLAG_TraceInfoQueryTable;
        }
        else
        {
            userInfo.DebugInfo  = userInfo.DebugInfo ^ #FLAG_SQLTrace;
            userInfo.TraceInfo = userInfo.TraceInfo ^ #FLAG_TraceInfoQueryTable;
       }

        userinfo.update();
    }
    ttscommit;
}

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.