таблицу like as со схемой tmp
2) загружаю в неё данные
3) в транзакции меняю схему у основной на swap, у временной(tmp) на public
Просто проблема выходит в том, что за эту транзакцию множество таблиц так свапается(12 раз в час), но именно из которой происходит частое чтение(селект до 3 секунд раз в минуту) бывает что локается и на долго(на 40мин).
И еще вопрос:
Если селект достаточно сложный он не может же встать в ожидание если кто то залокает одну из его таблиц и начинать высчитываться по новой? Или из-за того что данные часто обновляются в таблице по сравнению с продолжительностью выполнения запроса и он каждый раз пытается новые прочитать ? И там и там нет же ?
Всё равно непонятно, какова цель мероприятия и почему оно делается именно через промежуточную таблицу. Только чтобы DELETE не выполнять?
> бывает что локается и на долго(на 40мин). Значит, что-то её "держит" (выполняется или выполнялся как минимум SELECT в какой-то открытой транзакции), да и всё. > Если селект достаточно сложный он не может же встать в ожидание если кто то залокает одну из его таблиц и начинать высчитываться по новой? Ни в коем случае! Откуда Вы вообще взяли эту идею?! ;) > и он каждый раз пытается новые прочитать "Он" не пытается читать никаких новых данных (без locking clause) никогда. > И может ли как то тут помочь какой-нибудь режим share ? Вы бы сначала разобрались, что у Вас происходит...
Обсуждают сегодня