2016-08-30 15 views
1

私たちのプロダクションサーバでパフ​​ォーマンスの問題が発生しています。Hibernate + SQL Serverパフォーマンス変数

1)主なクエリには通常0.5秒かかりますが、時には20秒かかることもあります(クライアントがクラッシュしたためにクレイジーになります)。クエリはビュー上にあり、熱心なオブジェクトやレイジーオブジェクトは接続されておらず、単純な属性のみがあります。クエリによって100ページ分のレコードが返されます(65,000レコード以上)

なぜ変わるのですか?ほとんどの場合、クエリは正常に動作しているので、クエリをどのように改善できますか?

2)一般に、Javamelodyの統計によれば、サーバーは同時に5〜10の接続を使用しています。しかし、時にはこれが最大(100)になり、サーバーがビジー状態で不安定になります。

私たちは1800年から2000年の間にセッションをしています。

この

は私の設定です:

のTomcatサーバー: AWS EC2のLinuxインスタンスt2.medium

MS SQL Serverの: AWS EC2のWindowsインスタンスc4.large(これはSQL Server Expressを持ち、今、私たちは[多分これが問題である?]より強力な取得するためにSQL ServerのWeb Editionに移動している)

JDBC接続プールの設定:

<bean class="org.apache.commons.dbcp2.BasicDataSource" id="dataSource"> 
    <property name="url" value="jdbc:sqlserver://url..."/> 
    <property name="username" value="username..."/> 
    <property name="password" value="password..."/> 
    <property name="initialSize" value="10"/> 
    <property name="maxTotal" value="100"/> 
    <property name="maxIdle" value="50"/> 
    <property name="minIdle" value="10"/> 
</bean> 

接続プーリングの設定を変更する必要がありますか?これらのリークをどのように改善できますか?

ありがとう、私の英語のために申し訳ありません。

+0

1日以上継続して待機統計情報を収集すると、何らかの分析を行う可能性があります – TheGameiswar

+0

このリンクにチェックを入れてください:http://www.sqlsentry.com/white-papers/troubleshooting-sql-server-wait-統計情報..http://www.sqlskills.com/blogs/paul/wait-statistics-or-please-tell-me-where-it-hurts/ – TheGameiswar

答えて

1

私は、5回から10回のjdbc接続が同時に使用されていることを確認します。クエリは約0.5秒かかることが多いです。これは明らかに、データベースが確かに重い負荷であることを示しています。

クエリが0.5秒ではなく20秒になる場合は、データベースが負荷に追いつくのが非常に困難な場合です。クエリが待ち行列に入れられます。 jdbcの接続数が100に増えたのは、データベースが単に「あきらめた」ときです。同時に、同時に5つから10つのクエリーに追いつくのが難しいと同時に、100のクエリーを想像してください。

この場合、SQLクエリを最適化するか、データベースサーバーを変更する必要があります。

関連する問題