我觉得我的 SQL 连接一定有问题。我通常忽略了它,但我最终会尝试深入了解它。
my $dsn = "DBI:Oracle:host=$host;sid=$sid";
my $dbh = DBI->connect($dsn,$dbuser,$dbpass,{ RaiseError => 1,AutoCommit => 0 }) or die("Unable to connect: $DBI::errstr");
Run Code Online (Sandbox Code Playgroud)
每次跑步都需要 60 秒DBI->connect
。相当大的查询可能需要一些时间,网络延迟可能会导致一些延迟,但所有这些都超出了连接所需的 60 秒。我可以DBI->connect
在不实际运行查询的情况下直接运行然后立即关闭它,这将需要 60 秒。我可以使用不同的工具毫无问题地查询这个数据库,但是任何时候我DBI->connect
对它运行一个,都需要 60 秒。我的大多数查询返回的时间为 61.2 秒、63.4 秒或 65.3 秒。不管怎样,从脚本点击 DBI->connect 到它点击下一行的时间是 60 秒。我什至在之前和之后的行上给它加上了时间戳。时间戳之间的唯一内容是DBI->connect
.
我究竟做错了什么?