Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 即使连接已关闭,Pandas read_sql_查询仍在后台运行?_Python_Sql_Pandas_Dataframe_Pyodbc - Fatal编程技术网

Python 即使连接已关闭,Pandas read_sql_查询仍在后台运行?

Python 即使连接已关闭,Pandas read_sql_查询仍在后台运行?,python,sql,pandas,dataframe,pyodbc,Python,Sql,Pandas,Dataframe,Pyodbc,我有一个紧密的联系: Config=dict(server=serverSample, 端口=1433, 用户名=用户名\u输入, 密码=密码(输入) conn_str=('Server={Server},{port};+'TRUSTED_CONNECTION=yes') conn=pyodbc.connect( r'Driver={ODBC Driver 13 for SQL Server};'+conn_str.format(**config) ) Do=pd.read\u sql\u查询(

我有一个紧密的联系:

Config=dict(server=serverSample,
端口=1433,
用户名=用户名\u输入,
密码=密码(输入)
conn_str=('Server={Server},{port};+'TRUSTED_CONNECTION=yes')
conn=pyodbc.connect(
r'Driver={ODBC Driver 13 for SQL Server};'+conn_str.format(**config)
)
Do=pd.read\u sql\u查询(查询,连接)
康涅狄格州关闭
使用
read\u sql\u query
方法后,我立即将数据放入
DataFrame

出于某种原因,数据员通知我,我的连接仍在进行一段时间

close
方法是否真的停止了SQL的运行,或者我必须做其他事情来停止查询在服务器上运行


我使用的是
pyodbc

它取决于作为
conn
对象传递给
read\u sql\u查询
方法调用的内容

  • 如果您通过
    连接
    对象,这应该足够了,但问题可能在于您关闭连接的位置。也许这个代码是不可访问的

  • 如果传递
    引擎
    对象。您应该处理连接:

  • conn.dispose()
    
  • 您也可以尝试关闭池:
    导入pyodbc
    pyodbc.pooling=False
    
  • 还有一个选项是将连接用作
    上下文管理器
    提交
    ,而不是关闭连接:
    
    导入pyodbc
    conn=pyodbc.connect(配置)
    康涅狄格州:
    crs=连接光标()
    做事
    #当Python离开外部`with`语句时,将自动调用conn.commit()
    #离开'with'语句时,将不会调用crs.close()或conn.close()!!
    
    你能分享更多关于
    conn
    对象创建和调用
    read)\u sql\u query
    的详细代码并关闭连接吗?我用更详细的代码编辑了我的问题。你能告诉我它是否有效吗?你在Windows机器上运行这个Python代码吗?是的,我在Windows上使用anacondamachine@DatNguyen-好的,当“数据人”说你的连接还在“持续一段时间”时,他说了大约多长时间?在Windows计算机上,Microsoft的SQL Server ODBC驱动程序的默认配置启用连接池,但默认超时仅为60秒,因此我不希望看到“关闭”连接的挂起时间超过60秒。(您可以查看ODBC管理员的“连接池”选项卡,查看您的计算机上的“池超时”实际是什么。)我已经详细介绍了代码。你能检查一下我的亲密关系是否在正确的地方吗?谢谢