0

最近、次のようなエラーメッセージを表示するレガシーシステムのストアドプロシージャで問題が発生することがあります。

サーバーメッセージ:番号10901、重大度17:このクエリにはX個の補助スキャン記述子が必要ですが、現在使用できる補助スキャン記述子はY個だけです。'Auxスキャン記述子の数'構成パラメーターの値を上げるか、後で照会を試してください。

ここで、XはYよりわずかに低いです。Sybaseのマニュアルには、補助スキャン記述子を少なくするようにテーブルを再設計するか(どのように?!)、システムで使用可能な数を増やす必要があると書かれています。奇妙なことに、それは何年も正常に機能していて、変更された唯一のことは、いくつかの列のデータ型を修正し、インデックスを追加したことです。誰かがこれに光を当てることができますか?

4

2 に答える 2

2

現在使用しているSybaseのバージョンはわかりませんが、ASE12.5以降では次のようになります。

そのストアドプロシージャのクエリプランからスローされるのは、新しいインデックスの追加だと思います。走ってみましたか

update statistics *table_name*

その上に?それが失敗した場合は、実行することでスキャン記述子の数を確認できます

sp_monitorconfig "aux scan descriptors"

実行してそれを増やします

sp_configure "aux scan descriptors", x

ここで、xは必要なスキャン記述子の数です。

ストアドプロシージャが使用するスキャン記述子の数を減らしたい場合は、ここに従って、次の ことを行う必要があります。

クエリを書き直すか、一時テーブルを使用してステップに分割します。データのみがロックされたテーブルの場合、テーブルスキャンが多い場合は、インデックスを追加することを検討してください。

しかし、クエリプランを見ずに、より具体的なアドバイスを与えることは不可能です。

于 2008-11-07T09:55:51.500 に答える
1

これは、CR が送信された Sybase 12.5.2 の不具合です。このリストの問題 361967 を参照してください。12.5.3 以降のパッチが適用されました。

于 2008-11-10T23:43:56.603 に答える