訊息 605,層級 21,狀態 3,程序 sp_自已寫的SP_35,行 85
嘗試提取資料庫 2 中的邏輯頁 (3:269752) 失敗。它屬於配置單位 427583862145024,而非屬於 2954388358027345920。
前陣子在客戶執行某支SP時發生了以下的錯誤,
訊息 605,層級 21,狀態 3,程序 sp_自已寫的SP_35,行 85
嘗試提取資料庫 2 中的邏輯頁 (3:269752) 失敗。它屬於配置單位 427583862145024,而非屬於 2954388358027345920。
KB960770有針對這個問題解決!
安裝此累積更新套件之後,您必須啟用追蹤旗標 4135。若要執行此動作可以新增 -T4135 啟動參數,或者您可以為個別的工作階段使用 dbcc traceon(4135) 陳述式。
但那是針對SQL 2008,客戶的版本是 SQL 2008 R2 SP2
So...那就想別的解法,
有詢問 Super SQL Server 上的先進,有建議將tempDB的實體檔案移到別的磁碟去,如下
select DB_NAME(2) -- 應該是tempdb
--如 果一直發生這樣的狀況,可預期是tempdb所 屬disk或是file的 狀況。建議您可以使用
USE master;
GO
ALTER DATABASE tempdb
MODIFY FILE (NAME = tempdev, FILENAME = 'E:\SQLData\tempdb.mdf');
GO
ALTER DATABASE tempdb
MODIFY FILE (NAME = templog, FILENAME = 'F:\SQLLog\templog.ldf');
GO
變更tempdb的路徑(當然該部分需要重新啟動SQL Server Instance)才會生效。
之後持續保持觀察是否有這樣況問題
但因為我們的客戶不能移動tempdb的位置!
所以只好修改SQL,找到那個建立temp table的地方,
增加CLUSTERED PRIMARY KEY,如下
ADD id int IDENTITY(1,1) CONSTRAINT id PRIMARY KEY CLUSTERED
Hi,
亂馬客Blog已移到了 「亂馬客 : Re:從零開始的軟體開發生活」
請大家繼續支持 ^_^