2009-08-21 12 views
6

Bir sorgu çok uzun sürerse bir PDO nesnesinin hata atmasını sağlamanın bir yolu var mı? Hiçbir etkisi olmadan PDO :: ATTR_TIMEOUT denedim.PDO'da uzun sorguları engelleyebilir miyim?

Belirli bir süreden daha uzun bir süre çalışıyorsa, bir sorgunun bir hata atmasını sağlamak için bir yol istiyorum. Bu, veritabanında yapabileceğim bir şey değil, db veya herhangi bir şey üzerinde çalışan bakım işi yok.

cevap

3

Sana "Bu veritabanında yapabileceği bir şey değil" ile ne demek emin değilim ama veritabanında bu sınırlamak için Oracle profili kurmak veritabanını yönetmek kişi var o öneririm yan. Sorguları kapsayabilen CPU_PER_CALL ve LOGICAL_READS_PER_CALL gibi parametreler vardır. İstenirse profil sadece belirli kullanıcılara uygulanabilir.

+0

Genelde uzun sorgular değil Durdurmak istiyorum, ancak sadece veritabanını izlemek için kullanılan bu. –

+0

Ah, anlıyorum. Eğer bir istemci tarafı çözümü yoksa, profillerle biraz kıvrık bir yaklaşım, uygulamayı yeniden yapılandırmak olacaktır, böylece bu sorgu sadece belirli bir kullanıcı tarafından yayınlanır ve daha sonra profili yalnızca o kullanıcıya uygular. – dpbradley

2

Sana Oracle yapabilirsiniz emin değilim ama geri Oracle'ın yanıt beklediği o zaman PHP Oracle için sorguyu veren çalıştırılacak beri PHP içinde bunu yapmak mümkün değil demek için gidiyorum ve . Bunu desteklemek için PDO uzantısını değiştirmek mümkün olabilir, ancak muhtemelen PHP'de bunu yapmanın bir yolu olmadığı için, uzantı kodunu (gerçek C kodu) değiştirmeniz gerekecektir.