No caso de hoje vamos falar sobre um caso que atuamos num cliente que tinha um job que chamava uma SP e o tempo médio de execução era de 9h30min. Dentro dessa SP executava basicamente uma query como a abaixo:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
SELECT CTE.CAMPO1 ,CTE.CAMPO2 ,CTE.CAMPO3 ,CTE.CAMPO4 ,CTE.CAMPO2 - ABS(CTE.CAMPO3 + CTE.CAMPO4) CAMPO5 FROM ( SELECT dbo.FNCDATA(TAB1.CAMPO1) CAMPO1 ,TAB1.CAMPO2 ,TAB2.CAMPO3 ,TAB2.CAMPO4 FROM LS_SERVIDOR.BASE1.dbo.TABELA1 TAB1(NOLOCK) INNER JOIN LS_SERVIDOR.BASE2.dbo.TABELA2 TAB2 (NOLOCK) ON TAB1.CODIGO = TAB2.CODIGO WHERE TAB1.CAMPO1 >= @DT_INI ) CTE GROUP BY CTE.CAMPO1 ,CTE.CAMPO2 ,CTE.CAMPO3 ,CTE.CAMPO4 HAVING CTE.CAMPO2 - ABS(CTE.CAMPO3 + CTE.CAMPO4) <> 0 |
Era uma subquery que ia via linked server buscar os dados para serem agrupados…
Leia mais
No post de hoje vamos compartilhar o caso de um cliente que tem um job que manda um e-mail via SP_Send_Mail com o resultado de uma query no csv.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
EXEC msdb.dbo.sp_send_dbmail @profile_name = 'MSSQLSERVER', @subject = 'Relatório', @body = 'Olá! <strong>Teste</strong>', @execute_query_database = 'BaseTeste', @body_format = 'html', @query = 'SET NOCOUNT ON; SELECT TOP 10 * FROM Tabela_Teste ', @query_attachment_filename = 'anexo.csv', @attach_query_result_as_file = 1, @query_result_header = 1, @query_result_width = 256, @query_result_separator = ' ', @query_result_no_padding = 1 |
Porém o job falhava com a seguinte mensagem: “Failed to initialize sqlcmd library with error number -2147467259. [SQLSTATE 42000] (Error 22050). The step failed.” …
Leia mais