2016-04-25 39 views
2

該查詢只返回4-5行。執行時間不到1秒。我有trid增加cfquery和cfsetting的超時但不工作。大部分時間代碼都能成功運行,但每次20-30次請求後都會出現此錯誤。我正在使用SQL Server數據庫。我知道你什麼時候重新啓動cf服務器或db服務器超時問題有時會發生,但是這個錯誤是在沒有重新啓動任何服務(cf或sql server)的情況下進行的。我認爲應該有一些在cf服務器上的設置更改請建議。請求已超出允許的時間限制標籤:CFQUERY

請求已超出允許的時限標籤:CFQUERY 發生錯誤就行180

<CFQUERY NAME="Sections" DATASOURCE="abcd"> 
    SELECT * FROM News_Sections where Section = 'Home' ORDER BY Page_order 
</CFQUERY> 
+1

超時可能與數據庫或應用程序服務器上的其他活動有關。 –

回答

0

這裏可能出現的問題將是數據庫的ColdFusion。我有幾個提示給你。首先,使用MSSQL Activity Monitor檢出塊(作爲等待類型)。如果你看到一個塊或「頭部阻塞器」點擊該項目,它會顯示你的查詢(有時:)。

enter image description here

一旦你找到它,解決了這個問題會涉及索引或更改查詢(複雜的連接或子查詢常常遇到意想不到的後果)。

在上面的查詢中,使用「WITH(nolock)」可能會有一些運氣允許髒讀(如果您剛剛獲得類別,可能還可以)。您也可以考慮使用cachedwithin緩存上述查詢或將其放在應用程序範圍中。如果它只是我認爲合理的廣泛的「家」類別(雖然顯然我不知道你的模式)

我最後的建議是檢查發生錯誤的頁面。如果你有一組查詢在一起,它可能不是你查詢認爲是錯誤的,但它是上面的一個它不常見,但它可能發生

0

正如先生指出的。Bracuk,這可能不是你的查詢的問題,這個錯誤與CFAdmin for Request超時中的設置有關,它是正在加載的頁面,它經歷了超時並拋出錯誤。恰好正在處理您的查詢。

因此,儘管查詢是一個開始查找的好地方,但在搜索超時原因時一定要檢查整個腳本。

相關問題