小编spa*_*boy的帖子

如何在不耗尽内存的情况下运行包含许多插入内容的大型脚本?

题:

我有一个脚本,其中包含来自 select 语句的大约 45,000 个插入。当我尝试运行它时,我收到一条错误消息,指出我的内存不足。我怎样才能运行这个脚本?

语境:

  1. 添加了一些新的数据字段,使应用程序与客户端使用的另一个应用程序配合得很好。
  2. 从客户端获得了一份数据电子表格,其中包含将当前数据项映射到这些新字段的值的数据。
  3. 将电子表格转换为插入语句。
  4. 如果我只运行一些语句,它会起作用,但整个脚本不会。
  5. 没有。没有错别字。

如果有不同的方式我应该加载这些数据,请随时批评我并让我知道。

sql-server-2005 sql-server etl

29
推荐指数
3
解决办法
9万
查看次数

根据多年的记录寿命选择记录的多个实例

我有一个包含原始日期和寿命的项目表。我想创建一个过程来选择需要在特定持续时间内替换的所有项目。我觉得在单个选择的 where 子句中有一种数学方法可以做到这一点。我能想到的唯一方法是迭代多年并附加将要替换的项目......这似乎超级缓慢且效率低下。我应该如何处理这个问题?


每个评论请求的详细信息:

数据库引擎: SQL Server 2005

源表:

CREATE TABLE Items
(
    ID int,
    ItemName varchar(255),
    InstallYear int,
    UsefullLife int
);
Run Code Online (Sandbox Code Playgroud)

所需的存储过程格式:

GetReplacementsWithinYearRange(startyear int, endyear int)
Run Code Online (Sandbox Code Playgroud)

期望的输出:

ItemID - ItemName - ReplaceYear
Run Code Online (Sandbox Code Playgroud)

更多细节:

样本记录:

1  item1  2010  5    
2  item2  2011  6
Run Code Online (Sandbox Code Playgroud)

2010 年至 2030 年范围内的预期结果:

1  item1  2010
1  item1  2015
1  item1  2020
1  item1  2025
1  item1  2030
2  item2  2011
2  item2  2017
2  item2  2023
2  item2  2029
Run Code Online (Sandbox Code Playgroud)

performance sql-server-2005 sql-server query-performance

3
推荐指数
1
解决办法
663
查看次数