ストアドプロシージャのサイズが実行パフォーマンスに影響しますか?ストアドプロシージャのサイズが実行パフォーマンスに影響しますか?
パフォーマンスに関して、すべてのプロセスを実行するか、複数のSPに分割することをお勧めしますか?
ストアドプロシージャのサイズが実行パフォーマンスに影響しますか?ストアドプロシージャのサイズが実行パフォーマンスに影響しますか?
パフォーマンスに関して、すべてのプロセスを実行するか、複数のSPに分割することをお勧めしますか?
いいえ、実際はそうではありません。 Stored Procはサーバー上にプリコンパイルされており、サーバーとクライアントの間を行き来することはありません。
メンテナンス可能で読みやすい方法で設定することが重要です。
マルク・
ストアドプロシージャのSIZE(コードの行?複雑さ?テーブルの数?加入数?)が、実行性能によって何を意味するかわからないが、の実行計画に完全に依存しますストアドプロシージャ内でSQLを定義しコンパイルします。これは、SQL Serverを使用している場合は、SQLプロファイラによって非常によく監視できます。パフォーマンスは、ジョインやテーブル・スキャンのようなもので最も重く課せられます。また、優れたツールを使用すると、索引の配置場所を把握したり、SQLを定義する方法を考えるのに役立ちます。お役に立てれば。
言い換えれば、「自分の機能のサイズが実行パフォーマンスに影響しますか?」
わかりやすい答えは:いいえ。この機能は実行されるハードウェア上で可能な限り速く動作します。
右質問は次のとおりです。(長い関数はもちろん、実行に長いがかかります。しかし、それは遅くなる。したがって、パフォーマンスがunafffectedで実行されません明確にするために。。。):「い私の機能を実行性能に与える方法は? "
答えは:はい、是非とも。
実際に2番目の質問をしている場合は、コードサンプルを追加してより具体的にする必要があります。
ローカルメモリを再利用するために実行プランをフラッシュする必要があり、単一のプロシージャでは必要ない場合は、複数のストアドプロシージャをコーディングするとパフォーマンスが低下する可能性があります。
フラッシュされたストアドプロシージャが再度必要なため、再コンパイルする必要があります。何百ものパーティションテーブルにアクセスするビューを照会すると、コストがかかる可能性があり、本番環境でタイムアウトが発生しています。 8つのうち2つを組み合わせることでこの問題が解決されました。
一方、複数のストアドプロシージャが複雑なので、複数に分割すると、クエリ実行プランがチャンクで簡単になり、パフォーマンスが向上しました。
その他の回答は基本的に「それは依存しています」は死んでいます。あなたが持っているDBの速さにかかわらず、間違ったクエリはそれを膝に持っていく。そして、それぞれの状況はユニークです。ほとんどの場所で、モジュラーで分かりやすい方法でコーディングすると、パフォーマンスが向上し、メンテナンスが安くなります。 SQL Serverは、クエリプランを構築するときにそれを「理解する」必要があります。
+1素敵な哲学的な見解のために:) – VVS