存储过程帮忙看下还能怎么优化
sqlserver2000,存储过程如下   
 CREATE   PROCEDURE   INSERTBKTMPTOBK   AS 
 BEGIN 
             UPDATE   DICT_BOOKCARD   SET         DICT_BOOKCARD.BOOKNAME=   DICT_BOOKCARD_TMP.BOOKNAME, 
 				                     DICT_BOOKCARD.AUTHORS=   DICT_BOOKCARD_TMP.AUTHORS, 
 				                     DICT_BOOKCARD.ISBN=   DICT_BOOKCARD_TMP.ISBN, 
 				                     DICT_BOOKCARD.ISBNCODE=   DICT_BOOKCARD_TMP.ISBNCODE, 
 		                                                                                                   DICT_BOOKCARD.PUBCODE=   DICT_BOOKCARD_TMP.PUBCODE, 
 				                     DICT_BOOKCARD.PUBLISH=   DICT_BOOKCARD_TMP.PUBLISH, 
 				               DICT_BOOKCARD.PRICE=   DICT_BOOKCARD_TMP.PRICE, 
 				               DICT_BOOKCARD.ISSUE=DICT_BOOKCARD_TMP.ISSUE, 
 				                  DICT_BOOKCARD.UCS_CODE=DICT_BOOKCARD_TMP.UCS_CODE 
                                                                                                                                                                            FROM   DICT_BOOKCARD   ,DICT_BOOKCARD_TMP         WHERE   DICT_BOOKCARD.BCD_ID=DICT_BOOKCARD_TMP.BCD_ID   
 DELETE   FROM   DICT_BOOKCARD_TMP   WHERE   BCD_ID   IN   (SELECT   BCD_ID   FROM   DICT_BOOKCARD)   
    INSERT   INTO   DICT_BOOKCARD(BCD_ID,BOOKNAME,ISBN,ISBNCODE,PUBLISH,PUBCODE,PRICE,AUTHORS)    
 			SELECT   BCD_ID,BOOKNAME,ISBN,ISBNCODE,PUBLISH,PUBCODE,PRICE,AUTHORS   FROM   DICT_BOOKCARD_TMP 
 			GROUP   BY   BCD_ID,BOOKNAME,ISBN,ISBNCODE,PUBLISH,PUBCODE,PRICE,AUTHORS   
 TRUNCATE   TABLE   DICT_BOOKCARD_TMP         
 END 
 GO   
 目的就是每次将dict_bookcard_tmp零时表记录插入dict_bookcard正式表,存在则更新,不存在就插入,正式表bcd_id有唯一索引,零时表有不唯一索引,目前执行很慢,求优化,每次条目有可能几百条,也有可能上10万这样.
------解决方案--------------------語句本身不是很複雜,不過可以使用別名將你的代碼簡化下。   
 CREATE PROCEDURE INSERTBKTMPTOBK AS 
 BEGIN 
 	UPDATE  
 		A 
 	SET 
 		A.BOOKNAME= B.BOOKNAME, 
 		A.AUTHORS= B.AUTHORS, 
 		A.ISBN= B.ISBN, 
 		A.ISBNCODE= B.ISBNCODE, 
 		A.PUBCODE= B.PUBCODE, 
 		A.PUBLISH= B.PUBLISH, 
 		A.PRICE= B.PRICE, 
 		A.ISSUE=B.ISSUE, 
 		A.UCS_CODE=B.UCS_CODE 
 	FROM  
 		DICT_BOOKCARD A ,DICT_BOOKCARD_TMP B 
 	WHERE A.BCD_ID=B.BCD_ID   
 	DELETE FROM DICT_BOOKCARD_TMP WHERE BCD_ID IN (SELECT BCD_ID FROM DICT_BOOKCARD)   
 	INSERT INTO DICT_BOOKCARD(BCD_ID,BOOKNAME,ISBN,ISBNCODE,PUBLISH,PUBCODE,PRICE,AUTHORS)  
 	SELECT BCD_ID,BOOKNAME,ISBN,ISBNCODE,PUBLISH,PUBCODE,PRICE,AUTHORS FROM DICT_BOOKCARD_TMP 
 	GROUP BY BCD_ID,BOOKNAME,ISBN,ISBNCODE,PUBLISH,PUBCODE,PRICE,AUTHORS   
 	TRUNCATE TABLE DICT_BOOKCARD_TMP   
 END 
 GO 
------解决方案--------------------先用 if exists 语句判断记录是否存在, 
 然后存在的话,做Update 
 不存在的话做Insert