ADVPL e SQLServer vs Desempenho

ADVPL e SQLServer vs Desempenho
Author: Eurai
Inclusão: 16/09/2023
Alteração: 18/09/2023

 

Olá, tudo bem?

 

Segue algumas informações sobre o sqlServer (Microsoft).

 

 

  • SQLServer Estatistica

SET STATISTICS IO ON

SET STATISTICS IO OFF

SET STATISTICS TIME ON

SET STATISTICS TIME OFF

SET STATISTICS IO,TIME ON

SET STATISTICS IO,TIME OFF

 

  • AntiVirus
    • Desabilitar para instalação Protheus
    • Extensões: .MDF .NDF .LDF .BAK .TRN

 

  • SQLServer / Banco:
    • Versão
      • SELECT @@VERSION AS VERSION
    • Collation Banco
      • SELECT DATABASEPROPERTYEX('UDESENV_12_1_25','Collation')
    • Collation Instalação
      • SELECT SERVERPROPERTY(N'Collation') 
    • Like Performance, testar o collation
      • WHERE HISTORICO COLLATE Latin1_General_BIN ou SQL_Latin1_general_CP1_CI_AI LIKE %Eurai%
      • Enviado por Fabricio Lima - https://powertuning.com.br/
    • Inner Join banco de dados
      • SELECT F3_NFISCAL , RIGHT(RTRIM(SP51.NFSE_ID),6) , NFSE_ID , *
      • FROM DATA_SPED.dbo.SPED051 SP51
      • INNER JOIN SF3000 SF3 ON LEFT(SP51.NFSE_ID,3) COLLATE Latin1_General_BIN2 = SF3.F3_SERIE
      • AND RIGHT(RTRIM(SP51.NFSE_ID),6)  COLLATE Latin1_General_BIN2 =  SF3.F3_NFISCAL
      • AND SF3.F3_FILIAL = 'A1'
      • WHERE
      • ID_ENT = 'XXXXXX'
      • AND SP51.D_E_L_E_T_ = ''
      • AND NFSE = 'XX22'
    • whoisactive 
      • https://github.com/amachanic/sp_whoisactive/releases
      • Monitorar as queries, tratar.
      • Pelo dbAccess é possível rastrear
    • BI com queries sem Where ?
    • Novo tempDb?
      • PAGELATCH no monitoramento
      • Maximo de 8 o recomendado.
      • 1 gb de tamanho tempdb
      • 800 mb de crescimento
    • https://buildnumbers.wordpress.com/
    • Max degree of Parallelism
      • Metade dos procs logicos, limitado a 8 (seguestao)
    • Cost threshold for Parallelism, query apta a usar paralelismo
      • 25 a 50 (35)
    • exec sp_cycle_errorlog (job domingo, executando essa stored procedure)
      • Quantidade de arquivo de errorLog, sugestão 20
    • Instant file Initialzation
      • Não formatar o .MDF
      • secpol.msc
      • Local Security Policy > User Rights Assignment > Perform volume maintenance tasks (Executar tarefa de manutenção de volume) > 
        • NT Service\MSSQLServer
        • Precisa reiniciar o SQLServer
    • Envio e-mail check
      • SELECT TOP 10 sent_status, * from msdb.dbo.sysmail_unsentitems order by send_request_date desc
      • SELECT TOP 10 sent_status, * from msdb.dbo.sysmail_mailitems order by send_request_date desc
    • User: sysadmin > dba
    • Page verify 
      • Checksum
    • AutoClose == Off
    • AutoShink = Off

 

  • Testar envio de e-mail, tSQL

EXEC msdb.dbo.sp_send_dbmail 

@profile_name = 'test',

@recipients='AAA@ASD.com;BBBB@ASD.com;',

    @subject = 'WWW',

    @body = 'abc',

    @body_format = 'HTML';

 

 

 

  • Windows
    • Desfragmentação de disco Automatica 
    • SO Virtualizado 
    • Sistema de energia (High Performance)

 

  • ADVPL Funções:
    • FWFileReader
      • Leitura arquivo
    • FWFileWriter
      • Escrever Arquivo
    • FWBulk
      • Inserção
    • XMLparser para tXMLManager
      • tXMLManager (case sensitive)?
    •  
    • Array / Hash para jSonObject
    • FWExecCachedQuery
      • Cache das informações de busca
    • FWPreparementStatement
    • MPSysOpenQuery( cQuery , [cAlias] , [aSetField],[cDriver],[aBindParam] ) 
    • FWExecStatement
      • Proteção com query Injection
      • Statement nativo no banco
      • Tem BIND
      • https://tdn.totvs.com/display/framework/FWExecStatement
    • MpSysExecScalar
      • Retorna um valor/coluna/linha. Count, sum,
      • Tem bind
      • https://tdn.totvs.com/display/framework/MPSysExecScalar

 

 

 

  • Rest Instances:
    • Instances AppServer ( Instances = inicial, máximo, mínimo livre, incremento ) 
    • Instances = 1,10,1,1
      • Vai iniciar com 1 thread, máximo 10. Vai sempre tentar manter 1 livre e se não, sobe 1
    • Instances = 1,20,2,5
      • Vai iniciar com 1 thread, máximo 20. Vai sempre tentar deixar 2 livres e se não, sobe 5

 

Instant File initialization - IFI. Versões mais atuais

 

SELECT servicename, instant_file_initialization_enabled 

FROM sys.dm_server_services

WHERE servicename like 'SQL Server (%';

 

 

Migração 2210 (Desempenho)(Analisar cada caso isoladamente)

 

 

 

 

 

Gostou? Compartilhe com seus amigos e deixe um comentário! 😎

Um abraço, e até a próxima  

 

 

 

 

 

Esse conteúdo te ajudou? Ajude o canal com doação
Compartilhar
Comentários