Sybase 15のパフォーマンスの問題
-
20-09-2019 - |
質問
アプリケーションで Sybase 15 を使用していますが、ネストされた結合に関連するパフォーマンスの問題があります。2つのテーブルから2つの列を選択し、この2つのテーブル間で10以上の列の等価性を比較するストアドプロシージャがあります。しかし、私がこの店を経営するとき。結果が得られるまでに 40 分かかります。プロシージャの先頭に「set merge-join off」ステートメントを追加すると、結果には 22 秒かかります。しかし、それを使わないもう1つの解決策が必要です。以前は sybase 12.5 を使用していましたが、そのような問題はなく、proc が結果を得るまでに 3 分かかりました。
sp_configure を使用して 15 と 12.5 の間でサーバー構成を比較しましたが、sybase15 サーバー構成 (I/O およびメモリ構成設定) は sybase12.5 サーバーよりも大きくなっています。
情報:sybase15 にある PC のシステム リソースは非常に良好です。
解決
私はちょうど週末のSybase 15移行から生じた重大なパフォーマンスの問題をデバッグ作業で14時間を費やしてきます。
クエリオプティマイザは、(私たちのために)いくつかの非常に奇妙な意思決定をされています。
の例を見てください、
select a, b, c from table1, table2, table3 where ...
対
create table #temp (col1 int, col2 int, ... etc)
insert #temp
select a, b, c from table1, table2, table3 where ...
私たちは良い時間で最初の実行があったが、それは大規模なリワークにもかかわらず、2番目のインスタンスで正しい判断を下すために得ることができませんでした。私たちも、一時テーブルに離れてクエリを取ったが、それでも異常な結果を得ています。
最後に、我々はいくつかのクエリのためにSET FORCEPLAN ON
に頼っ - これはライン上で私たちのDBAおよびSybaseを持っていることの10時間後です。ソリューションは、アプリケーション開発者もなく、Sybaseのエンジニアからのアドバイスから来ています。
だから、自分自身にいくつかの時間を節約するために、このルートを取ることは私の提案です。
他のヒント
他の人と同じ、私は哀れみではなく、本当の答えを持っています!私たちは、ASE 15問い合わせプランナは大規模なテーブルスキャンのコストを過小評価し、同様に、クラスタ化インデックスを使用してのコストを過大評価の問題を見ています。マージこの結果は示唆している計画に参加します。マージを無効にすると、参加したり、より良いクエリプランにallrows_oltp optgoal の、時にはの結果を設定します。見積費用は遠く離れて、まだですが、テーブルから一つの選択肢を取ることによって、クエリプランナは、良い解決策を見つけること - 。間違った分析を通じていえます。
ASE 15の文書は、ASE 12プランナは特殊なケースの束を持っていたのに対し、それはアルゴリズムの非常にクリーンセットを持っていると言います。多分...ような悪いアイデアではないでしょう「あなたが参加する中、クラスタ化インデックス列を持っている場合、テーブルスキャンよりも高速になるだろう」と言う特殊なケース:(
は、Sybaseは効果的12.xの上で超高速走ったクエリは新しいバージョン、およびその逆にはるかに遅いを実行することができることを意味しているバージョン15のクエリエンジンを書き直しました。これをデバッグするための唯一の方法は、15クエリプランへの12.xのクエリプランを比較し、異なっ行われているものを確認することです。
この問題に関係する人は全員、このドキュメントを読む必要があります。
http://www.sybase.com/files/White_Papers/ASE15-Optimizer-Best-Practices-v1-051209-wp.pdf
Sybase 12 から Sybase 15 への移行について率直に警告しています。
引用:
...ASE 15を「ちょうど別のリリース」として扱わないでください。アップグレードされたサーバーでアプリケーションをアップグレードしてポイントするだけで、データベースの最も基本的な領域の1つであるQuery実行の深さと幅が、より焦点を絞ったテストレジメンを必要とすることを単純に言ってもらいたいと思います。このペーパーは、この努力を実質的に可能な限り減らすための明確な事実とベストプラクティスを提供することを目的としています。
続いて、OLTP クエリと DSS (意思決定支援システム) クエリと比較しながら、新しい ASE 15 クエリ オプティマイザーについて説明します。
しかし, 、あります 良いニュース:2009 年 3 月、Sybase 15.0.3 に互換モードが導入されました。次のドキュメントを参照してください。
http://www.sybase.com/detail?id=1063556
このモードでは、クエリが OLTP プロファイルまたは DSS プロファイルに適合するかどうかを判断するためにクエリを分析する必要はありません。