Tedious: Inserções em varbinary(max) col com FILESTREAM ou leituras dessa coluna levam 10 segundos

Criado em 18 set. 2019  ·  10Comentários  ·  Fonte: tediousjs/tedious

Por algum motivo, inserções em varbinary(max) col com FILESTREAM ou leituras dessa coluna levam 10 segundos com tedioso. Aproveitei o tempo para rastrear o gargalo do meu aplicativo de nó de volta ao tedioso. Eu testei a seguinte consulta usando aproximadamente dois arquivos de 25 MB.

select * from documents where file_extension = 'zip'

MSSQL Management Studio

Screen Shot 2019-09-18 at 1 49 36 PM

Ferramentas de desenvolvimento do Chrome

Screen Shot 2019-09-18 at 1 53 16 PM

Trecho de código (não completo)

tedious-snippet.txt

Follow up discussion enhancement released

Comentários muito úteis

Ok, depois de analisar todos os problemas abertos no momento, fica claro que o bloqueio de desempenho é um problema comum (por exemplo, #879, #781,#475,#467, #319, #303). Atualmente, temos em nosso roteiro coisas como implementação do recurso Always Encrypted, validação/conversão de tipo de dados aprimorada , provedores de autenticação plugáveis ​​e refatoração de tipos de dados atuais . Mas, com base nos problemas levantados, parece que esse bloqueio de desempenho é a barreira mais comum que as pessoas enfrentam ao usar o tedioso. Estou discutindo com Arthur e a equipe sobre qual trabalho precisa ser priorizado, então se você acha que melhorar o desempenho é a maior mudança que gostaria de ver, deixe seu like ou comente sua opinião sobre como devemos seguir em frente. Qualquer feedback seria de grande ajuda! 🙇

Todos 10 comentários

Olá @sammaniamsam ,

Obrigado por apontar isso. Eu acho que isso pode ser devido à forma como a análise de token é implementada no Tedious, ou seja, há muitos retornos de chamada assíncronos que ocupam muita memória, o que se torna ainda mais ao usar varbinary(max) e talvez varchar(max) também. Temos um plano para refatorar como as coisas são implementadas no Tedious para aumentar o desempenho em um futuro próximo.

Quais são seus pensamentos @arthurschreiber , @MichaelSun90 ?

Oi @sammaniamsam , estou curioso para saber qual versão do Tedious você está usando que causa esse gargalo de desempenho? #1006

@IanChokS Estou usando "^5.0.3"

Ok, depois de analisar todos os problemas abertos no momento, fica claro que o bloqueio de desempenho é um problema comum (por exemplo, #879, #781,#475,#467, #319, #303). Atualmente, temos em nosso roteiro coisas como implementação do recurso Always Encrypted, validação/conversão de tipo de dados aprimorada , provedores de autenticação plugáveis ​​e refatoração de tipos de dados atuais . Mas, com base nos problemas levantados, parece que esse bloqueio de desempenho é a barreira mais comum que as pessoas enfrentam ao usar o tedioso. Estou discutindo com Arthur e a equipe sobre qual trabalho precisa ser priorizado, então se você acha que melhorar o desempenho é a maior mudança que gostaria de ver, deixe seu like ou comente sua opinião sobre como devemos seguir em frente. Qualquer feedback seria de grande ajuda! 🙇

WIP para corrigir problemas de desempenho -> #1037

Descrição: #1038

Olá @sammaniamsam , recentemente mesclamos #1049, #1044, #1037 que esperamos melhorar o desempenho. Você se importa se você executar seu benchmark novamente no branch master mais recente e nos informar se você observar uma melhora no desempenho do seu lado?

Obrigado! 🙇

edit: ainda não foi lançado no npm, mas as alterações estão no branch master atual

@IanChokS Absolutamente! Obrigado pessoal por cuidar disso. Estou ansioso para testar as novas melhorias.

@IanChokS Os resultados estão na tabela abaixo. Deixe-me saber se você tiver alguma dúvida.

Método | Versão tediosa | Número de arquivos | Tamanho | Tempo para executar (ms)
-- | -- | -- | -- | --
Leia | ^6.3.0 | 1 | 23,33MB | 2435.834
Leia | ^6.3.0 | 2 | 46,66 MB | 5008.435
Leia | ^6.3.0 | 3 | 136,5 KB | 329.727
Inserir | ^6.3.0 | 2 | 11,9 MB | 4316,95
Inserir | ^6.3.0 | 4 | 59 KB | 42.864
Leia | Último Mestre | 1 | 23,33MB | 2771.478
Leia | Último Mestre | 2 | 46,66 MB | 4877.394
Leia | Último Mestre | 3 | 136,5 KB | 93.575
Inserir | Último Mestre | 2 | 11,9 MB | 2535.267
Inserir | Último Mestre | 4 | 59 KB | 43.886

Screen Shot 2020-03-06 at 1 32 17 PM
Screen Shot 2020-03-06 at 1 31 18 PM

Isso parece bom! Corresponde aos nossos resultados para inserções. Por exemplo, o uso de memória caiu pela metade.
image
image

Definitivamente, tentaremos aumentar o tempo de leitura também no futuro 💪

:tada: Este problema foi resolvido na versão 8.1.0 :tada:

O lançamento está disponível em:

Seu bot de lançamento semântico :package::rocket:

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

anthonylau picture anthonylau  ·  8Comentários

tvrprasad picture tvrprasad  ·  6Comentários

David-Engel picture David-Engel  ·  5Comentários

ggazulla picture ggazulla  ·  4Comentários

yosserO picture yosserO  ·  4Comentários