2008-11-20 5 views
1

Sur mon application, je crée une trace en temps réel (je ne sais pas comment encore mais je suis!) Et sur la fonction sp_trace_create dans SQlServer, je sais que @maxfilesize vaut 5, mais sur mon application il va être arrêté lorsque l'utilisateur veut l'arrêter ... des idées comment cela peut-il être fait? Parce que je ne veux pas avoir à enregistrer les fichiers ... je ne sais pas comment fonctionne le rollover? En ce moment, je le mets sur une boucle de minuterie qui interroge la base de données avec tous les événements spécifiés avec une taille maximale de 1 (ne prend généralement plus que 2 secondes), fusionne avec l'ancien lot de données dans mon dgview supprime le fichier d'origine. ceci tourne jusqu'à ce que l'utilisateur lui dise de s'arrêter ce qui empêchera la minuterie d'interroger la base de données. Pas une méthode solide mais je suppose que c'est un début! Tout ce dont j'ai besoin maintenant, c'est de trouver les types de données des colonnes comme lorsque je mets mes valeurs dans les filtres, ils doivent entrer comme le type de données correspondant à la colonne ... quelqu'un a une idée où je peux obtenir une liste des types de données ? msdn ont la liste, mais pas de type ...Création d'un suivi SqlServer illimité

Répondre

1

Pour démarrer une trace avec retournement de fichier, au lieu d'arrêter à une taille maximale, commencez la trace comme ceci:

exec @rc = sp_trace_create @TraceID output, 2, N'InsertFileNameHere', @maxfilesize, NULL 

où @maxfilesize définira la taille atteint avant qu'un nouveau fichier de survol soit créé.

AVERTISSEMENT: faites très attention en effectuant un traçage illimité. Si vous remplissez un disque de production, ce n'est pas votre tête!

Vous pouvez arrêter une trace en cours d'exécution comme ceci:

EXEC sp_trace_setstatus @ID, 0 

EXEC sp_trace_setstatus @ID, 2 

où @ID est l'ID de la trace que vous voulez arrêter.

Voir ceci post.

+0

Yeah ive utilisé celui-là avant mais comment puis-je en créer un qui ne s'arrête pas lui-même à la maxmimumfilesize ?? Je veux juste courir jusqu'à l'arrêt manuel indépendamment de la taille de fichier maximum .... – xoxo

0

Selon la documentation, ce que vous voulez faire est impossible:

[@maxfilesize =] MAX_FILE_SIZE Spécifie la taille maximale en méga-octets (Mo) un fichier de trace peut se développer. max_file_size est bigint, avec la valeur par défaut 5.

Si ce paramètre est spécifié sans l'option TRACE_FILE_ROLLOVER, la trace arrête l'enregistrement dans le fichier lorsque l'espace disque utilisé dépasse la valeur spécifiée par max_file_size.

Je ne vois pas pourquoi vous ne pouvez pas simplement parcourir les fichiers et les charger dans une table ou votre application. Ça ne devrait pas être si dur.