2016-06-16 5 views
0

現在、私たちはJavaコードで書かれたSQLクエリを書く開発者を抱えています。これはコードの異なる領域に配置されています。 クエリ自体はあまり最適化されていません。 DBAは、アプリケーション・レベルでの問合せの最適化の所有権を取得できません。ストアドプロシージャとコードのSQL、ベストプラクティスとは何ですか?

ストアドプロシージャ内のすべてのクエリを記述すると、この状況を改善するのに役立ちますか?アプリケーションのSQLの品質を制御するベストプラクティスは何ですか?

+1

これは必ずしもすべてのクエリをそこに置くのに役立つわけではありませんが、アプリケーションの存続期間にわたって変化する可能性があるもの、または熟練したDBAによって最適化できるものを置くことは役に立ちます。あなたはこれについて100%厳密かつ迅速にルールを作成したくありません。 – EJP

+0

Javaコードのテスト方法を検討しましたか?後でビジネスロジックをJavaに制限すると、インメモリデータベースを使用した単体テストを介してテストできます。 –

答えて

0

テクニカルペーパーとして、ストアドプロシージャはSQLコマンドよりも少し優れています。 理由: 実行SQLコマンドのすべての要求は、次のステップがあります。

  • 構文チェック
  • コンパイル
  • 実行

しかし、あなたが使用する手順に要求を直接RUNを保管していました。 すべてのSQL要求が実行前にプランを実行していることを知っておきましょう。ストアドプロシージャの場合、このセクションは保存され、直接実行されます。 sp_recompileコマンドを使用してストアドプロシージャを再コンパイルできます。

関連する問題