2

アプリケーションで Sybase 15 を使用していますが、ネストされた結合に関連するパフォーマンスの問題があります。2 つのテーブルから 2 つの列を選択し、この 2 つのテーブル間で 10 を超える列の等価性を比較するストアド プロシージャがあります。しかし、このストアを実行すると。結果は40分かかります。「set merge-join off」ステートメントを proc の先頭に追加すると、結果に 22 秒かかりました。しかし、それなしでもう1つの解決策が必要です。以前はsybase 12.5を使用していましたが、そのような問題はなく、結果が出るまでprocに3分かかりました。

15 と 12.5 の間で sp_configure を使用してサーバー構成を比較しましたが、sybase15 サーバー構成 (I/O およびメモリ構成設定) は sybase12.5 サーバーよりも大きくなっています。

Info: sybase15 に配置された pc のシステム リソースは非常に良好です。

4

4 に答える 4

4

他の人と同じように、私は本当の答えではなく、同情を持っています!ASE 15クエリプランナーがテーブルスキャンのコストを大幅に過小評価し、同様にクラスター化インデックスの使用コストを過大評価するという問題が発生しています。これにより、マージ結合が提案された計画になります。マージ結合を無効にするか、allrows_oltp optgoalを設定すると、クエリプランが改善される場合があります。推定コストはまだかなり離れていますが、テーブルから1つのオプションを削除することで、クエリプランナーは、間違った分析を介しても、適切な解決策を見つけることができます。

ASE 15のドキュメントによると、アルゴリズムのセットははるかにクリーンですが、ASE12プランナーには多くの特殊なケースがあります。おそらく、「結合にクラスター化インデックス列がある場合、テーブルスキャンよりも高速になる」という特殊なケースは、それほど悪い考えではありません... :(

于 2009-10-20T03:26:21.573 に答える
2

週末に 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 エンジニアからのアドバイスではなく、アプリケーション開発者からももたらされました。

時間を節約するために、このルートを取ることをお勧めします。

于 2009-10-12T21:35:51.663 に答える
1

Sybase は、バージョン 15 のクエリ エンジンを効果的に書き直しました。これは、12.x で超高速に実行されたクエリが、新しいバージョンでは非常に遅く実行される可能性があることを意味します。これをデバッグする唯一の方法は、12.x のクエリ プランと 15 のクエリ プランを比較し、何が異なっているかを確認することです。

于 2009-10-11T22:31:35.367 に答える
1

この問題に関係するすべての人は、次のドキュメントを読む必要があります。

http://www.sybase.com/files/White_Papers/ASE15-Optimizer-Best-Practices-v1-051209-wp.pdf

Sybase 12 から Sybase 15 への移行に関する率直な警告があります。

引用:

... ASE 15 を「単なる別のリリース」として扱わないでください。単純にアップグレードしてアプリケーションをアップグレードしたサーバーに向けることができると言いたいのですが、データベースの最も基本的な領域の 1 つであるクエリの実行における変更の深さと幅は、より焦点を絞ったテスト方式を必要とします。このホワイト ペーパーは、この労力を実際に可能な限り削減するための明確な事実とベスト プラクティスを提供することを目的としています。

続けて、OLTP クエリと DSS (意思決定支援システム) クエリに対して、新しい ASE 15 クエリ オプティマイザーについて説明します。

ただし良いニュースがあります。2009 年 3 月、Sybase 15.0.3 で互換モードが導入されました。次のドキュメントを参照してください。

http://www.sybase.com/detail?id=1063556

このモードでは、OLTP または DSS プロファイルに適合するかどうかを判断するためにクエリを分析する必要はありません。

于 2010-09-29T00:09:37.097 に答える