Fala pessoal, Antes de lerem esse post, caso ainda não tenham lido os anteriores, sugiro que façam para seguirem a linha de raciocínio: https://www.fabriciolima.net/blog/2017/12/11/melhorando-a-performance-de-consultas-no-totvs-protheus-parte-1/ https://www.fabriciolima.net/blog/2017/12/18/melhorando-a-performance-de-consultas-no-totvs-protheus-parte-2/ https://www.fabriciolima.net/blog/2018/01/08/melhorando-a-performance-de-consultas-no-totvs-protheus-parte-3/ https://www.fabriciolima.net/blog/2018/01/16/melhorando-a-performance-de-consultas-no-totvs-protheus-parte-4/ https://www.fabriciolima.net/blog/2018/01/23/melhorando-a-performance-de-consultas-no-totvs-protheus-parte-5/ Hoje vamos analisar a query abaixo que está fazendo um número muito alto de leituras no banco:
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 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83
|
SELECT RA_XREGIO XREGIO , RA_FILIAL FILIAL , RA_NOME NOME , RA_CIC CIC , RA_BCDEPSA BCDEPSA , RA_CTDEPSA CTDEPSA , ZT_TITULO TITULO , ZT_CODTIT CODTIT , ZT_MAT MAT , ROUND(ZT_VALVER, 2) VALVER , ZT_VERBA VERBA , ZT_XBCOFUN XBCOFUN , ZT_XAGEFUN XAGEFUN , ZT_XCTAFUN XCTAFUN , RC1_TIPO TIPO , RC1_EMISSA EMISSA , RC1_VENREA VENREA , RC1_VALOR VALOR , RC1_XBCO1 XBCO1 , RC1_XAGE1 XAGE1 , RC1_XCTA1 XCTA1 , RC1_XDTPAG XDTPAG , RC1_XUSPAG XUSPAG , RC1_XUSNPA XUSNPA , RC1.R_E_C_N_O_ RC1RECNO , RC1_NATURE NATUREZA FROM SRA080 SRA , RC1080 RC1 , SZT010 SZT , SED010 SED WHERE SRA.D_E_L_E_T_ = ' ' AND RC1.D_E_L_E_T_ = ' ' AND SZT.D_E_L_E_T_ = ' ' AND SED.D_E_L_E_T_ = ' ' AND RA_MAT = ZT_MAT AND RA_SITFOLH IN ( ' ', 'A', 'D', 'F', 'T' ) AND ZT_CODTIT NOT IN ( ' ', '23', '234') AND SUBSTRING(RA_BCDEPSA, 1, 3) IN ( '234', '543', '123', '987', '979' ) AND RA_FILIAL BETWEEN '0 ' AND 'ZZ' AND RA_MAT BETWEEN '0 ' AND 'ZZZZZ ' AND RC1_NUMTIT BETWEEN '0 ' AND 'ZZZZZZZZZ' AND RA_XREGIO BETWEEN '0 ' AND 'ZZ' AND RC1_EMISSA BETWEEN '20160101' AND '20171231' AND RC1_VENREA BETWEEN '20171212' AND '20171212' AND RC1_NATURE IN ( '23243', '23423' ) AND RA_FILIAL = ZT_FILIAL AND ZT_TITULO = RC1_NUMTIT AND ZT_PREFIXO = RC1_PREFIX AND ZT_CODTIT = RC1_CODTIT AND ZT_RECTIT = RC1.R_E_C_N_O_ GROUP BY RA_XREGIO , RA_FILIAL , RA_NOME , RA_CIC , RA_BCDEPSA , RA_CTDEPSA , ZT_TITULO , ZT_PREFIXO , ZT_CODTIT , ZT_MAT , ZT_VALVER , ZT_VERBA , ZT_XBCOFUN , ZT_XAGEFUN , ZT_XCTAFUN , RC1_TIPO , RC1_EMISSA , RC1_VENREA , RC1_VALOR , RC1_XBCO1 , RC1_XAGE1 , RC1_XCTA1 , RC1_XDTPAG , RC1_XUSPAG , RC1_XUSNPA , RC1.R_E_C_N_O_ , RC1_NATURE |
Segue o custo dessa query:
|
Table 'RC1080'. Scan count 1, logical reads 8832 Table 'SZT010'. Scan count 7961, logical reads 3017362 Table 'SRA080'. Scan count 9, logical reads 4710 Table 'SED010'. Scan count 3, logical reads 40 SQL Server Execution Times: CPU time = 5031 ms, elapsed time = 1074 ms. |
3 milhões de […]