【发布时间】:2011-11-28 11:21:43
【问题描述】:
我有一个简单的“插入..”查询,执行大约需要 40 秒。它只是从一个表中获取记录并插入到另一个表中。
- 我在
tbl_TempCatalogue表上的F1和BatchID上有索引 - 146624 条记录受到影响。
-
select本身并不慢,insert into很慢。
完整的查询是:
insert into tbl_ItemPrice
(CATALOGUEVERSIONID,SERIESNUMBER,TYPE,PRICEFIELD,PRICE,
PRICEONREQUEST,recordid)
select 296 as CATALOGUEVERSIONID
,ISNULL(F2,'-32768') as SERIESNUMBER
,ISNULL(F3,'-32768') as TYPE
,ISNULL(F4,'-32768') as PRICEFIELD,F5 as PRICE
,(case when F6 IS NULL then null when F6 = '0' then 'False'
else 'True' end ) as PRICEONREQUEST
,newid()
from tbl_TempCatalogue
where F1 = 450
and BATCHID = 72
谢谢
【问题讨论】:
-
我认为您还应该检查/提供:1. 涉及多少条记录 2. 如果您在 sql server 上进行选择需要多长时间。
-
tbl_TempCatalogue 上有任何索引吗?表中有多少行?查询检索到的总数占多少比例?
-
您是否验证过 select 可以快速返回所有内容,而不仅仅是响应时间?
标签: sql sql-server-2005 optimization