Paso 4: Profiler La dificultad para recopilar datos del Profiler es encontrar un proceso que filtre informaci贸n 煤til de la columna textdata. Por ejemplo: quieres investigar la duraci贸n media de un procedimiento almacenado, pero no puedes realizar una agrupaci贸n a menos que te deshagas de todos los par谩metros que tambi茅n se almacenan en textdata. El script 4.1 puede ser un primer paso en tu b煤squeda a c贸mo filtrar y consolidar los datos del SQL Profiler para que te sean 煤tiles. Esta funci贸n depende del uso sp_executesdql, por lo que podr铆as necesitar personalizarlo seg煤n tus condiciones.
--Script 4.1 CREATE FUNCTION fn_getSPfromTextdata (@textdata VARCHAR(4000)) RETURNS VARCHAR (4000) AS BEGIN DECLARE @ret VARCHAR (4000) SET @ret = '' IF SUBSTRING(@textdata, 1, 18) = 'exec sp_executesql' AND SUBSTRING (@textdata, 22, 6) = 'INSERT' BEGIN SELECT @ret = SUBSTRING(@textdata, 22, PATINDEX ('% (%', SUBSTRING(@textdata, 6, LEN(@textdata) - 5))-17) END ELSE IF SUBSTRING(@textdata, 1, 18) = 'exec sp_executesql' AND SUBSTRING(@textdata, 22, 6) = 'UPDATE' BEGIN SELECT @ret = SUBSTRING(@textdata, 22, PATINDEX ('% SET %', SUBSTRING(@textdata, 6, LEN(@textdata) - 5))-17) END ELSE IF SUBSTRING(@textdata, 1, 18) = 'exec sp_executesql' AND SUBSTRING(@textdata, 22, 6) = 'DELETE' BEGIN SELECT @ret = SUBSTRING(@textdata, 22, PATINDEX ('% WHERE %', substring (@textdata, 6, LEN(@textdata) - 5))-17) END ELSE IF substring(@textdata, 1, 4) = 'exec' BEGIN SELECT @ret = SUBSTRING(@textdata, 6, PATINDEX ('% %', SUBSTRING(@textdata, 6, LEN(@textdata) - 5))) END RETURN @ret END