none
無法配置空間給資料庫TEMPDB的物件,因為DEFAULT檔案群組已滿 RRS feed

  • 問題

  •  

    各位先進好

    小弟的程式執行到特定SQL指令時,會出現下面錯誤訊息,此程式內的其他SQL指令並不會造成此問題

    執行階段錯誤'-2147217900 (80040e14)':
    [Microsoft][ODBC Server Driver][SQL Server]無法配置空間給資料庫'TEMPDB'的物件'(SYSTEM table id:-813903859)',因為'DEFAULT'檔案群組已滿。

    經過小弟一些時間的摸索,發現該SQL指令所下的Select的對象是一個View表,小弟試圖開啟該檢視表回傳該表內容,也會得到上面同樣的訊息,所以進一步嘗試下面不同動作,皆失敗
    1. 將該檢視表刪除,重新新增一個一模一樣的檢視表,檢視表名稱一樣,試圖回傳檢視表內容,測試得到相同結果.
    2. 重新新增一個檢視表,檢視表名稱不同,檢視表的Select指令與上述檢視表一樣,試圖回傳檢視表內容,測試得到相同結果.
    3. 檢查Tempdb空間設定,確定檔案與Log的設定都是自動增長,再次試圖回傳檢視表內容,測試得到相同結果.
    4. 試圖將SQL服務停止,將Tempdb的資料檔與Log檔重新命名,SQL服務重新啟動後,系統自動新增新的資料檔與Log檔,再次試圖回傳檢視表內容,測試得到相同結果.

    其他敘述:
    1. 此程式已經上線5,6年的時間,此SQL指令以前都正常運作,但是今天起卻無法執行
    2. 不確定此錯誤是否應該從這個有問題的檢視表去處理,但是100%確定問題確實是來自該檢視表
    3. 版本:SQL Server 2000
    4. TempDB所在磁碟可用空間:30Gb

    真的要拜託各位前輩幫幫忙,感謝

    2007年2月20日 上午 01:11

解答

  • Hi: 您好,

    由您提供的資料來分析,推論應該是硬碟效能不佳所導致。
    建議事先將 Tempdb 擴展到足夠的空間,就可以解決此問題。

    希望對您有幫助 ...

    Best Regards
    Derrick Chen 德瑞克

    2007年2月28日 上午 11:03
  • 陳兄

    感謝您的協助,將Tempdb的預設空間加大真的就解決了

    另外,您所謂的硬碟效能不佳,是因為該硬碟的效能水平就是如此,還是硬碟使用多年後導致效能下降,有提升效能的方法嗎?感謝並期待您的回覆

    2007年3月2日 上午 02:45

所有回覆

  • 您好:
    問題發生的原因有兩種:

    1. 儲存資料的磁碟空間滿了。
    2. 資料庫沒有設定成自動成長,而且它所擁有的空間也達到儲存上限。

    由您所提供的資訊來看,可能是因為 TempDB 這個系統資料庫已有指定「限制檔案成長」這個選項,也就是說該資料庫已經達到儲存的上限。

    2007年2月21日 下午 03:30
    版主
  • Hi: 您好,

    由您提供的資料來分析,推論應該是硬碟效能不佳所導致。
    建議事先將 Tempdb 擴展到足夠的空間,就可以解決此問題。

    希望對您有幫助 ...

    Best Regards
    Derrick Chen 德瑞克

    2007年2月28日 上午 11:03
  • 陳兄

    感謝您的協助,將Tempdb的預設空間加大真的就解決了

    另外,您所謂的硬碟效能不佳,是因為該硬碟的效能水平就是如此,還是硬碟使用多年後導致效能下降,有提升效能的方法嗎?感謝並期待您的回覆

    2007年3月2日 上午 02:45
  • Hi: 您好,

    硬碟寫入效能不佳的原因可能有很多,像是說:沒有定期執行磁碟重組、沒有使用 Raid 10 等等。


    希望對您有幫助 ...

    Best Regards
    Derrick Chen 德瑞克

    2007年3月3日 上午 11:31
  •  DerrickChen 寫信:

    Hi: 您好,

    由您提供的資料來分析,推論應該是硬碟效能不佳所導致。
    建議事先將 Tempdb 擴展到足夠的空間,就可以解決此問題。

    希望對您有幫助 ...

    Best Regards
    Derrick Chen 德瑞克

    各位好!抱歉翻了篇舊文

    因為我今天有在SERVER上遇到這個問題,我並沒有限制檔案成長,但還是遇到此問題

    而且我們DB是放在SAN上的

    想請問一下放在SAN上也會有硬碟效能不佳的問題嗎?

    我使用的SERVER是SQL 2000 SP3

    這樣或許有些籠統,但還是希望各位可以給個處理問題的方向

    謝謝各位

    2007年4月30日 上午 03:12
  •  Rick Huang 寫信:
     

    各位先進好

    小弟的程式執行到特定SQL指令時,會出現下面錯誤訊息,此程式內的其他SQL指令並不會造成此問題

    執行階段錯誤'-2147217900 (80040e14)':
    [Microsoft][ODBC Server Driver][SQL Server]無法配置空間給資料庫'TEMPDB'的物件'(SYSTEM table id:-813903859)',因為'DEFAULT'檔案群組已滿。

    如果我沒有猜錯的話,當發生問題時,Tempdb 所在的磁碟機應該可用空間為0(或者接近了)了吧,應該是您的查詢中包含了order by or group by 的語句,造成SQL Server 必須要將大量的暫存資料存在Tempdb ,解決之道:改寫法 or 加大硬碟,改寫法的原則:

    1. 善用where 條件,過濾不必要的資料
    2. 少用不必要的排序

     

     

    2007年5月2日 上午 08:56