Postagem em destaque
_Créditos da imagem: Gerada com auxílio do ChatGPT_ # cArqTab :: Como o carregamento de informações em uma variável pode tornar lenta a abertura do sistema TOTVS Microsiga Protheus --- # Comparando LoadFromDBQuery e LoadFromDBWhile: Vantagens e Desempenho No desenvolvimento de soluções para o TOTVS Microsiga Protheus, otimizar o tempo de execução das funções é essencial, especialmente quando lidamos com grandes volumes de dados. Neste artigo, vamos analisar a diferença de desempenho entre os métodos `LoadFromDBQuery` e `LoadFromDBWhile`, utilizando os tempos de execução para demonstrar a vantagem de cada abordagem. ## Contexto do Teste Para avaliar o desempenho, executamos dois procedimentos distintos: - **U_TSTArqTabLoadDBQuery**: utiliza a função `LoadFromDBQuery`. - **U_TSTArqTabLoadDBWhile**: utiliza a função `LoadFromDBWhile`. Os comandos foram executados no ambiente Cygwin, e PowerShell e os tempos foram medidos da seguinte forma: *Cygwin ```bash $ time C:/totvs/tst/sma
- Gerar link
- Outros aplicativos
Marcadores
Postado por
иαldσ dj
BlackTDN :: SELECT * : Cadê o D_E_L_E_T_?
Durante o processo de testes com TSQLite verifiquei algo, no mínimo, inusitado:
Por algum motivo SELECT * deixa de retornar a coluna D_E_L_E_T_. Pensei que o problema estava relacionado ao SQLite mas não, é genérico. A partir de alguma versão do dbAcces o campo D_E_L_E_T_ deixou de constar nas consultar retornadas pelo dbAccess. Para tirar a prova dos 9 acessei o MPSDU, Query Analyzer e SELECT * FROM <qualquer tabela> e, para espanto, todos os campos são retornados, exceto D_E_L_E_T_.
Observe:
Obtidos a partir de:
1: SELECT SRA.D_E_L_E_T_, SRA.* FROM SRA010 SRA; 2: SELECT SRA.D_E_L_E_T_ AS D_E_L_E_T, SRA.* FROM SRA010 SRA; 3: SELECT SRA.D_E_L_E_T_ AS D_E_L_E_T_, SRA.* FROM SRA010 SRA; 4: SELECT SRA.D_E_L_E_T_ AS D_E_L_E_T_E, SRA.* FROM SRA010 SRA; 5: SELECT SRA.D_E_L_E_T_ AS D_E_L_E_T_E_D, SRA.* FROM SRA010 SRA; 6: SELECT SRA.D_E_L_E_T_ AS D_E_L_E_T_E_D_, SRA.* FROM SRA010 SRA; |
Um fragmento do código do exemplo para teste da TSQLite reflete bem a afirmação em (1): | 1: cQuery := "SELECT " 2: cQuery += " ( CASE WHEN SRA.D_E_L_E_T_ = '*' THEN 'T' ELSE 'F' END ) AS DELETED," 3: cQuery += " SRA.* " 4: cQuery += "FROM " 5: cQuery += " BTDN_SRA010 SRA;"
|
[]s
иαldσ dj
- Gerar link
- Outros aplicativos
Marcadores:
advpl
BlackTDN
D_E_L_E_T_
Naldo Dj
Tutorial Advpl
иαldσ dj
Comentários
Postagens mais visitadas
Postado por
Rleg
BlackTDN :: RLeg ~ Desvendando a Função ParamBox
- Gerar link
- Outros aplicativos
Postado por
иαldσ dj
Protheus :: Chamando Funções do Menu Diretamente e sem a Necessidade de Login
- Gerar link
- Outros aplicativos
PQP!
ResponderExcluirNão é que é verdade. Testei com:
SELECT SC1.D_E_L_E_T_, SC1.* FROM SC1010 SC1 WHERE C1_FILIAL = C1_FILIAL AND C1_EMISSAO >= '20120601'
E cadê o D_E_L_E_T_?