如何通过存储过程来减少插入单条记录的时间?

问题描述:

我们编写了一个存储过程,一次从DB中选择一条记录。使用相同的存储过程来读取2000条记录需要4秒钟。有什么办法可以优化它吗? (如单个存储过程的2000条记录)如何通过存储过程来减少插入单条记录的时间?

这里是我的存储过程:

set ANSI_NULLS ON 
set QUOTED_IDENTIFIER ON 
go 

ALTER PROCEDURE [dbo].[GetItemValue](@ItemName VARCHAR(200),@TimeStamp as DATETIME) 

AS 

select * from EIItemData 

where [email protected] AND [email protected] 

谁能告诉我怎么可以这个存储过程可以优化读取,而不是每个项目调用一次2000次的记录。

+0

向我们展示2000年电话会议的前5个看起来是什么样的,我们可以帮助您更好地完成这一任务。 – Jaxidian 2010-04-23 16:12:10

+3

发布存储过程 - 听起来像OO在基于SET的世界中思考... – 2010-04-23 16:12:12

考虑到SQL服务器(以及所有RDBMS)工作最好与基于集合的操作。

考虑更改您的调用代码(客户端)以期望一组记录读取。

请发布您的存储过程,阅读或插入,所以我们可以帮助找到最佳解决方案!在您的SQL

看,我会说,打起来有以下几点:

  1. 不要使用select *语法,只是带回你需要列。
  2. 我猜你没有在where子句中的列的索引。考虑添加它们。
  3. 如果你需要2000件物品,为什么不把它们放在一个镜头中。