月別アーカイブ: 2019年1月

LINQ の INSERT を SqlBulkCopy にするとどれだけ早くなるのか?

昨日書いたばかりの、これだけど、SqlBulkCopy を使うとどれだけ早くなるのかを再び実験 LINQ の INSERT が遅いときは AutoDetectChangesEnabled を False にする http://www.moonmile.net/blog/archives/9646 結論 結論から言えば、SqlBulkCopy を使うほうが100倍位早いですね。1万件位だと6秒から0.06秒という誤差?っぽい感じだけど、100万件になるとLINQのINSERTでは難しいので、SqlBulkCopy を直接使えという感じです。 SqlBulkCopy は DataTable を受け取る SqlBulkCopy Class (System.Data.SqlClient) | Microsoft Docs https://docs.microsoft.com/ja-jp/dotne … 続きを読む

カテゴリー: 開発, C# | コメントする

LINQ の INSERT が遅いときは AutoDetectChangesEnabled を False にする

とあるシステムで1万件程度のテーブルを構成しなおして別の複数のテーブルに移すことをやっていた。いわゆる、正規化していないテーブルをデータ移行の際に正規化しようと思って、複数のテーブルに分けたのだが、たかだか1万件しかないのに非常に遅い。正規化のロジックが遅いのかもしれないけど、1万件程度をデータ挿入するのに30分位掛かってしまうのである。 相手が SQL Server なので SqlBulkCopy を使えば結構なスピードになるはずなのだが、100万件の場合ならばそうかもしれないけど、たかだか1万件の挿入でこんなに遅いのは変。ということで、LINQ の INSERT について調べなおしてみる。 結論 結論から言えば、AutoDetectChangesEnabled と ValidateOnSaveEnabled を OFF(false) にすればよい。 DbContextConfigura … 続きを読む

カテゴリー: 開発, C# | コメントする

もっと簡単に超概算見積もりver2

以前、超概算見積もり を考えたのはすでに10年前になるので、この際だからバージョンアップ版をあげておこう。この超概算見積もりの手法は PMBOK で言うところの超概算見積もりとは違う。だが、おそらく現実に即しているはずだ。 ざっくり規模見積もりをしたいときに、機能から見積もり始めるのは間違いだ。特に受託開発の場合には、営業さんの云うところの「ざっくり見積もる」というのは、予算と期間になる。いわゆる、QCD で言うところのコストと期限(Delivery)になる。 このため、各種の見積もり手法では「規模見積もり」→「予算見積もり」→「スケジュール」の順番で見積もりをしていくのだが、実際のところ、 予算が限られている(Cost) リリース日などの期限が決まっている(Delivery) ことが多いので、Cost と Delivery の制約を先に埋めてしまうほうがよい。 予算(コスト)が決まってい … 続きを読む

カテゴリー: OpenCCPM | コメントする

プロジェクトマネジメントの工学的アプローチのメモ書き

ソフトウェア開発におけるプロジェクトマネジメント手法を工学的にアプローチするメモを流しておこう。ちなみに、この記事には「モチベーション」という言葉は出てこないし「スーパープログラマ」も「カリスママネージャー」も出てこない。あくまで工学/自然科学的なアプローチで解決をしようという話である。ある意味「働き方改革」も出てこない。 前提条件 「プロジェクト」とは何かというところからスタートするほどでもないが、この手法には前提条件がある。 WBS/チケット/タスクが全て消化されれば、プロジェクトが終了する という条件が必要になる。一見当たり前のように見えるけど、研究プロジェクトや目的達成型のプロジェクトの場合にはこのマネジメント手法では無理がある。研究プロジェクトは数々の試行錯誤が必要なので、チケットに対する時間効果が判別つかない。また一定の目的を達成する(製品販売数とかユーザー数目標とか)プロジェ … 続きを読む

カテゴリー: 開発, OpenCCPM | プロジェクトマネジメントの工学的アプローチのメモ書き はコメントを受け付けていません。