我使用 pyodbc 插入或读取 SQL Server 数据库,当我将数据插入数据库时,我的电脑上有 32 GB 内存。使用的朗姆酒数量如下。 但是当我从 db 中读取行时,如图所示,我的 ram 使用率非常高:代码:import pyodbcconn = pyodbc.connect(''' TRUSTED_CONNECTION=Yes; DRIVER={SQL Server}; SERVER={myServer}; DATABASE=myDB;''')id=[1,345,34,78,45,768]cursor = conn.cursor()for numberid in id: sqlquery ="SELECT TOP 100 * FROM table.db WHERE COLUMN.2 = %s " %(numberid ) cursor.execute(sqlquery ) answer=cursor.fetchall() print(answer) cursor.close() conn.close()我使用 cursor.close() ,conn.close() 但是,即使关闭应用程序,使用的 RAM 量也没有减少,而且每天使用的 RAM 量略有增加。如果我的电脑重新启动,RAM 使用量将被清除。我该如何解决这个问题?pyodbc 版本:4.0.30
1 回答

智慧大石
TA贡献1946条经验 获得超3个赞
这是 SQL Server 的正常行为。
SQL Server 将缓存它从磁盘读取的所有行,将其内存使用量增加到配置的MAX SERVER MEMORY,或者直到操作系统发出可用内存不足的信号。
如果您有一个大型数据库和许多其他在计算机上运行的程序并且想要限制 SQL Server 的内存,您可以使用 SSMS 来完成,或者购买运行批处理,例如:
EXEC sys.sp_configure N'show advanced options', N'1';
RECONFIGURE;
EXEC sys.sp_configure N'max server memory (MB)', N'4096';
RECONFIGURE;
添加回答
举报
0/150
提交
取消