我找不到与此类似的问题,并且在 Quora 和 Reddit 上也没有运气。我真的很感激被指出正确的方向,因为我真的超出了我的深度。
我想将我的笔记本电脑连接到远程服务器。接下来,我想cx_Oracle
在远程服务器上运行一个用 Python 编写的查询,以从存储在另一个远程服务器中的 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。
如果我在第一台服务器上执行此查询以从第二台服务器拉取数据,运行脚本时将使用哪个服务器的资源?特别是,第一台服务器是否会尝试加载TABLE_1
其 RAM 或仅将过滤后的结果存储在df
?
您执行的任何查询都将在数据库服务器上运行。应用 where 子句来减少数据量将使用更多的数据库服务器资源,但会减少必须传输到客户端(运行 Python 程序的计算机)的数据量。因此,根据 where 子句(索引是否用于减少数据库服务器上的负载?)和网络速度以及数据库服务器和客户端的能力,您可以决定将负载放在哪里。然而,一般来说,减少客户端需要处理的数据量以及服务器需要传输到客户端的数据量是有意义的。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句