2016-09-13 42 views
2

在此任何地方都找不到任何東西。SQL Azure錯誤 - TEMPDB已達到其大小配額

數據庫使用的規模不到其配額的1%。當我運行一個使用TempDB的長時間運行的查詢時,我得到這個異常。

+0

什麼是您的天藍版?,服務層? – TheGameiswar

+0

最新版本... S1層 –

+0

一些更多細節 - 我似乎得到這個異常,甚至沒有明確使用TempDB ....運行查詢拉回〜209k記錄觸發相同的錯誤消息 –

回答

1

SqlAzure地的一些限制取決於你tier..I有一個基本的S0層和我沒有下文測試知道什麼是每個會話使用TEMPDB我梯隊的侷限性..

我有一個訂單表這是在大小近282 MB,我跑在下面loop..below查詢測試設置

while 1=1 
begin 
print @a 
print @size 

insert into #orders 
select * from orders 

end 

我跑下面的查詢(大部分在Azure上運行以及SQLServer的查詢)在另一個會話知道tempdb中用法。

select * from sys.dm_db_session_space_usage 

我得到的配額錯誤,說明會話tempdb的使用exceeeded限制時,我會達到974016 pages.Each頁是size..So 8 KB在我的梯隊,我打一個錯誤,當一個會話使用近1 GB的空間..

+0

我在S1 tier ....當我達到141408 internal_objects_alloc_page_count時,我得到這個異常......似乎遠低於1GB? –

+0

@DavidMcSpadden:很奇怪,我會測試你的服務層 – TheGameiswar

1

這個例外是誤導 - 但我們通過數字(18,0)字段在我們的WHERE語句中將它追蹤到單個OR子句。

我們通過將語句(奇怪的是)更改爲相關的子查詢(您認爲實際上會增加TempDB)來解決此問題。

聲明原文:

WHERE (x <> 0 OR y <> 0) 

新聲明:

WHERE x IN (SELECT id FROM Table Where x <> OR y <> 0) 

在Azure中端希望有人能在一個小更詳細的解釋 - 我們仍然很困惑。

+1

可能是這個查詢使用假脫機或排序 – TheGameiswar

相關問題