【发布时间】:2021-10-08 04:47:22
【问题描述】:
我需要使用 Python 连接到 Teradata。我面临的问题是连接数据库的时间很长。
我正在尝试使用 Python 中的 teradata、teradatasql 和 pyodbc 包。我使用的代码是这样的:
import teradata
import teradatasql
import pyodbc
import time
udaExec = teradata.UdaExec (appName="HelloWorld", version="1.0", logConsole=False)
try:
host, username, password = 'teradata', 'xxxxx', 'xxxxx'
tic = time.perf_counter()
session = teradatasql.connect(host=host, user=username, password=password, logmech="LDAP")
toc = time.perf_counter()
print(f"TERADATASQL: {toc - tic:0.4f} seconds")
tic = time.perf_counter()
udaExec.connect(method="odbc", dsn="TD")
toc = time.perf_counter()
print(f"TERADATA: {toc - tic:0.4f} seconds")
tic = time.perf_counter()
connection = pyodbc.connect('DSN=TD')
toc = time.perf_counter()
print(f"PYODBC: {toc - tic:0.4f} seconds")
except Exception as e:
print(e)
通常的结果是围绕以下值:
TERADATASQL:6.2150 秒
TERADATA:2.8512 秒
PYODBC:2.6051 秒
问题是大部分时间我会做非常简单的查询,花费不到 1 秒。
我(自己)开发了一个使用 5 个预先打开的连接池的方案。但我认为这是非常初级的,因为它是一个为多个用户提供 REST API 服务的 django。有什么方法可以提高打开连接的性能吗?还有其他解决方案吗?
【问题讨论】:
标签: python database-connection teradata