2012-02-02 8 views
0

データベースに複雑な計算をしたAsp.netプロジェクトがあります。たとえば、私は給与計算をする必要があります。計算クエリのスタッフの給与計算のためにこのクエリアクションは非常に長く複雑です。また、月間に休暇やミッションを計算してください。私の質問:私はこの計算のために関数のSQL Serverまたはエンティティのフレームワークのクエリを使用するのですか?どちらが優れたパフォーマンスですか?関数を使用するデータベース内の計算のためのSQL Serverまたはエンティティフレームワークのクエリ?

+1

ようこそスタックオーバーフロー。あなたの質問には詳細がないので、私たちはあなたを助けることができないのではないかと心配しています。これまでに何を試みましたか?その結果は何ですか?また、http://stackoverflow.com/questions/how-to-ask –

答えて

0

。一般的に

  • SQLは、ビジネス・ロジックのない標準的な要素を計算することで素晴らしいです。日付別グループ、統計的分布など

  • あなたが意思決定の多くの法的問題に取得した場合、それはアプリケーションで物事を行うにはメンテナンス等のためのより良いかもしれません。また、SQLはデバッグするのが難しく、これらは変更される可能性があるためです。あなたが成長すれば、異なるタイプの人々には異なるロジックを持たなければならないかもしれません。多くの意思決定は、異なる人々グループが異なるクラスでコード化された異なるスクリプトを実行するときに容易になります。

私はスタッフの給与を計算する必要があります。また、職員の勤務時間を計算しなければならないので、計算職員の給与については、このクエリアクションは、 と複雑な非常に長いです、月額

が、私はこれは、より良い、よりロジック傾けプログラミングを行っていると思うにおける休暇とミッション - SQLの外すなわち。あなたが大企業でない限り、そこで処理するデータはあまりありません。より良い性能である

?その気に

SQLは良くなりますが、問題はそれが重要かどうかです。あなたが1ヶ月に1回、SQLサーバが1分で5分かかる場合、SQLサーバはより良いですが、それは無関係です。パフォーマンスが重視されるアーキテクチャは重要です。このカエで私はそれが疑わしい。スレッドごとにSQL Serverの外部で毎秒1人以上の従業員を計算する方法があります。近代的なデスクトップの高いエンド= 12スレッド= 12人/秒= 720人/分。計算のために1か月に一度夜間(8時間)を簡単に取ることができます。自分で数学をする。パフォーマンスは基本的にここでは問題になりません。あなたが毎晩のバッチまたは月次バッチを行い、その後、あなたは(終了し、最初の月のそれを実行する)すべての時間を持っている - そのような

スタッフはとにかくバッチ処理で行われます。これは、10.000人以上のスタッフの問題でしかないため、時期尚早の最適化です。 私は長期にわたり法律上および契約上の変更が長期にわたって維持される一方、

+0

私は "コストの会計"プロジェクトを持って、その計算は主に実行時です。もっと説明して、あなたのアイデアを教えてください。 –

+0

いいえ、ごめんなさい - センナリアに尋ねてください。これは、1週間におよぶプランニングプロジェクトの可能性があるため、詳細に行くフォーラムではありません。あなたは尋ねる、私たちは答えます。しかし、ほとんどがランタイムです。これは、データの量が限られていることを意味します(実行時に100,000人の従業員を変更しない)。 – TomTom

+0

ありがとうTomTom –

-2

私はより良いアプローチは、DBに計算を行うことだと思います。ただし、どのような計算を行うかによって異なります。

お答えすることは不可能
+1

を読んでくださいこれは非回答です。そこで行うのが悪いときは、データベースのxceptでそれを行う方が良いです。祝福。 – TomTom

関連する問題