Sybase ASE - Traçage des requêtes / processus
Si il y a tout de Sybase ASE experts là-bas, je me demandais si il existe un moyen d'obtenir Sybase pour tracer toutes les requêtes qu'il reçoit.
J'ai actuellement un programme en cours d'exécution qui, généralement, commence à afficher un comportement étrange après 7 heures de démarrage. Je voudrais savoir ce que Sybase est en train de faire en ce moment, afin que je puisse résoudre le problème.
Je suis à l'aide de Sybase ASE 15.5. Et mon serveur de surveillance ne démarre pas, pour une raison ou une autre.
OriginalL'auteur Jdcc | 2010-10-19
Vous devez vous connecter pour publier un commentaire.
Oui, il y a plusieurs façons de trace toutes les requêtes que Sybase reçoit.
Toutefois, compte tenu de la deuxième partie de votre question, ce que je comprends, vous avez besoin de (1) comprendre ce votre requête est en train de faire (2) moniteur votre active spid dans le contexte des autres actifs spid et ... si cela ne suffit pas, alors (3) surveiller le serveur; pas trace, et tous requêtes. Donc je vais aller dans que et de reporter de répondre re le traçage des éléments disponibles dans Sybase.
Votre connexion à l'ASE est un Id de Processus Serveur, ou spid.
SET SHOWPLAN et RÉGLEZ l'option NOEXEC, et
exécuter votre requête. Cela va donner
vous avez un très bon aperçu de ce que
votre SQL est en train de faire, en vertu de
le couvre. C'est un indispensable
exigence, quelque chose que chaque
développeur doit être familier avec,
et exigé avant l'essai. Chaque fois qu'il se sent comme votre requête est lent, vérifiez toujours l'I/O cours d'exécution: ENSEMBLE des STATISTIQUES IO.
sp_who; sp_lock; et regarder votre spid
tic-tac de plus, suspendu, en attente pour
serrures, bloqués, d'autres spid sont pour la tenir, etc. C'est le
set de base que chaque développeur
doit être à l'aide, tout le temps.
sp_sysmon moniteurs de la (toute)
serveur. Il peut être utilisé de deux façons:
un outil de surveillance, par exemple
prenez une heure complète de statistiques, qui est
la base pour la configuration du serveur
les changements; et, comme un instantané, par exemple. prenez
à 5 minutes de snapsot du serveur
lors de votre processus est en cours d'exécution et
quand il n'est pas, et d'examiner les
les différences. Généralement, c'est pour
connu Administrateurs de base de données, pas les développeurs, et vous avez besoin sa_role.
C'est dans les manuels, à la fois en ligne et en PDF.
Sept
heures est un temps très long, de sorte que vous
doit être l'aide d'un curseur ou similaire,
et le traitement des lignes simples plutôt
que jeux. Vérifier régulièrement tous les soirs des jobs batch (décharges, les statistiques de mise à jour, reorgs) pesant à 7 heures; certains d'entre eux occupent des verrous de table. Bien sûr, si le serveur est en cours d'exécution sur Windoze, toutes sortes de choses étranges, de fuites de mémoire vers le haut, est un standard; rebondir la boîte de chaque semaine, au moins.
Avec l'ordre de la charge de traitement, vous devriez garder un oeil sur votre journal des transactions et l'utilisation de la base de données tempdb.
Si ils sont stalemated, ils sont en attente d'une ressource, qui peuvent être facilement identifiés; ils ne seront pas "recv sommeil", ce qui signifie sommeil, en attendant de recevoir un paquet de la part du client. Vérifier l'ATTENTE de COMMANDE de colonne & sp_lock en. Ribo est une méthode de traçage; attention, les volumes de production. L'autre est de l'Audit. Les deux ont une configuration coût du travail, mais de l'Audit est configurable.
Yup, mon processus sont vraiment dans le recv sommeil" et "ATTENTE de COMMANDE" états. sp_lock ne pas montrer quoi que ce soit lié à mon processus. Je devine que mon client et du serveur d'attendre les uns des autres, plutôt que d'être bloqué par un verrou. Si il n'y a pas de suivi sur l'ASE client, alors je vais devoir surveiller ce que mon programme envoie au client, et le SQL de mon client envoie au serveur. Je vais donner la Vérification de l'essayer, comme il sonne comme il n'utilise pas un man-in-the-middle approche. Je ne savais pas que c'était configurable, merci pour cette info 🙂
J'ai posté un total débutant, et maintenant je me sens beaucoup mieux sur les manœuvres autour de Sybase. Merci à tous pour votre aide PerformanceDBA!
Ribo peut être plus facile pour vous alors. Le serveur (connexion, spid) est toujours dans un état "d'attente" pour les commandes du client, sauf lorsqu'il est actif (vous verrez états changement; pio et de l'uc augmente, etc). Le métier est donc accroché sur le côté client à 7pm (mon 2ème dernier para ci-dessus). traîner et faire quelques furieux de la vérification à partir de 6:45 à partir. Cette fin, c'est plus facile à vérifier sans le travail requis pour Ribo. N'oubliez pas de voter.
OriginalL'auteur PerformanceDBA