我有许多程序,我使用相同的数据库链接,这个程序可以在不同的时间执行,或者根据调度程序作业的不同,一些程序同时运行。本程序用于从远程数据库获取数据并将数据插入本地数据库。因为我不想在执行每个过程之后都打开数据库连接,因为它会在数据库连接上产生负载,这可能会影响查询成本和查询执行时间。这就是为什么我使用dbms_session在每个过程结束时关闭数据库链接的原因。DBMS_SESSION.CLOSE_DATABASE_LINK
但我不知道这是否会导致任何问题,而获取数据的一些过程,在同一时间执行。当dbms会话关闭一些过程的数据库链接连接时,同时如果任何过程试图访问数据库链接,它可能无法获取数据或导致任何错误。使用DBMS_SESSION.CLOSE_DATABASE_LINK
时会出现这种情况吗?
2条答案
按热度按时间ldxq2e6h1#
以下是可以关闭链接的方法:
A.只有打开数据库链接的会话才能关闭它。数据库链接在会话关闭时关闭...
select * from dba_DB_LINKS
将显示创建的数据库链接V$DBLINK将列出会话中所有打开/活动的数据库链接。有关dblink已打开多长时间的指示,请运行:
如何知道一个事务是本地的还是分布式的?
检查v$global_transaction
B.使用ALTER SESSION或显式使用命令:
或使用以下软件包:
C.也可以设置idle_time limit给连接dblink的用户。在dblink的服务器端(dblink的目标)问题:
abithluo2#
只是想知道如果我们使用“dbms_session.close_database_link()”方法,在未来的数据库连接是否会工作(未来的数据库连接是否会建立新的连接源到目的地)?