2008-11-07 60 views
0

我最近看到與顯示錯誤消息像這樣的舊系統上的存儲過程的偶然問題:如何最小化T-SQL中表的輔助掃描描述符的數量?

服務器消息:編號10901,嚴重性17: 此查詢需要X輔助掃描 描述,但目前有 只有Ÿ輔助掃描描述 可用。無論是提升價值的 的 配置參數「輔助掃描描述符的數量」或稍後再試您的 查詢。

其中X略低於爲Y。 Sybase手冊有用地告訴我,我應該重新設計我的表以使用較少的輔助掃描描述符(如何?!),或者增加系統上可用的數量。奇怪的是,它一直工作正常多年,唯一改變的是我們修改了幾列的數據類型並添加了一個索引。任何人都可以對此有所瞭解嗎?

回答

2

你不說你是什麼版本的Sybase上,但以下是良好的ASE 12.5起。

我懷疑它是除了多數民衆贊成拋出的查詢計劃存儲過程的新指標。您是否嘗試過運行

update statistics *table_name* 

上呢?如果失敗,你可以通過運行

sp_monitorconfig "aux scan descriptors" 

找出你有多少掃描描述符,然後增加運行

sp_configure "aux scan descriptors", x 

其中x是您需要掃描描述符的數量。

如果你想降低了存儲過程使用再根據here你必須

重寫查詢,或將其分解成使用臨時表步驟的掃描描述符的數量。對於DOL鎖定表,如果有許多表掃描,請考慮添加索引。

但沒有看到一個查詢計劃,它是不可能給出更具體的建議。

+1

這是一般的好建議,請參閱下面的爲Sybase 12.5.2解決方案 – ninesided 2008-11-10 23:42:29

1

這是Sybase 12.5.2缺陷對其中CR提交,請參閱問題361967中this list。它被修補爲12.5.3及以上。