为什么在Python中运行查询比在Oracle SQL Developer中运行查询花费的时间更长?

2024-05-05 01:20:07 发布

您现在位置:Python中文网/ 问答频道 /正文

编辑:VS代码不好用。我在Jupyter中运行了完全相同的代码,它工作得更快

我一直在使用32位Python,因为数据库是32位的。我不知道这是否会影响查询的速度,但它确实会导致内存问题,所以我想在这里提及它

我注意到,在Oracle SQL Developer中运行查询时,比通过python连接到数据库并运行查询时快20%-30%。我使用pandas将结果导出到csv,作为自动化过程的一部分,否则我会从Oracle手动导出结果

import cx_Oracle as cx
import pandas as pd


dsn_tns = cx.makedsn('server_name', 'port', service_name='service_name')
conn = cx.connect(user=config.username, password=config.password, dsn=dsn_tns)
cursor = conn.cursor()

f = open('.sql file path', 'r')
sql = f.read()
f.close()

pd.read_sql_query(sql, conn)

这很简单,可以工作,但比在Oracle中运行我的查询慢得多

我的问题是,为什么?我怎样才能提高速度呢


Tags: 代码nameimport数据库pandassqlasservice
2条回答

VS代码给了我这个问题。我用了Jupyter,效果很好,速度也更快

总结各种意见:

  • 检查两个地方的测量值是否相同。你在同一台机器上运行吗?您正在测量连接时间和SQL文件加载时间吗?SQLDeveloper是否真的获取了所有行,或者只是一些页面——这是我看到的常见问题

  • 遵循手册中的cx_Oracle调优提示:https://cx-oracle.readthedocs.io/en/latest/user_guide/tuning.html

相关问题 更多 >