@val18

Какой select написать, чтобы база данных зависла?

Какой sql запрос с выборкой select написать, чтобы зависла база данных? Для примера.
  • Вопрос задан
  • 244 просмотра
Пригласить эксперта
Ответы на вопрос 2
TheRonCronix
@TheRonCronix
СУБД рассчитаны на то, чтобы не зависеть от клиентского приложения. В большинстве случаев, если не пул соединений используется, то под каждого клиента создается свой процесс. Можно легко завесить свой клиентский процесс, но не чужие. Однако, можно попробовать замедлить работу СУБД, влияя на разделяемые ресуры, например, вытеснить из кэша разобранные запросы путем генерации множетсва отличающихся запросов. Не факт, что сработает. Или блокировать доступ к таблице или процедуре путем ее перекомпиляции. Чтобы СУБД реально зависла, для этого нужен баг в СУБД. Но такие ситуации очень индивидуальны. На моей практике был только один такой случай, когда запрос ронял всю СУБД.
Темой атак на СУБД я не занимался, но вопрос задали интересный.
Ответ написан
@kova1ev
можно попробовать взять самую большую таблицу и вот так:
SELECT * FROM table t1, table t2, table t3, table t4, .... ,table tn

(чем больше, тем тормознее будет)

upd: сейчас попробовал в postgre на локалхосте, таблица на тысячу с небольшим записей, запрос:
SELECT * FROM table t1, table t2, table t3
выжрал 16 гигов оперативки и все упало
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы