微軟sql SERVER 2005一個cache的BUG引起的問題(SP補丁包小於等於2)

edwardking888發表於2011-07-29
公司資料庫在2009年的時候(資料庫版本SQL SERVER 2005 SP2)遇到過一個超級大的BUG,引起資料庫執行異常緩慢。後來通過微軟技術支援網站獲得解決。現摘錄下來(當時還沒有寫部落格的習慣,只是摘錄在word文件中,今天在看工作記錄的時候,發現了這個文件。),供參考:

問題描述

=======

資料庫伺服器執行一段時間後,前端應用的查詢會越來越慢。重啟sql server,能暫時解決這個問題,但隨著執行時間加長,問題又會再次發生。


根本原因

=======

Sql server為了增強效能,會盡可能使用cacheTokenAndPermUserStore是其中的一種。由於機器是64位,記憶體有64GBsql server沒有記憶體壓力,因此它就不會去清空這個cache。可是,由於訪問這個cache只能單一執行緒,因此當cache的數目很大時,反而線上程間相互阻塞,造成sql server的效能下降。


解決方案

=======

新增-T4610-T4618標誌,重啟sql server

-T4610 使得sql server 使用2048 bucketscache tokenperm cachestoreSql 2005 預設是256.

-T4618 合併-T4610,每個database8192 buckets,更大了。



來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8183550/viewspace-703565/,如需轉載,請註明出處,否則將追究法律責任。

相關文章