У меня есть веб-приложение, которое позволяет пользователям создавать собственные сложные запросы, используя упрощенный язык сценариев и графический интерфейс. Проблема в том, что иногда мои пользователи чувствуют себя не очень хорошо. Зачастую они создают запрос, который выполняет массивные объединения или использует бессмысленные сравнения больших наборов данных, которые быстро потребляют большую часть доступных ресурсов на машине. Фактически, небольшое количество людей разрушает партию для всех остальных. Обучить или запретить этих «специальных» пользователей не вариант.
Итак, вот мой вопрос: существуют ли какие-либо базы данных (NoSQL или SQL или что-нибудь еще), которые поддерживают ограничения ресурсов для каждого запроса?
Ограничение использования ЦП было бы минимальным, но другие ограничения, такие как время выполнения, использование памяти и ограничение числа возвращаемых строк, также были бы хорошими. Было бы особенно удобно, если бы я мог программно определять пределы, чтобы я мог ориентироваться на своих проблемных пользователей.
РЕДАКТИРОВАТЬ : дополнительные очки за открытые и / или бесплатные продукты.
EDIT2 : Найдены некоторые связанные вопросы, которые дают понять, что Oracle поддерживает какую-то схему ограничения ресурсов, но есть ли другие продукты, которые это делают? Просто Oracle и SQL Server?
https://serverfault.com/questions/124158/throttle-or-limit-resources-used-by-a-user-in-a-database
Есть ли способ ограничить или ограничить ресурсы, используемые пользователем в Oracle?