Microsoft 將 Microsoft SQL Server 2008 修補程式作為一個可下載檔案發佈。 由於修補是累積性的,每個新版本都包含了先前 SQL Server 2008 修補釋版本中包含的所有熱修補與安全修補。Microsoft 將 Microsoft SQL Server 2008 或 SQL Server 2008 R2 修正作為一個可下載檔案發佈。 由於修補是累積性的,每個新版本都包含了先前 SQL Server 2008 或 SQL Server 2008 R2 修補釋版本中包含的所有熱修補與安全修補。
症狀
請考慮以下案例:
你有一個全文搜尋查詢,使用了 CONTAINSTABLE 函數,並包含許多條件條件中的 CONTAINSTABLE 函數Microsoft SQL Server 2008 SQL Server 2008 R2。 例如,你有以下 50 個 AND 運算:宣告 @Keywords varchar (4000) = NULL
設定 @Keywords= N ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (
(「TOKarchitect」還是「architectural」)
以及 (「TOKengineer」或「ENGINEER」) )
還有「gineer」) (「TOKmechanical」或「MECHANICAL」) )
以及 (「TOKengineer」或「ENGINEERING」) )
(「TOKelectronic」或「ELECTRONICS」) ) (「TOKENGINEER」或「ENGINEER」) ) (「TOKelectronic」或「ELECTRONICS」) ) (「TOKENGINEER」或「ENGINEERING」) ) (「TOKELECTRIC」或「ELECTRICAL」) ) (「TOKENGINEER」或「ENGINEER」) ) (「TOKELECTRIC」或「ELECTRICAL」) ) (「TOKENGINEER」或「ENGINEERING」) ) (「TOKCONTROL」或「CONTROL」) ) (「TOKSYSTEM」或「SYSTEMS」) ) (「TOKENGINEER」或「ENGINEER」) ) 與 (「TOKPROJECT」或「PROJECT」) ) (「TOKmanager」或「manager」) ) (「TOKengineer」或「ENGINEERING」) ) ) (「TOKmanufacture」或「Manufacturing」) ) (「TOKengineer」或「ENGINEER」) ) (「TOKmetallurgist」或「冶金學」) ) (「TOKmetallurgist」或「冶金學家」) ) (「TOKprocess」或「Process」) ) (「TOKTechnology」或「技術」) ) (「TOKproduct」或「生產」) ) (「TOKengineer」或「ENGINEER」) ) (「TOKQuality」或「QUALITY」) ) (「TOKENGINEER」或「ENGINEER」) ) (「TOKQuality」或「QUALITY」) ) (「TOKCONTROL」或「CONTROL」) ) ( TOK」TOK 工程師」或「工程師」) ) 以及「機電一體化」) (「TOK土木」或「土木」) ) (「TOKENGINEER」或「工程師」) ) (「TOK土木」或「土木」) ) (「TOKENGINEER」或「工程」) ) (」TOKdesign」或「DESIGN」) ) (「TOKENGINEER」或「ENGINEERING」) ) (「TOKdesign」或「DESIGN」) ) (「TOKENGINEER」或「ENGINEER」) ) (「TOKgraduate」或「GRADUATE」) ) (「TOKENGINEER」或「ENGINEER」) ) (「TOKgraduate」或「GRADUATE」) ) (「TOKENGINEER」或「ENGINEERING」) ) (「TOKENGINEER」或「ENGINEERING」) ) (「TOKgraduate」或「GRADUATE」) ) ) 而非 (」) (「申請」或「招募」) ) (「TOK顧問」或「顧問」) ) (「TOK培訓生」或「培訓生」) ) (「TOKRecruitment」或「招募」) )從 CONTAINSTABLE (test_table 選擇 * , *, @keywords1000)
你執行查詢。
在這種情況下,可能會發生「非產生排程器」錯誤。 此外,SQL Server 2008 或 SQL Server 2008 R2 應用程式日誌資料夾會產生一個迷你傾印檔案,並在 SQL Server 錯誤日誌檔中記錄以下錯誤:
注意
使用「dbghelp.dll」版本「4.0.5」的時間戳>伺服器<
<時間戳> 伺服器 ***無法取得 spid 0 的執行緒上下文
<時間戳> 伺服器 *
*******************************************************************************
<時間戳> 伺服器 *
<時間戳> 伺服器 * 開始堆疊傾倒:
<時間戳>伺服器 * <時間>戳SPID<>
<時間戳> 伺服器 *
<時間戳> 伺服器 * 非產生排程器
<時間戳> 伺服器 *
<時間戳> 伺服器 *
*******************************************************************************
傾印的時間戳>伺服器堆疊簽章是0x000000000000030D<
<時間戳記> 伺服器外部傾印程序回傳代碼0x20000001。 外部傾印程序沒有回傳錯誤。
<時間戳> 伺服器程序 0:0:0 (0xf94) 工作者 0x00000000817481A0 在排程器 0 上似乎沒有妥協。 串程建立時間:12925321224306。 約執行緒 CPU 使用時間:核心 62 毫秒,使用者 75187 毫秒。 流程利用率98%。 系統閒置 0%。 間隔:76403 毫秒。
<時間戳> 伺服器程序 0:0:0 (0xf94) 工作者 0x00000000817481A0 在排程器 0 上似乎沒有妥協。 串程建立時間:12925321224306。 約執行緒 CPU 使用:核心 125 毫秒,使用者 145250 毫秒。 流程利用率98%。 系統閒置 0%。 間隔:148417毫秒。
<時間戳> 伺服器程序 0:0:0 (0xf94) 工作者 0x00000000817481A0 在排程器 0 上似乎沒有妥協。 串程建立時間:12925321224306。 約執行緒 CPU 使用:核心 171 毫秒,使用者 205515 毫秒。 流程利用率98%。 系統閒置 0%。 間隔:209729毫秒。
<時間戳> 伺服器程序 0:0:0 (0xf94) 工作者 0x00000000817481A0 在排程器 0 上似乎沒有妥協。 串程建立時間:12925321224306。 約執行緒 CPU 使用:核心 218 毫秒,使用者 266343 毫秒。 流程利用率98%。 系統閒置 0%。 間隔:271588毫秒。
<時間戳> 伺服器程序 0:0:0 (0xf94) 工作者 0x00000000817481A0 在排程器 0 上似乎沒有妥協。 串程建立時間:12925321224306。 約執行緒 CPU 使用:核心 234 毫秒,使用者 325156 毫秒。 流程利用率97%。 系統閒置 0%。 間隔:333671毫秒。
<時間戳> 伺服器程序 0:0:0 (0xf94) 工作者 0x00000000817481A0 在排程器 0 上似乎沒有妥協。 串程建立時間:12925321224306。 約執行緒 CPU 使用:核心 296 毫秒,使用者 386000 毫秒。 流程利用率97%。 系統閒置 0%。 間隔:396370 毫秒。
原因
此問題發生是因為 SQL Server 2008 或 SQL Server 2008 R2 未能正確釋出排程器。
解決方式
累積更新資訊
SQL Server 2008 R2
這個問題的修正最早是在累積更新 5 中釋出的。 欲了解更多如何取得 SQL Server 2008 R2 累積更新套件的資訊,請點擊以下文章編號以瀏覽 Microsoft 知識庫中的文章:
2438347 2008 R2 SQL Server 累積更新包 註:由於建置是累積性的,每個新修正版本都包含了前一 SQL Server 2008 R2 版本中所有的熱修補與安全修補。 我們建議您考慮套用包含此熱修正的最新修正版本。 如需詳細資訊,請按一下下面的文章編號,檢視「Microsoft 知識庫」中的文章:
981356 在 SQL Server 2008 R2 發行之後所發行的 SQL Server 2008 R2 組建 (機器翻譯)
SQL Server 2008 服務包 1
此問題的修正最初於 SQL Server 2008 Service Pack 1 的累積更新 10 中釋出。 欲了解更多關於此累積更新套件的資訊,請點擊以下文章編號以瀏覽 Microsoft 知識庫中的文章:
2279604 2008 SQL Server 服務包 1 的累積更新包 10 備註:由於建置是累積式的,每個新修正釋版本都包含了前一SQL Server 2008 修正釋版本中包含的所有熱修補與安全修補。 Microsoft 建議你考慮套用包含此熱修補的最新修正版本。 如需詳細資訊,請按一下下面的文章編號,檢視「Microsoft 知識庫」中的文章:
970365 2008 SQL Server 2008 版本是在 2008 服務包 1 發布後釋出SQL Server Microsoft SQL Server 2008 熱修補是針對特定SQL Server服務包所建立的。 您必須對安裝 SQL Server 2008 Service Pack 1 SQL Server 熱修補程式。 預設情況下,SQL Server 服務包中提供的任何熱修正會包含在下一個 SQL Server 服務包中。
SQL Server 2008 Service Pack 2
此問題的修正最初於 SQL Server 2008 Service Pack 2 的累積更新 1 中釋出。 欲了解更多關於此累積更新套件的資訊,請點擊以下文章編號以瀏覽 Microsoft 知識庫中的文章:
2289254 2008 SQL Server 服務包 2 累積更新 注意 由於建置是累積式,每個新修正版本都包含了 2008 SQL Server 修正釋版本中包含的所有熱修補與安全修補。 我們建議您考慮套用包含此熱修正的最新修正版本。 如需詳細資訊,請按一下下面的文章編號,檢視「Microsoft 知識庫」中的文章:
2402659 2008 服務包 2 發布後SQL Server SQL Server 2008 版本
因應措施
為了解決這個問題,可以使用全文搜尋詞庫來定義謂詞的同義詞。
為此,請使用 FORMSOF 函式與 THESAURUS 值,然後將所有關鍵字加入參數。
針對「症狀」部分所描述的範例,以下是範例查詢的更新版本:從test_table中選擇*,其中包含 (*、『 (THESAURUS的形式』、『建築學』、『工程師』、『機械學』、『工程學』、『電子學』、『工程師』、『電機』、『控制』、『系統』、『專案』、『經理』、『製造』、『冶金學』、『冶金師』、『製程』、『設計』、『技術』、『生產』、『品質』、『控制』、『土木』、『畢業生』、『招募』、『顧問』,實習生」、「招募」) )
狀態
Microsoft 已確認這是「適用對象」一節中列出的 Microsoft 產品中的問題。
參考資料
欲了解更多關於 CONTAINSTABLE 函式的資訊,請造訪以下 Microsoft 開發者網絡 (MSDN) 網站:
關於 CONTAINSTABLE 函數的一般資訊欲了解更多關於 SQL Server 增量服務模型的資訊,請點擊以下文章編號以瀏覽 Microsoft 知識庫中的文章:
935897 來自 SQL Server 團隊之可傳遞解決回報問題的 Hotfix 的累加服務模型 (機器翻譯)
欲了解更多關於 SQL Server 更新命名架構的資訊,請點擊以下文章編號以瀏覽 Microsoft 知識庫中的文章:
822499 Microsoft SQL Server軟體更新套件的新命名架構欲了解更多軟體更新術語,請點擊以下文章編號以瀏覽Microsoft知識庫中的文章:
824684 描述用於描述Microsoft軟體更新的標準術語