ADVPL e SQLServer vs Desempenho
Autor: Eurai Criado: 16/09/2023 Atualizado: 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
- Versão
- 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
- FWFileReader
- 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)
- Profile causando lentidão. Após limpar tudo e recriar do zero, melhorou desempenho.
- Função count padrão em funções customizadas. Alterado as funções e melhorou desempenho.
- Funções padrões, execAutos lentos.
- Analisar se tem relação com a função padrão CTBLoadCQD.
- Caso estiver lento, analisar os compartilhamentos das tabelas contabies.
Gostou? Compartilhe com seus amigos e deixe um comentário! 😎
Um abraço, e até a próxima
Discussão (0)
Sem comentários ainda
Realize o LOGIN no site para poder comentar