Ben PDO'de uzun sorguları engelleyebilir miyim?

2 Cevap php

Sorgu çok uzun sürerse bir PDO nesnesi bir hata atmak yapmak için herhangi bir yolu var mı? Ben hiçbir etkisi PDO :: ATTR_TIMEOUT denedim.

Ben o zaman belirli bir miktar daha uzun süre çalışıyorsa, bir sorgu, bir hata atmak için bir yol istiyorum. Bu benim veritabanında yapabileceği bir şey değildir, yani, db ya da bir şey üzerinde çalışan hiçbir bakım işleri.

2 Cevap

Sana "Bu veritabanında yapabileceği bir şey değil" ile ne demek emin değilim, ama veritabanını yönetme kişi veritabanı tarafında bu sınırlamak için bir Oracle profil kurmak var öneririm. Sorguları kap böyle CPU_PER_CALL ve LOGICAL_READS_PER_CALL gibi parametreler vardır. Eğer arzu edilirse, belirli profil kullanıcılar için uygulanabilir.

Ben Oracle yapabilirsiniz emin değilim ama ben PHP çalıştırmak için Oracle sorgu yayımlayarak beri PHP içinde bunu yapmak mümkün değil söylemek için gidiyorum ve sonra geri Oracle'ın yanıt bekliyor. Bu desteklemek için PDO uzantısını değiştirmek mümkün olabilir, ancak muhtemelen sadece PHP bunu yapmak için herhangi bir yolu olmadığı gibi uzantısı kodunu (gerçek C kodu) değiştirmek gerekir.