Tedious: FILESTREAMを使用してvarbinary(max)colに挿入するか、その列から読み取るのに数十秒かかります

作成日 2019年09月18日  ·  10コメント  ·  ソース: tediousjs/tedious

何らかの理由で、FILESTREAMを使用してvarbinary(max)colに挿入するか、その列から読み取るのに数十秒かかります。 時間をかけて、ノードアプリケーションのボトルネックを退屈なものにまでさかのぼりました。 およそ2つの25MBファイルを使用して次のクエリをテストしました。

select * from documents where file_extension = 'zip'

MSSQL Management Studio

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

Chrome開発ツール

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

コードスニペット(完全ではありません)

tedious-snippet.txt

Follow up discussion enhancement released

最も参考になるコメント

現在未解決の問題をすべて調べた後、パフォーマンスの低下が一般的な問題であることは明らかです(たとえば、#879、#781、#475、#467、#319、#303)。 現在、ロードマップには、Always Encrypted機能の実装、データ型の検証/変換の改善プラガブル認証プロバイダー現在のデータ型のリファクタリングなどがあります。 しかし、提起されている問題に基づくと、このパフォーマンスブロックは、退屈な使用時に人々が直面する最も一般的な障壁のようです。 アーサーとチームとどの作業を優先する必要があるかについて話し合っているので、パフォーマンスの向上が最大の変化であると感じた場合は、いいねを残すか、私たちがどのように前進すべきかについての考えをコメントしてください。 フィードバックは大いに役立ちます! 🙇

全てのコメント10件

こんにちは@sammaniamsam

これを指摘してくれてありがとう。 これは、Tediousでトークン解析がどのように実装されているか、つまり、varbinary(max)とおそらくvarchar(max)を使用すると、より多くのメモリを消費する非同期コールバックが多数あるためだと思います。 近い将来、パフォーマンスを向上させるために、Tediousでの実装方法をリファクタリングする計画があります。

@ arthurschreiber @ MichaelSun90についてどう思いますか?

こんにちは@sammaniamsam 、このパフォーマンスのボトルネックの原因となるTediousのバージョンを使用しているのが気になりますか? #1006

@IanChokS 「^ 5.0.3」を使用しています

現在未解決の問題をすべて調べた後、パフォーマンスの低下が一般的な問題であることは明らかです(たとえば、#879、#781、#475、#467、#319、#303)。 現在、ロードマップには、Always Encrypted機能の実装、データ型の検証/変換の改善プラガブル認証プロバイダー現在のデータ型のリファクタリングなどがあります。 しかし、提起されている問題に基づくと、このパフォーマンスブロックは、退屈な使用時に人々が直面する最も一般的な障壁のようです。 アーサーとチームとどの作業を優先する必要があるかについて話し合っているので、パフォーマンスの向上が最大の変化であると感じた場合は、いいねを残すか、私たちがどのように前進すべきかについての考えをコメントしてください。 フィードバックは大いに役立ちます! 🙇

パフォーマンスの問題を修正するためのWIP->#1037

説明:#1038

こんにちは@sammaniamsam 、最近#1049、#1044、#1037をマージしました。これにより、パフォーマンスが向上することを願っています。 最新のマスターブランチに対してベンチマークを再度実行し、パフォーマンスが向上したかどうかをお知らせください。

ありがとう! 🙇

編集:npmにはまだリリースされていませんが、変更は現在のマスターブランチにあります

@IanChokS絶対に! これを世話してくれてありがとう。 新しい改善点をテストすることを楽しみにしています。

@IanChokS結果は以下の表にあります。 ご不明な点がございましたら、お気軽にお問い合わせください。

方法| 面倒なバージョン| ファイル数| サイズ| 実行時間(ms)
-| -| -| -| -
読む| ^ 6.3.0 | 1 | 23.33 MB | 2435.834
読む| ^ 6.3.0 | 2 | 46.66 MB | 5008.435
読む| ^ 6.3.0 | 3 | 136.5 KB | 329.727
挿入| ^ 6.3.0 | 2 | 11.9 MB | 4316.95
挿入| ^ 6.3.0 | 4 | 59 KB | 42.864
読む| 最新のマスター| 1 | 23.33 MB | 2771.478
読む| 最新のマスター| 2 | 46.66 MB | 4877.394
読む| 最新のマスター| 3 | 136.5 KB | 93.575
挿入| 最新のマスター| 2 | 11.9 MB | 2535.267
挿入| 最新のマスター| 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

よさそうだ! これは、挿入の結果と一致します。 たとえば、メモリ使用量が半分に減少しました。
image
image

将来的には、読み取り時間も確実に増やすことを目指しています💪

:tada:この問題はバージョン8.1.0で解決されました:tada:

このリリースは次の場所で入手できます。

セマンティックリリースボット:package :: rocket:

このページは役に立ちましたか?
0 / 5 - 0 評価