2009-08-21 56 views
6

如果查詢時間過長,有什麼辦法可以使PDO對象拋出錯誤?我已經嘗試PDO :: ATTR_TIMEOUT沒有效果。我可以阻止PDO中的長查詢嗎?

我想辦法把它是否正在運行超過一定量的時間較長的查詢拋出一個錯誤。這不是我在數據庫中可以做的事情,即沒有在數據庫上運行維護作業或任何事情。

回答

3

我不知道你所說的「這不是東西,我可以在數據庫中做」的意思,但我會建議你有管理數據庫設置Oracle的個人資料的限制這個數據庫上側。有些參數可以限制查詢,如CPU_PER_CALL和LOGICAL_READS_PER_CALL。如果需要,配置文件只能應用於特定的用戶。

+0

這不長的查詢總的來說,我想停下來,但僅這一項是用於監控數據庫。 – 2009-08-21 19:10:24

+0

啊,我明白了。那麼,如果沒有客戶端解決方案,與型材有點令人費解的辦法是重新配置應用程序,使這個查詢只能由特定的用戶發出,然後配置文件只適用於該用戶。 – dpbradley 2009-08-21 19:18:06

2

我不知道你是否能在Oracle中這樣做,但我會說這是不可能在PHP做,因爲PHP是發出查詢到Oracle要運行,然後等待Oracle的響應返回。有可能修改PDO擴展來支持這一點,但是您需要修改擴展代碼(實際的C代碼),因爲在PHP中可能沒有辦法做到這一點。

相關問題