远程运行cx_Oracle查询时使用哪台计算机的资源?



我找不到类似的问题,在Quora和Reddit上也没有运气。我真的很感激被指出正确的方向,因为我真的超出了我的深度。

我想将笔记本电脑连接到远程服务器。接下来,我想在远程服务器上运行一个用 Python 编写的cx_Oracle查询,以从存储在另一个远程服务器的 Oracle 数据库中提取数据。

例如:

import cx_Oracle
import pandas as pd
conn = cx_Oracle.connect(user="ABC", password="DEF", ip=...) # Pretend this works
query_string = """SELECT Col1, Col2, Col3
                  FROM TABLE_1
                  WHERE [Col1] > [Col2]
                  AND [Col3] <> 99""")
df = pd.read_sql(query_string, myconnection)

TABLE_1很大(超过 100GB(。应用 WHERE 语句后,结果下降到大约 3 GB。

如果我在第一台服务器上执行此查询以从第二台服务器提取数据,则在运行脚本时将使用哪个服务器的资源?特别是,第一台服务器是否会尝试在其 RAM 中加载TABLE_1,还是只会将过滤结果存储在 df 中?

您执行的任何查询都将在数据库服务器上运行。应用 where 子句来减少数据量将使用数据库服务器上的更多资源,但会减少必须传输到客户端(运行 Python 程序的计算机(的数据量。因此,根据 where 子句(索引是否用于减少数据库服务器上的负载?(和网络的速度以及数据库服务器和客户端的功能,您可以决定将负载放在哪里。但是,通常,减少客户端需要处理的数据量以及服务器需要传输到客户端的数据量是有意义的。

最新更新