web-dev-qa-db-fra.com

Comment éviter les données textes de la trace sont tronquées?

J'ai un fichier de trace, y compris la colonne TextData créée par un traçage côté serveur. Certaines des requêtes tracées sont très longues.

Si j'ouvre le fichier de trace sur le profileur, la requête longue correspondante est complètement affichée - elle dispose de 340 rangées de texte et de 10951 caractères.

Mais après avoir importé le fichier de trace dans une table SQL-Server, la requête correspondante semble être tronquée. La table a une colonne NTEXT créée par la méthode FN_TRACE_GETTABLE .

J'ai interrogé la table à l'aide de différentes méthodes: la sortie de texte en SSMS (avec nombre maximisé de caractères configuré) interrompt la sortie à la ligne 52. La sortie de fichier de SSMS (* .rpt) est également tronchée, la requête est tronquée à la ligne 250 .

Donc, maintenant je me demande s'il est possible d'obtenir toute la requête du fichier de trace dans une table SQL-Server et comment?

3
Magier

SSMS tronque toujours de longues chaînes à moins que XML acheminée dans laquelle vous pouvez la définir pour permettre illimité.

enter image description here

La solution que j'utilise habituellement ( à partir d'ici ) est inférieure à

SELECT (SELECT YourTraceDataColumn AS [processing-instruction(x)] FOR XML PATH(''), TYPE)
FROM YourTraceTable

Cela ajoute quelques principaux (<?x) et traînant (?>) Les caractères mais laisse sinon les données intactes et sans caractères remplacées par des entités XML.

7
Martin Smith