内存不足sql执行
我有以下脚本:内存不足sql执行,sql,sql-server,Sql,Sql Server,我有以下脚本: SELECT DEPT.F03 AS F03, DEPT.F238 AS F238, SDP.F04 AS F04, SDP.F1022 AS F1022, CAT.F17 AS F17, CAT.F1023 AS F1023, CAT.F1946 AS F1946 FROM DEPT_TAB DEPT LEFT OUTER JOIN SDP_TAB SDP ON SDP.F03 = DEPT.F03, CAT_TAB CAT OR
SELECT
DEPT.F03 AS F03, DEPT.F238 AS F238, SDP.F04 AS F04, SDP.F1022 AS F1022,
CAT.F17 AS F17, CAT.F1023 AS F1023, CAT.F1946 AS F1946
FROM
DEPT_TAB DEPT
LEFT OUTER JOIN
SDP_TAB SDP ON SDP.F03 = DEPT.F03,
CAT_TAB CAT
ORDER BY
DEPT.F03
表是巨大的,当我直接在SQL Server中执行脚本时,执行大约需要4分钟,但当我在第三方程序(基于Delphi的SMS LOC)中运行脚本时,它会给我错误信息
<msg> out of memory</msg> <sql> the code </sql>
内存不足,无法读取代码
我是否可以减轻要执行的脚本?还是有人遇到过同样的问题并以某种方式解决了它?我记得有一次,在查询优化器有点迷失方向的情况下,我不得不求助于
健壮计划
查询提示,并试图以硬件无法处理的方式解决问题
=>
但我不确定我是否理解为什么它适用于一种“技术”,而不适用于另一种。
然后呢,,错误消息可能不是来自SQL,而是来自收集输出并以“不太理想”的方式执行的第三方程序。我记得有一次在查询中查询优化器有点迷失方向并试图以硬件无法实现的方式解决问题时,我不得不求助于
健壮计划
查询提示处理
=>
但我不确定我是否理解为什么它适用于一种“技术”,而不适用于另一种。
同样,错误消息可能不是来自SQL,而是来自第三方程序,该程序收集输出并以“不太理想”的方式执行。我有一个项目,在该项目中,我必须通过批处理添加超过700万行的T-SQL代码(不知道如何以编程方式利用新的SEQUENCE命令)。问题是我的虚拟机上可用的内存量有限(我被分配给这个虚拟机的最大内存量)。由于大量的T-SQL代码行,我必须首先测试在服务器崩溃之前需要多少行代码。不管出于什么原因,SQL(2012)并没有释放它用于像我这样的大批量作业的内存(我们谈论的是12GB的内存),所以我不得不每百万行左右重新启动服务器。如果您的项目资源有限,您可能必须这样做。我有一个项目,我必须通过批处理添加超过700万行单独的T-SQL代码(不知道如何以编程方式利用新的SEQUENCE命令)。问题是我的虚拟机上可用的内存量有限(我被分配给这个虚拟机的最大内存量)。由于大量的T-SQL代码行,我必须首先测试在服务器崩溃之前需要多少行代码。不管出于什么原因,SQL(2012)并没有释放它用于像我这样的大批量作业的内存(我们谈论的是12GB的内存),所以我不得不每百万行左右重新启动服务器。如果项目的资源有限,您可能必须这样做。考虑添加到用户编辑屏幕和基础数据调用。关键是,您不需要一次查看所有行,但是用户可以根据请求查看这些行 这将在很大程度上缓解性能问题 考虑添加到用户编辑屏幕和基础数据调用。关键是,您不需要一次查看所有行,但是用户可以根据请求查看这些行
这将在很大程度上缓解性能问题 即使桌子很大,你真的需要每一行吗?。你应该给你的查询添加一些过滤器,我们需要所有的行。服务器上还有另一个GUI,用户可以修改他们想要或不想要的行。我不想玩那个。那个桌子猫牌在干什么?看起来您有一个表,您可以为所有表添加行计数吗?您需要加入
CAT_TAB
表,而不是单独留下。。。因为您得到的是1366*9103
行……即使表格很大,您真的需要每一行吗?。你应该给你的查询添加一些过滤器,我们需要所有的行。服务器上还有另一个GUI,用户可以修改他们想要或不想要的行。我不想玩那个。那个桌子猫牌在干什么?看起来您有一个表,您可以为所有表添加行计数吗?您需要加入CAT_TAB
表,而不是单独留下。。。因为你得到的是1366*9103
行……要么这个程序或者第三方程序不是设计用来做他在这里试图做的事情。要么这个程序或者第三方程序不是设计用来做他在这里试图做的事情。