Может ли запрос от Oracle к DB2 через dblink заблокировать таблицу DB2? - PullRequest
0 голосов
/ 23 июня 2009

У меня запрос среднего размера с 500 000 регистров из Oracle в систему DB2 через DBLink. Может ли этот запрос заблокировать таблицу DB2, чтобы ее можно было обновлять до тех пор, пока я не закрою DBLink или пока я не закончу работу с запросом (вставка в таблицу Oracle)

Ответы [ 2 ]

0 голосов
/ 25 июня 2009

Кажется, что возможно блокировать таблицы с помощью выбора через Oracle dblinks, потому что невозможно определить DBLINK как READ UNCOMMITED, но проблему можно решить с помощью другой системы БД, которая поддерживает эту функцию, например, SQLServer. Вот что говорит последний пост на этом форуме:

Форум

"Невозможно установить или обмануть оракула при выборе с незафиксированным чтением, даже при выборе данных из внешней базы данных через DB_LINK

Что мы сделали, чтобы обойти это, так это обошли драйвер odbc из oracle, чтобы прогрессировать все вместе, так как любые заблокированные столбцы на стороне прогресса бомбардировались для нас при выборе DB_LINK, даже если мы установили только транзакцию для чтения. 1009 *

Вместо этого мы использовали SQLServer в качестве буфера между ORACLE и Progress. С SQLServer вы можете установить уровень изоляции для чтения незафиксированным. поэтому мы создали SQLServer представления таблиц хода выполнения через связанный сервер SQLServer, а затем мы выбираем из этих представлений DB_Link от оракула до SQLServer.

Кажется, это работает нормально "

0 голосов
/ 25 июня 2009

Механизм DB2 увидит DBLink как удаленное приложение, которое выполняет оператор выбора. Если это приложение использует стабильность курсора (CS) или аналогичный разумный уровень изоляции, база данных DB2 не должна блокировать какие-либо строки очень долго. Самое большее, может быть серия очень коротких блокировок на уровне строк, поскольку курсор из DBLink выполняет итерацию по набору результатов запроса DB2. Если DBLink ничего не меняет на стороне DB2, в DB2 не должно быть значительных блокировок, поэтому другие приложения должны иметь возможность подключаться к DB2 для выполнения обновлений. Пожалуйста, дайте мне знать, если я неправильно понял ваш вопрос, и я уточню свой ответ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...