PHP не закрывает соединения с базой данных (odbc)

У меня есть служба API, которая использует odbc_connect, odbc_exec загрузить данные из базы данных.

У меня есть запрос из 100 строк, который я решил перенести в хранимую процедуру. Количество запросов на обслуживание составляет около 10 в секунду.

Так в чем же проблема: при использовании обычного запроса вроде SELECT smthng все работает нормально, при использовании такой же SELECT в процедуре служба начинает отвечать очень медленно. Это вызывает много открытых соединений в базе данных, которая не закрывается.

Я старался odbc_close_all сразу после odbc_exec а также odbc_fetch — не помогает

SELECT count(*)
FROM master..sysprocesses
WHERE suid > 0

возвращает около 500 соединений.

Также я попытался установить

SET PROC_RETURN_STATUS OFF

Тоже не поможет.

1

Решение

Страница из руководство говорит:

Эта функция не будет работать, если на этом есть открытые транзакции
подключение. В этом случае соединение останется открытым.

Я думаю, что это объясняет поведение, с которым вы сталкиваетесь.
Я думаю, что когда хранимая процедура закончит свою работу, losted связь умрет.
Во всяком случае, здесь необходимо провести некоторые исследования.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]