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 […]