Translate

DataSpiderのファイル処理が遅い原因は大体コレ

DataSpider(データスパイダー)でファイル出力で注意した方が良いこと




データスパイダーで0こういう作り方は処理が物凄く遅くなる。


データスパイダーで、何かのデータを読み取って条件によって値を変えたり等の変換する際に、可読性を考えて下記の様にすると、とても処理が遅くなる。

なるべくコンポーネントの中を開かなくても、デザイナーのスクリプトキャンパスを見ただけでどういうことをしているか分かるようにしたいと思って、こういう作り方をすると、データスパイダーの場合はとてつもなく処理が遅くなる。

DataSpiderで何かのデータを読み取って処理を書く際に、条件分岐のIF等を表のスクリプトキャンパス上で描いてしまうとどうやらとても遅くなるようだ。

Loopコンポーネントがとてつもなく処理を遅くするようで、筆者はこの現象を、データスパイダーはLoop処理に弱いと表現している。

解決策はある。

DataSpiderではこう作り変えると処理が早くなる。

スクリプトを開いた際の、スクリプトキャンパス上だけでは、処理の詳細が見えなくなってしまい、可読視認性が下がってしまうが、マッパー内で条件分岐させる場合には、処理が早くなる。

マッパー内で分岐させる文には、For分等のループ処理が不要となる為、ループコンポーネント処理に弱いデータスパイダーで処理が遅くなってしまう事を回避出来る。

コーディングが得意な人達にとっては、ちょっとした処理をサブルーチンに飛ばすと可読性が悪くなる為、小さな処理ぐらいは表にFor文を書いて可読性を上げたいと思う人もいるかも知れないが、ノーコードプログラミングでは視認性も大切だが、使用しているノーコードプログラミングの癖を攻略しながらのコーディングの方が重要だと筆者は考える。

今回の例だと、たった数千件の処理が、最初の例だと数分かかるのに対して、Mapper内で条件分岐させた場合には、数秒で終わる。

如何に、癖を攻略する事が大切だと解るだろう。


このブログの人気の投稿

VBAのADOで「パラメーターが少なすぎます。xを指定してください。」と表示された場合の原因

ACCESSでバーコードスキャンしたら自動でイベントを起こす方法

PostgreSQL 11 でpg_dumpallを使ってバックアップしたデータをリストアするとき文字化けの対処法

ACCESSのVBAを実行するとACCESSが強制終了する事がある

VBSでマクロの実行時に警告を非表示にする方法

ACCESSのVBAでADOを利用したバインド変数を利用したデータベース連携方法

ACCESSでバーコードをスキャンして登録更新する簡単なサンプル

pgAdmin 4が遅いのは仕方がない | PostgreSQL things.

ACCESSのVBAでリストビュー(ListView)を使う為の設定 | Office365

ASP.NETのでクライアント証明書を使ったログイン認証を行う方法