其中的Keyword_en有6万条数据.
gmpccmap 有20万条数据
gmpcategory 有1万条数据.
用sql server query analyzer 只要3分钟就可以了.
用job就要差不多两个小时.
做过初步的测试.
如果不要下面这句
update Keyword_en set keyword=convert(varchar(1000),' ' + KEYWORD + isnull(@keyword,' ')) where catalog_id=@catalog_id
用job也只需要4分钟就可以了.
gmpccmap 有20万条数据
gmpcategory 有1万条数据.
用sql server query analyzer 只要3分钟就可以了.
用job就要差不多两个小时.
做过初步的测试.
如果不要下面这句
update Keyword_en set keyword=convert(varchar(1000),' ' + KEYWORD + isnull(@keyword,' ')) where catalog_id=@catalog_id
用job也只需要4分钟就可以了.
好像不用游标也可以,你在试试.
CREATE PROCEDURE [update_keyword_en]
ASSET NOCOUNT ONdeclare @check int
declare @rs_count int
declare @rs_list int
declare @rs_list1 int
declare @catalog_id varchar(15)
declare @CATEGORY_NAME varchar(100)
declare @keyword varchar(1000)
declare cs_catalogid scroll cursor for select catalog_id from Keyword_en
open cs_catalogid
fetch next from cs_catalogid into @catalog_id
while @@fetch_status=0
Begin
set @keyword=''
Declare cs_categoryname Scroll Cursor
For
select distinct CATEGORY_NAME from gmpccmap as a,gmpcategory as b where a.category_id=b.category_id and a.catalog_id=@catalog_id and b.lang_code='iso8859-1'
Open cs_categoryname
fetch next from cs_categoryname into @CATEGORY_NAME
while @@fetch_status =0
begin
set @keyword=@keyword + @CATEGORY_NAME + ' '
fetch next from cs_categoryname into @CATEGORY_NAME
END
update Keyword_en set keyword=convert(varchar(1000),' ' + KEYWORD + isnull(@keyword,' ')) where catalog_id=@catalog_id
Close cs_categoryname
Deallocate cs_categoryname
fetch next from cs_catalogid into @catalog_idEND
close cs_catalogid
deallocate cs_catalogid