非常に単純なクエリでクエリを実行するSybaseデータベースがあります。Sybase/hibernateデータベースのパフォーマンス
Select * from ts_logs where time_sheet_id = 1234
テーブルのレコード数は約110万であり、3日前までは約0.5秒で実行される非常に高速なクエリでした。
私たちのアプリケーションは、hibernateを使用し、sql出力はまったく同じクエリを表示します。 3日前の時点で、クエリの実行に9〜11秒かかってしまい、パフォーマンスが大幅に低下していることに気付きました。
NetBeansデータベースビジュアライザで、同じパフォーマンスの問題が発生したクエリを実行しようとしました。最初にこれをデータベースのパフォーマンス問題と判断し始め、dbvisualizerでさらに問題を診断することにしましたが、驚いたことにdbvisualizerは0.5秒未満で同じ正確なクエリを実行していました。
すべての環境でjtds 1.3を使用しています。
すべての環境で同じデータベース。
すべての環境で同じクエリです。
hibernate/netbeansではパフォーマンスボトルネックが発生する可能性がありますが、dbvisualizerではできません。見える次の場所の任意の考えですか?
CREATE TABLE ts_log (id numeric identity(19) NOT NULL GENERATED ALWAYS AS IDENTITY, log_comment varchar(2500), log_entry varchar(2500) NOT NULL, time_sheet_id numeric(19) NOT NULL, PRIMARY KEY (id));
クエリが返す行の数はいくつですか?たぶん、DbVisualizerはそれらのすべてを表示せず、NetBeansは表示します。または、DbVisualizerはすべてのコンテンツを表示しません。あなたの質問を編集して、問題のテーブルの 'create table'文を追加してください。あなたは4つの環境すべてで接続URLに**同一の**パラメータを使用していますか? –
create文で質問を更新しました。 NetBeansのデフォルトは1000行です。返される実際の行の合計は2です。すべての環境で同じURL。 –