Во время обработки оператора SELECT наш сервер оракула задохнулся с переменными связывания, близкими к 3500 (!!).
Этот выбор, очевидно, создается динамически с помощью кода, который мы не можем изменить. Во время выполнения этого выбора сервер БД перешел на 100% использование процессора, и наша система почти остановилась.
Мы знаем, как воспроизвести эту проблему. Таким образом, мы можем предотвратить это конкретное состояние. Но мне интересно, если есть способ защитить БД (по конфигурации) от этого типа проблем.
Обновление
Выбор выглядит так:
SELECT "FieldOfChar20"
FROM "TableOf111Krows"
WHERE ( "FieldOfChar20" BETWEEN :a0 AND :a1
OR "FieldOfChar20" BETWEEN :a2 AND :a3
OR "FieldOfChar20" BETWEEN :a4 AND :a5
snip snip
OR "FieldOfChar20" BETWEEN :a290 AND :a291
OR "FieldOfChar20" BETWEEN :a292 AND :a293
)
OR ( "FieldOfChar20" IN
(:a294,
:a295,
snip snip
:a1292,
:a1293
)
OR "FieldOfChar20" IN
(:a1294,
:a1295,
snip snip
:a2292,
:a2293
)
OR "FieldOfChar20" IN
(:a2294,
:a2295,
snip snip
:a3292,
:a3293
)
OR "FieldOfChar20" IN
(:a3294,
:a3295,
snip snip
:a3476,
:a3477
)
)
Версия Oracle 10.2.0.2